Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

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.

Reply
Syndicate_Admin
Administrator
Administrator

Ayuda con el código DAX básico

Hola a todos.

Tal vez esto sea realmente básico, pero he estado mirando el código y no puedo comprender por qué estas dos medidas dan resultados diferentes.

Estoy usando la base de datos de Contoso para practicar:

Medida 1 =
SUMX (
FILTRO (
RESUMIR (
Ventas
Ventas[Cantidad],
Ventas[Precio neto]
),
Ventas[Cantidad] * Ventas[Precio neto] >= 1000
),
Ventas[Cantidad] * Ventas[Precio neto]
)
Medida 2 =
CALCULAR (
[Ventas totales],
FILTRO (
RESUMIR (
Ventas
Ventas[Cantidad],
Ventas[Precio neto]
),
Ventas[Cantidad] * Ventas[Precio neto] >= 1000
)
)
¡Gracias de antemano por cualquier ayuda!
1 ACCEPTED SOLUTION

[Ventas totales] tiene que ser una medida para que funcione dentro de CALCULAR así. ¿Cómo se define?

Si se define como SUMA ( Ventas [Cantidad] ) * SUMA ( Ventas [Precio neto] ), entonces no tiene sentido. Si se define como SUMX ( Ventas, Ventas [Cantidad] * Ventas [Precio neto] ), entonces la explicación tiene que ver con la granularidad.

El FILTRO elimina las filas con el producto por debajo de 1000, pero Ventas y RESUMIR ( Ventas, Ventas [Cantidad], Ventas [Precio neto] ) tienen diferentes números de filas. En la medida 1, se suma el producto para cada fila de la tabla de resumen, pero en la medida 2, se suma cada fila en Ventas, que contiene varias filas con la misma cantidad y precio neto en lugar de una sola fila para cada combinación distinta.

La medida 1 es agrupar antes de sumar, mientras que la medida 2 solo tiene agrupación dentro del filtro; la suma real no tiene agrupación por Cantidad y Precio Neto.

Su Medida 2 da el mismo resultado que

SUMX (
    FILTER (
        Sales,
        Sales[Quantity] * Sales[Net Price] >= 1000
    ),
    Sales[Quantity] * Sales[Net Price]
)

View solution in original post

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

Hay @pantezuma ,

Me alegra que su problema se haya resuelto, marque la respuesta correcta como la respuesta estándar para ayudar a los otros miembros a encontrarla más rápidamente. ¡Gracias de antemano por su amable cooperación!

Espero que ayude,


Equipo de soporte de la comunidad _ Caitlyn

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Syndicate_Admin
Administrator
Administrator

Hola @Greg_Deckler muchas gracias por tu respuesta!

Sí, [Ventas totales] se define como usted ha descrito.

El problema aquí es que veo ambas expresiones como equivalentes, por lo que necesito un poco más de esfuerzo para comprender los contextos de las evaluaciones (¡pensé que lo estaba haciendo bastante bien y esto es bastante molesto!)

[Ventas totales] tiene que ser una medida para que funcione dentro de CALCULAR así. ¿Cómo se define?

Si se define como SUMA ( Ventas [Cantidad] ) * SUMA ( Ventas [Precio neto] ), entonces no tiene sentido. Si se define como SUMX ( Ventas, Ventas [Cantidad] * Ventas [Precio neto] ), entonces la explicación tiene que ver con la granularidad.

El FILTRO elimina las filas con el producto por debajo de 1000, pero Ventas y RESUMIR ( Ventas, Ventas [Cantidad], Ventas [Precio neto] ) tienen diferentes números de filas. En la medida 1, se suma el producto para cada fila de la tabla de resumen, pero en la medida 2, se suma cada fila en Ventas, que contiene varias filas con la misma cantidad y precio neto en lugar de una sola fila para cada combinación distinta.

La medida 1 es agrupar antes de sumar, mientras que la medida 2 solo tiene agrupación dentro del filtro; la suma real no tiene agrupación por Cantidad y Precio Neto.

Su Medida 2 da el mismo resultado que

SUMX (
    FILTER (
        Sales,
        Sales[Quantity] * Sales[Net Price] >= 1000
    ),
    Sales[Quantity] * Sales[Net Price]
)

Hola @AlexisOlson muchas gracias por tu respuesta!

Sí, [Ventas Totales] se define como una medida: SUMX(Ventas,Ventas[Cantidad] * Ventas [Precio neto])

Creo que estoy viendo el problema ahora después de su explicación.

Por favor, hágamelo saber si lo interpreté correctamente:

En la Medida 1 no estoy usando SUMX sobre Ventas, sino sobre una versión resumida de ventas filtradas por cantidad * precio neto > = 1000.

En la Medida 2, estoy usando la tabla resumida para filtrar Ventas dentro de Calcular y solo entonces aplicar SUMX en la tabla ventas filtradas resultante. Como Ventas no se resume, solo se filtra, puedo tener muchas filas para la misma combinación de cantidad * precio neto > = 1000.

Por lo tanto, la medida 1 tiene la granularidad de la tabla resumida (menos filas) y la medida 2 tiene la granularidad de las ventas (más filas).
¿Estoy en lo cierto?
Gracias de nuevo a los dos.

Dar en el clavo.

Syndicate_Admin
Administrator
Administrator

@pantezuma SUMX evaluará el 2º parámetro para cada fila de la tabla y luego los resumirá. CALCULATE calculará el valor una vez en el contexto de la expresión de filtro dada asumiendo que Ventas Totales es Ventas[Cantidad] * Ventas[Precio Neto].

Entonces, ¿cuál da la respuesta correcta?

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.