Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hola
La siguiente relación virtual no funcionó, ¿es porque CustomerName no es la cantidad?
¿Cómo corregir esto?
NombreDe_cliente ?
Solved! Go to Solution.
Hola @marc_hll ,
1.
CustomerName(Measure) =
CALCULATE(
MAX(FactInternetSales[CustomerName]),
TREATAS( VALUES(DimCustomer[CustomerKey]), FactInternetSales[CustomerKey] )
)
2.
Measure =
CALCULATE(
MAX(FactInternetSales[CustomerName]),
TREATAS( VALUES(FactInternetSales[CustomerKey]), DimCustomer[CustomerKey] )
)
Saludos
Lionel Chen
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola @marc_hll ,
1.
CustomerName(Measure) =
CALCULATE(
MAX(FactInternetSales[CustomerName]),
TREATAS( VALUES(DimCustomer[CustomerKey]), FactInternetSales[CustomerKey] )
)
2.
Measure =
CALCULATE(
MAX(FactInternetSales[CustomerName]),
TREATAS( VALUES(FactInternetSales[CustomerKey]), DimCustomer[CustomerKey] )
)
Saludos
Lionel Chen
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
A pesar de que aparentemente está sumando texto, TREATAS necesita una de las columnas resultantes como su entrada.
NombreDe_cliente ?
No estoy seguro de haber entendido lo que está diciendo, pero esta declaración es engañosa en el mejor de los apartamentos
"CALCULATE(
Los argumentos de TREATAS son columnas de tablas no relacionadas que desea "conectar" como una expresión de filtro (potencialmente una relación virtual uno a varios o uno a uno, aunque la documentación en realidad simplemente define la primera entrada como "una expresión que da como resultado una tabla")
En otras palabras, la "columna de salida" no debe incluirse en absoluto en la expresión TREATAS. En mi ejemplo,
Fact Customer Name = CALCULATE(
MAX(FactInternetSales[CustomerName]),
TREATAS(VALUES(FactInternetSales[CustomerKey]), DimCustomer[CustomerKey]))
La "columna de salida" o resultado es diferente de los argumentos utilizados en la expresión TREATAS. Lo mismo sería, por supuesto, cierto si se utiliza una medida de [Suma de ventas] por ejemplo (que sería de la suma de una columna llamada 'Tabla'[Ventas])
IMHO, la forma más fácil de entender TREATAS es pensar en ello como establecer una relación virtual "uno" a varios o "uno"-a-uno entre dos tablas que no están relacionadas en el modelo real (mediante el uso de VALUES o DISTINCT en el primer argumento - o FILTER, etc.).
TREATAS puede ser más sofisticado de lo que estoy haciendo, pero esta forma de pensar en ello hace que sea fácil para mí utilizar la función (que hago mucho).
Proud to be a Super User!
Paul on Linkedin.
Trata las columnas de la tabla de entrada como columnas de otras tablas. Para cada columna, filtra los valores que no están presentes en su columna de salida respectiva.
Expresión | Expresión que genera el conjunto de columnas que se va a reasignar. | |
Columnname | Repetible | El nombre de la columna de salida. |
Tabla que contiene todas las filas de las columnas que también están en Expresión.
TREATAS asigna el linaje de datos de las columnas devueltas por la expresión mediante las columnas de los argumentos siguientes. El resultado se puede asignar a una variable, porque TREATAS no es un modificador de filtro. El primer argumento debe ser una expresión de tabla.
La función TREATAS funciona en Excel desde la versión 1809. Sin embargo, IntelliSense no notifica la función y es posible que Microsoft no la admita aún no sea compatible con Excel.
Está haciendo suma en los valores de cadena. Intente usar
DISTINCT o COUNT o DISTINCTCOUNT.
Y los valores de cadena no se pueden mostrar en gráficos como gráficos de barras, pastel, etc. Solo puede mostrarlos en la mesa o matric sho intento utilizando COUNT o DISTINCTCOUNT si desea mostrar los números.
saludos
Manikumar
Proud to be a Super User!
Probé los tres de ellos, DISTINCT no funcionó ningún resultado, quería devolver la cadena en una tabla
El COUNT/DISTINCTCOUNT funciona pero como números
¿Me estoy perdiendo algo?
He adjuntado una muestra, he intentado cambiar DISTINCT a VALUES pero todavía no funciona
¿Cómo puedo incorporar CustomerName a la tabla DimCustomer mediante la relación virtual? Cualquier ayuda es muy apreciada
https://1drv.ms/u/s!AjxzXMIO4yRIhSyLtp_PdyRqw4wu?e=u9cItr
¿Qué es exactamente lo que intentas hacer? ¿Cuál es su resultado esperado?
TANTO VALUES como DISTINCT devuelven una lista de valores, que no puede ser la salida de una medida. Una medida debe devolver un único valor. Puede utilizar VALUES o DISTINCT para crear una nueva tabla, por ejemplo, o como parte de una expresión de filtro en una medida.
Este es el resultado esperado de la relación virtual, creé usando la columna pero recibe el error "Se proporcionó una tabla de múltiples valores donde se esperaba un solo valor
Tal vez mi sintaxis es incorrecta, veo que muchos blogs/post están usando SUM con TREATAS/INTERSECT pero mi necesidad está en cadena (no cantidad)
¿Puede descargar el ejemplo pbix?
No puede tener una lista como resultado de una medida. Si necesita una cadena de valores, debe utilizar CONCATENATEX.
Para su caso, intente usar MAX en lugar de SUM en su medida
Proud to be a Super User!
Paul on Linkedin.
Todavía no pude conseguirlo, ¿debo eliminar el CALCULATE ya que no estoy calculando nada aquí? Sólo estoy tratando de obtener un valor de cadena que es CustomerName con filtro virtual/relación. ¿Hay otra manera?
Usando el archivo que incluyó anteriormente, esto es lo que obtiene usando TREATAS en esta medida:
Fact Customer Name = CALCULATE(
MAX(FactInternetSales[CustomerName]),
TREATAS(VALUES(FactInternetSales[CustomerKey]), DimCustomer[CustomerKey]))
Dicho esto, podría crear una relación entre Dim Customer [Customer key] y factInternetSales [Customer key] en la vista de modelo. Si, a continuación, agrega un objeto visual de tabla mediante dim Customer [Customerkey] y FactInternetSales[CustomerName] obtendrá el mismo resultado (y así es como debe hacerlo realmente). No se necesita ninguna medida entonces.
Proud to be a Super User!
Paul on Linkedin.
Gracias por la respuesta, intenté crear su medida en la tabla DimCustomer pero no pude replicar lo mismo que el suyo? En vez de eso, tengo a todo Peter. ¿Tenía una relación CustomerKey conectada en la parte posterior?
ok, así que ahora entiendo que quieres que estés tratando de hacer. No está buscando una medida, sino una columna calculada.
¿Hay alguna razón por la que necesite que estas tablas no estén relacionadas?
Si no es así, crearía una nueva tabla de dimensiones (en lugar del cliente Dim) haciendo referencia a la tabla FactInternetSales en Power Query (seleccione la tabla FactInternetSales haciendo clic con el botón derecho en la consulta de la tabla y seleccione "referencia"), quite todas las columnas excepto CustomerID y CustomerName, seleccione CustomerID y quite duplicados y cargue el modelo. Cree una relación entre la nueva tabla de dimensiones y la tabla de hechos uniendo los campos de CustomerId en una relación de uno a varios y ha terminado (incluso puede ocultar el campo CustomerName en la tabla FactInternetSales).
No necesita una columna calculada si sigue este método (que también es realmente una "mejor práctica").
Si realmente necesita que las tablas no estén relacionadas, ¿puede explicar el contexto? ¿Qué estás tratando de lograr y por qué?
Gracias.
Proud to be a Super User!
Paul on Linkedin.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |