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

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Syndicate_Admin
Administrator
Administrator

Suma

Querido amigo,

Tengo datos como:

CategoríaSubcategoríavalor
AA15
AA110
AA23
BB16
BB13
CC14
CC2-10
CC35

He creado measuer: result= calculate(sum(value),category="A" o "C")

=17

quiero que el valor del resultado 17 sea solo para categroy A como en formato:

CategoríaSubcategoríavalorresultado
AA1517
AA11017
AA2317
BB160
BB130
CC140
CC2-100
CC350
Total 2617

¿Cómo puedo lograr el uso de DAX?

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Para lograr el resultado deseado mediante DAX (expresiones de análisis de datos) en Power BI u otra herramienta similar, puede crear una columna calculada que calcule el resultado de cada fila en función de su condición. Aquí hay una guía paso a paso sobre cómo hacer esto:

  1. Abra Power BI Desktop o una herramienta similar.

  2. En el panel Campos, seleccione la tabla donde se encuentran los datos.

  3. Haga clic en "Modelado" en la barra de menú superior.

  4. Seleccione "Nueva columna" para crear una nueva columna calculada.

  5. Asigne a la nueva columna el nombre "Resultado".

  6. Use la siguiente fórmula de DAX para calcular el resultado en función de su condición:

Resultado =
VAR SelectedCategories = {"A", "C"}
DEVOLUCIÓN
SI(
SUMMARIZE(FILTER(YourTableName, YourTableName[Category] IN SelectedCategories), YourTableName[Category]),
CALCULATE(SUM(YourTableName[valor]))
)

Reemplace YourTableName por el nombre de la tabla donde se almacenan los datos.

Esta fórmula hace lo siguiente:

  • Primero define una variable SelectedCategories que contiene las categorías que desea incluir en el cálculo ("A" y "C" en este caso).

  • A continuación, utiliza la función FILTER para filtrar la tabla para incluir sólo las filas donde la categoría está en las categorías seleccionadas.

  • A continuación, utiliza la función SUMMARIZE para crear una tabla con distintos valores de categoría basados en los datos filtrados.

  • Finalmente, calcula la suma de la columna "valor" para las categorías seleccionadas utilizando la función CALCULAR.

  1. Haga clic en la marca de verificación (√) para aceptar la fórmula.

Ahora, su tabla debe tener una nueva columna "Resultado" que contenga los resultados calculados para cada fila en función de la condición. Puede mostrar esta columna en el objeto visual de la tabla para ver los resultados descritos en el ejemplo.

Nota: Asegúrese de reemplazar "YourTableName" con el nombre real de la tabla en la fórmula de DAX.

Prueba también esto:

Veo que desea que la columna "Resultado" se calcule de manera diferente. Según el requisito actualizado, desea que la columna "Resultado" sea 17 para todas las filas de la categoría A y 0 para todas las demás filas. En este caso, debe usar una fórmula DAX diferente para la columna "Resultado". Esta es la fórmula actualizada de DAX:

Resultado =
SI(
YourTableName[Category] = "A",
CALCULATE(SUM(YourTableName[value]), FILTER(YourTableName, YourTableName[Category] = "A")),
0
)

Esta fórmula hace lo siguiente:

  • Comprueba si la categoría es "A" para cada fila utilizando la instrucción IF.

  • Si la categoría es "A", calcula la suma de la columna "valor" para las filas donde la categoría es "A" utilizando la función CALCULATE con una condición FILTER.

  • Si la categoría no es "A", asigna un valor de 0 a la columna "Resultado" para esa fila.

Ahora, su columna "Resultado" debe calcularse como 17 para las filas con categoría "A" y 0 para todas las demás filas, como ha descrito en su resultado esperado.

Si respondí a su pregunta, marque mi publicación como solución, aprecie sus felicitaciones.

Syndicate_Admin
Administrator
Administrator

@jyaul786 ,

Le sugiero que pruebe el código como se muestra a continuación para crear una columna calculada.

Result = 
VAR CategoryA =
SUMX (
FILTER ( 'Table', 'Table'[Category] in {"A","C"} ),
'Table'[value]
)
RETURN
IF ( [Category] = "A", CategoryA, 0 )

El resultado es el siguiente.

vrzhoumsft_0-1695870083324.png

Saludos
Rico Zhou

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

Syndicate_Admin
Administrator
Administrator

Pido disculpas por el malentendido. Para lograr el resultado esperado donde la columna "resultado" muestra la suma de "valor" solo para "Categoría" A y 0 para otras categorías, puede usar la siguiente medida de DAX:

Resultado =
VAR CategoríaA =
SUMX (
FILTER ( YourTableName, YourTableName[Category] = "A" ),
YourTableName[valor]
)
DEVOLUCIÓN
IF ( YourTableName[Category] = "A", CategoryA, 0 )

Reemplace YourTableName por el nombre de la tabla donde se almacenan los datos.

Esta medida calcula la suma de "valor" para la "Categoría" A y la almacena en la variable CategoríaA. A continuación, utiliza una instrucción IF para comprobar si la "Categoría" de la fila actual es "A". Si es así, devuelve el valor almacenado en la CategoríaA; de lo contrario, devuelve 0.

Con esta medida, debe obtener el resultado esperado como lo describió en su pregunta.

Syndicate_Admin
Administrator
Administrator

Lo intenté con su medida y columna, pero mi resultado esperado no coincide con su meauser y columna. Resultado previsto:

CategoríaSubcategoríavalorresultado
AA1517
AA11017
AA2317
BB160
BB130
CC140
CC2-100
CC350
Total 2617
Syndicate_Admin
Administrator
Administrator

Para lograr el resultado deseado en Power BI con DAX, puede crear una columna calculada o una medida que calcule la suma de "valor" para las categorías A y C y, a continuación, usar este resultado para crear una nueva columna para los valores de "resultado" de la tabla. Así es como puedes hacerlo paso a paso:

  1. Cree una medida para calcular la suma del "valor" para las categorías A y C:

TotalValue = CALCULATE(SUM('YourTable'[value]), 'YourTable'[Category] IN {"A", "C"})

En la fórmula DAX anterior, 'YourTable' debe reemplazarse con el nombre real de la tabla.

  1. Ahora, puede crear una nueva columna calculada para mostrar los valores de "resultado":

Resultado = IF('YourTable'[Category] IN {"A", "C"}, [TotalValue], 0)

Esta columna calculada comprueba si la categoría es "A" o "C" y, de ser así, asigna el valor de la medida TotalValue; de lo contrario, asigna 0.

  1. Agregue esta columna "Resultado" a la visualización de su tabla y mostrará los valores de "resultado" como los describió.

Su tabla ahora se verá así:

Resultado del valor de la subcategoría Categoría
A A1 5 17
A A1 10 17
A A2 3 17
B B1 6 0
B B1 3 0
C C1 4 17
C C2 -10 17
C C3 5 17
Total 26 17

Asegúrese de reemplazar 'YourTable' por el nombre real de la tabla en el modelo de datos de Power BI. Este enfoque utiliza medidas DAX y columnas calculadas para lograr el resultado deseado en la visualización de la tabla.

Helpful resources

Announcements
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

Power BI Carousel June 2024

Power BI Monthly Update - June 2024

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

RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

Top Solution Authors