El subtotal no funciona correctamente

Un usuario Pregunto ✅

Gdps

¡Hola a todos!

Estoy tratando de obtener la suma total de una tabla, que tiene valores en diferentes monedas.

Comencé a aprender DAX hace dos semanas, pero logré obtener la suma correcta por mes, pero los subtotales no funcionan.

Básicamente…

Tengo una tabla con el valor de cada moneda en dólares:

Factor.PNG

Para obtener solo los valores en la moneda ARS, usé:

Total_Orçado_ARS = SUMX(FILTER(Arg_Orcado;Arg_Orcado[Currency]="ARS");Arg_Orcado[ValorOrçado])

Total_ARS.PNG

Para convertir ARS a USD:

Convert_ARS_USD = SUMX(FILTER(db_Currency;db_Currency[LocalCurrency]="ARS");db_Currency[Factor])

Y finalmente, para corregir el monto total:

Total_ARS_USD = DIVIDE([Total_Orçado_ARS];[Convert_ARS_USD];0)

El resultado por fila parece correcto, pero el subtotal no.

ARS_USD.PNG

1) ¿Cómo puedo obtener el subtotal correcto (8.215.067,05 ARS)?

2) ¿Alguna sugerencia sobre cómo puedo optimizar esta conversión de moneda?

Atentamente

Hola @Gdps

Para su pregunta 1, esto parece un problema de totales de medida. Básicamente, cree un «Calculate_Row » medida que calcula el resultado correcto a nivel de fila.

Calculate_Row = DIVIDIR ([Total_Orçado_ARS],[Convert_ARS_USD], 0)

Luego, cree un «Total_USD « medida que realiza un RESUMEN de sus datos, exactamente como se muestra en su tabla, y use el «Total_USD « medir dentro de esa función SUMMARIZE para proporcionar los valores para las filas resumidas individualmente. Finalmente, realice una función SUMX en esa tabla resumida para emplear en la línea Total. La función HASONEVALUE comprueba si es realmente necesario utilizar el SUMX.

Total_USD =

VAR _table = SUMMARIZE (‘db_Currency’,[Mes_Nome_Mai],[Total_Orçado_ARS],[Convert_ARS_USD],»_Valor»,[Calculate_Row])

REGRESO

IF (HASONEVALUE (‘db_Currency'[Mes_Nome_Mai]),[Calculate_Row], SUMX (_tabla,[_Value]))

Consulte esta publicación sobre un caso similar: https://community.powerbi.com/t5/Quick-Measures-Gallery/Measure-Totals-The-Final-Word/mp/547907.

Para su pregunta 2, puede crear un «Convert_ARS_USD « medir para obtener el tipo de cambio.

Convert_ARS_USD = LOOKUPVALUE (db_Currency[Factor], Arg_Orcado[Currency], «ARS», Arg_Orcado[Mes_Nome_Mai], MAX (Arg_Orcado[Mes_Nome_Mai]))

Si tiene algún otro problema, no dude en preguntar.

Atentamente,

Amy

Hola @Gdps

Para su pregunta 1, esto parece un problema de totales de medida. Básicamente, cree un «Calculate_Row » medida que calcula el resultado correcto a nivel de fila.

Calculate_Row = DIVIDIR ([Total_Orçado_ARS],[Convert_ARS_USD], 0)

Luego, cree un «Total_USD « medida que realiza un RESUMEN de sus datos, exactamente como se muestra en su tabla, y use el «Total_USD « medir dentro de esa función SUMMARIZE para proporcionar los valores para las filas resumidas individualmente. Finalmente, realice una función SUMX en esa tabla resumida para emplear en la línea Total. La función HASONEVALUE comprueba si es realmente necesario utilizar el SUMX.

Total_USD =

VAR _table = SUMMARIZE (‘db_Currency’,[Mes_Nome_Mai],[Total_Orçado_ARS],[Convert_ARS_USD],»_Valor»,[Calculate_Row])

REGRESO

IF (HASONEVALUE (‘db_Currency'[Mes_Nome_Mai]),[Calculate_Row], SUMX (_tabla,[_Value]))

Consulte esta publicación sobre un caso similar: https://community.powerbi.com/t5/Quick-Measures-Gallery/Measure-Totals-The-Final-Word/mp/547907.

Para su pregunta 2, puede crear un «Convert_ARS_USD « medir para obtener el tipo de cambio.

Convert_ARS_USD = LOOKUPVALUE (db_Currency[Factor], Arg_Orcado[Currency], «ARS», Arg_Orcado[Mes_Nome_Mai], MAX (Arg_Orcado[Mes_Nome_Mai]))

Si tiene algún otro problema, no dude en preguntar.

Atentamente,

Amy

Gdps

En respuesta a v-xicai

Hola @ v-xicai

Indagando un poco más descubrí el LOOKUPVALUE. Entonces creé la columna calculada con esta fórmula, por lo que cada línea de valor ahora tiene el factor de conversión (según la moneda local y el mes).

Trabajado como un encanto.

Pero miraré la fórmula SUMMARIZE y HASONEVALUE más adelante.

Gracias por la ayuda

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *