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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
Maxemus2000
Helper II
Helper II

¿Necesita ayuda para calcular una suma acumulada de medidas?

Hola Comunidad,

Estoy trabajando en un proyecto que calcula un impacto total de la mezcla al comparar datos entre 2 períodos seleccionados. Tengo medidas que calculan todo el componente, pero no puedo resumirlas como un total. ¿Hay alguna manera de hacerlo?

A continuación se muestran los datos ficticios.

Tabla de hechos

ID de períodoEstadoTipoTipo
1acerca deVolumen10000
1acerca deCosto50000
1NyVolumen1500
1NyCosto15000
2acerca deVolumen8000
2acerca deCosto45000
2NyVolumen3000
2NyCosto20000
2TxVolumen1000
2TxCosto6000
3NyVolumen2500
3NyCosto10000
3TxVolumen1000
3TxCosto5000

El usuario usará 2 segmentaciones de datos para seleccionar datos para una comparación. Estas segmentaciones de datos son ID de período. Supongamos que un usuario selecciona peiord 1 en la #1 de segmentación y el período 2 en la segmentación #2

Las lógicas de cálculo:

Período 1
EstadoVueloCostoAvg
acerca de10000500005
Ny15001500010
Tx000
Total11500650005.652174

Período 2
EstadoVueloCostoAvg
acerca de8000450005.625
Ny3000200006.666667
Tx100060006
Total12000710005.916667

Primero encontramos un total de Volumen, Costo y Promedio para cada período. Estas son las medidas

[Volumen Sel 1] >> un volumen total de cada estado
[Volumen Total Sel 1] >> un volumen total de todo el estado en un período
[Costo medio Sel 1] >> un costo promedio de cada estado
[Costo medio total Sel 1] >> un costo promedio de todo el estado en un período
selección #2 tiene las mismas medidas

Ahora, tenemos que encontrar un porcentaje de un volumen de cada estado en comparación con un total de todo el estado en un período. Luego, encontramos lo que un cambio porcentual de cada estado entre 2 períodos

% de vuelo
EstadoPeríodo 1Período 2Chg
acerca de0.86956520.666666667-0.2029
Ny0.13043480.250.119565
Tx00.0833333330.083333
Total110

Una vez que tengamos un porcentaje diferente de cada estado, indicaremos el impacto del volumen. Para ello, usamos un porcentaje diferente multiplicar por un volumen total de todo el estado desde el período #1

Para encontrar el impacto de costo medio de cada estado, usamos el promedio de costo estatal del período #1 restar por un costo promedio total del período #1. Dado que TX no tenía un costo promedio en el período #1, usamos el costo promedio tx del período #2 y restamos por un costo promedio total del período #1.

Impacto De Dol
EstadoVol ImpactImpacto medio
acerca de-2333.3333-0.652173911521.739
Ny13754.3478260875978.261
Tx958.333330.347826087333.3333
Total 7833.333

Una vez que tengamos Impacto Vol y Impacto Promedio, calcularemos el Impacto Dol multiplicando El Impacto Vol por Impacto Promedio y luego sumaremos todo el Impacto Dol del estado para obtener nuestro Impacto Dol total.

Aquí está mi código de medida Dol Impact

Impacto de Dol (Dol Impact)

VAR Vol1_Pct - [Sal de volumen 1] / [Sal de volumen total 1]
VAR Vol2_Pct - [Sal de volumen 2] / [Sal de volumen total 2]
VAR Pct_Diff á Vol1_Pct - Vol2_Pct
Vol_Impact var de var de Pct_Diff * [Volumen total Sel 1]
VAR AvgCost_Impact ?
IF([Volume Sel 1] <> 0, [Avg Cost Sel 1], [Avg Cost Sel 2) - IF([Volumen total Sel 1] <> 0, [Total Avg Cost Sel 1], [Total Avg Cost Sel 2])
Dollar_Impact var de var a Vol_Impact * AvgCost_Impact
devolución
Dollar_Impact
Por lo tanto, cuando pongo esta medida de impacto de Dol en una tabla Matrix con State como filas, muestra cada impacto de dólar de estado correctamente, pero la línea total muestra 0. Mi objetivo es mostrar un impacto total en dólares como tarjeta. A partir de ahora, muestra 0 como un impacto total en dólares como una tarjeta.
¿Hay alguna manera de resumir cada impacto en el dólar estatal y mostrarlo como un valor? ¡Por favor, ayúdenme! Gracias por su tiempo.
9 REPLIES 9
OwenAuger
Super User
Super User

Hola @Maxemus2000

Cuando se desea una medida calculada en una cierta granularidad entonces sumada, normalmente utilizaría SUMX.

El primer argumento de SUMX debe ser una tabla que contenga filas que representen la granularidad del cálculo (en el estado del caso) y el segundo argumento debe ser el propio cálculo.

En su caso, tiene un par de opciones:

1. Escriba otra medida que importe la medida original por Estado, y utilice esta nueva medida en sus objetos visuales:

Dol Impact Summed by State = 
SUMX ( 
    VALUES ( FactTable[State] ),
    [Dol Impact]
)

2. Vuelva a escribir la medida original para que suma por Estado:

Dol Impact =
SUMX (
    VALUES ( FactTable[State] ),
    VAR Vol1_Pct = [Volume Sel 1] / [Total Volume Sel 1]
    VAR Vol2_Pct = [Volume Sel 2] / [Total Volume Sel 2]
    VAR Pct_Diff = Vol1_Pct - Vol2_Pct
    VAR Vol_Impact = Pct_Diff * [Total Volume Sel 1]
    VAR AvgCost_Impact =
        IF ( [Volume Sel 1] <> 0, [Avg Cost Sel 1], [Avg Cost Sel 2] )
            - IF ( [Total Volume Sel 1] <> 0, [Total Avg Cost Sel 1], [Total Avg Cost Sel 2] )
    VAR Dollar_Impact = Vol_Impact * AvgCost_Impact
    RETURN
        Dollar_Impact
)

Notas:

  1. En esta situación, el segundo argumento de SUMX debe consistir en medidas o ajustarse en CALCULATE (para desencadenar la transición de contexto para que State se aplique como filtro). Por lo que puedo ver, todos los valores calculados que dependerían del filtro De Estado ya son medidas, así que creo que no hay necesidad de agregar un CALCULATE explícito.
  2. Además, puedo ver que es posible que desee considerar la posibilidad de declarar algunas variables adicionales para evitar el cálculo repetido de algunas de las sub-medidas.

saludos

Owen


Owen Auger
Did I answer your question? Mark my post as a solution!
Blog
Twitter
LinkedIn

@OwenAuger,
¡Gracias por tu ayuda! Usé la opción #1and funciona muy bien. Anteriormente estaba tratando de hacer SUMX después de la devolución en el cálculo de la medida Dol Impact y no funcionó. Tal vez utilicé el componente de estado de una tabla diferente (error de novato).


Tengo una pregunta más, si no te importa responder. En lugar de los detalles del estado, ¿qué pasa si quiero hacer los detalles de Estado y Tienda? ¿Qué necesito agregar/cambiar cuando calculo la suma total usando SUMX?

@Maxemus2000

Esas son buenas noticias 🙂

Si tiene State & Store definiendo su granularidad, normalmente usaría RESUME para crear una tabla de combinaciones existentes y SUMX sobre eso:

Dol Impact Summed by State = 
SUMX ( 
    SUMMARIZE( FactTable, FactTable[State], FactTable[Store] ),
    [Dol Impact]
)

Notas:

  • State & Store puede estar en FactTable o en tablas en el lado 1 de una relación con FactTable.
  • Otra opción es utilizar SUMAS anidadas en cada dimensión a su vez: SUMX ( VALUES(...), SUMX ( VALUES(...), [Dol Impact] ) )

saludos

Owen 🙂


Owen Auger
Did I answer your question? Mark my post as a solution!
Blog
Twitter
LinkedIn

@OwenAuger
Gracias de nuevo por ayudar. Usé SUMX anidado y me dio "NaN" como resultado. Supongo que podría haber algún error de cálculo en alguna parte.
Por otro lado, he probado la solución SUMMARIZE que ha proporcionado, me dio 0 como un total. ¿Esto está relacionado con el "error de cálculo"?

Además, ¿puede educarme sobre por qué necesito crear otra medida para calcular el dólar total? Intenté añadir la misma declaración SUMX después de RETURN en el Impacto Dol y me dio 0 en lugar del total.

Tengo el error naN cuidando de.

Algunos de los datos estaban en blanco y A PBI no le gusta cuando hago "A / B". Por lo tanto, usé DIVIDE(A, B, 0) en su lugar.

Eso es bueno 🙂
¿El método SUMMARIZE sigue dando un resultado cero?

Para depurar, crearía un objeto visual de tabla o matriz con State & Store, además de la medida final mediante RESUME.

Los valores de medida individuales deben sumar al total, y usted será capaz de ver por qué se compensan a cero.


Owen Auger
Did I answer your question? Mark my post as a solution!
Blog
Twitter
LinkedIn

Sí, el verano todavía me está dando 0. Puse esto en una tabla de matriz y muestra todo 0.

Prueba de la prueba ( Test)
SUMX(SUMMARIZE('Volume', 'Volume'[State], 'Volume'[Store]), 'Impact'[Dol Impact])

Gracias, no estoy seguro de qué está causando eso, algo en la lógica del cálculo [Dol Impact].

¿Puede compartir un archivo pbix de muestra (con datos desinfectados si es necesario) que muestre este problema?

saludos

Owen


Owen Auger
Did I answer your question? Mark my post as a solution!
Blog
Twitter
LinkedIn

Desafortunadamente, debido a la crisis de tiempo y la privacidad de los datos, no puedo compartir mi archivo .pbix original y no tengo suficiente tiempo para replicarlo con datos ficticios. El ejemplo es más o menos usando el cálculo exacto que proporcioné. Por ahora, el SUMX anidado ha hecho el trabajo. Voy a buscar una solución SUMMRIZE cuando tenga tiempo. Gracias por toda su ayuda 🙂

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.

RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

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

MayPowerBICarousel1

Power BI Monthly Update - May 2024

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