Forum Discussion
Medida no correcta Moneda
Tenga una tabla llamada Cost_Data y tiene costos en tres monedas diferentes USD, GBP y EUR. Otra tabla llamada Currency_Convert con columnas Moneda, Símbolo, Formato. Estoy tratando de tener una rebanadora que puede seleccionar USD, GB o EUR y el costo se actualizará. Lo que tengo funciona, pero no es extraer el símbolo correcto de los datos. Intenté usar el formato de mi tabla de Currency_convert, pero eso lo cambia a texto y no tiene valor numérico para usar en otro lugar.
Aquí está el archivo.
https://drive.google.com/file/d/1q3Ep2NC83Bx9lnirCd6LEgJbcpuBsDSS/view?usp=sharing
Mi segmentación de datos se muestra en EUR y el número es correcto para la columna de moneda verdadera, pero el símbolo es incorrecto.
Hay @Pretengineer ,
La razón por la que el gráfico de líneas no se muestra después de usar la nueva medida es que los datos obtenidos en el formato FORMAT son esencialmente una cadena de texto. Incluso si el formato de los datos se cambia a número o moneda, no se puede ordenar por tamaño, sino solo en orden alfabético.
Pero los valores en el gráfico de líneas deben ser del tipo de datos numéricos, por lo que no puede mostrar nada.
Si desea que el símbolo se desplace correctamente en el gráfico de líneas, debe tener tres medidas, establecer el símbolo de moneda correspondiente para cada medida, aquí está mi solución.
Cost EUR' = IF ( SELECTEDVALUE ( Currency_Convert[Currency] ) = "EUR", MAX ( 'Cost_Data'[Cost EUR] ), BLANK () )Cost GBP' = IF ( SELECTEDVALUE ( Currency_Convert[Currency] ) = "GBP", MAX ( 'Cost_Data'[Cost GBP] ), BLANK () )Cost USD' = IF ( SELECTEDVALUE ( Currency_Convert[Currency] ) = "USD", MAX ( 'Cost_Data'[Cost USD] ), BLANK () )Obtiene el resultado correcto para cada moneda.
Adjunto mi muestra a continuación como referencia.
Saludos
Equipo de apoyo a la comunidad _ kalyjSi esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
5 Replies
- Syndicate_Admin
Administrator
Hay @Pretengineer ,
Aquí una solución:
Y aquí su medida DAX actualizada:
True Currency = Var USD_Cost = Max(Cost_Data[Cost USD]) Var GBP_Cost = Max(Cost_Data[Cost GBP]) Var EUR_Cost = Max(Cost_Data[Cost EUR]) Var Currency_ID = Cost_Data[Currency Selected] Return SWITCH( TRUE(), Currency_ID = "USD" , FORMAT(USD_Cost,"$#,##0"), Currency_ID = "GBP" , FORMAT(GBP_Cost,"£#,##0"), Currency_ID = "EUR" , FORMAT(EUR_Cost,"€#,##0"), 0)¿Esto resuelve su problema? 🙂
[EDITAR]
Si desea mostrar dos decimales, puede usar este código aquí:
True Currency = Var USD_Cost = Max(Cost_Data[Cost USD]) Var GBP_Cost = Max(Cost_Data[Cost GBP]) Var EUR_Cost = Max(Cost_Data[Cost EUR]) Var Currency_ID = Cost_Data[Currency Selected] Return SWITCH( TRUE(), Currency_ID = "USD" , FORMAT(USD_Cost,"$#.00"), Currency_ID = "GBP" , FORMAT(GBP_Cost,"£#.00"), Currency_ID = "EUR" , FORMAT(EUR_Cost,"€#.00"), 0)/Tom
https://www.tackytech.blog/
https://www.instagram.com/tackytechtom/- Syndicate_Admin
Administrator
Gracias por la sugerencia, en realidad probé esto y funciona para la tabla, pero no funciona en el gráfico. Todavía no entiendo por qué el gráfico no funciona. Además, en la tabla el total de esa columna también es incorrecto.
- Syndicate_Admin
Administrator
Gracias por la sugerencia, en realidad probé esto y funciona para la tabla, pero no funciona en el gráfico. Todavía no entiendo por qué el gráfico no funciona. Además, en la tabla el total de esa columna también es incorrecto.
- Syndicate_Admin
Administrator
Hay @Pretengineer ,
Este parece ser un problema algo conocido. Dado que la función de formato traduce el número a texto, funciona bien en tablas pero no en gráficos... Busqué un poco en Google y encontré esto:
Resuelto: DAX para cambiar dinámicamente el símbolo de moneda faci... - Microsoft Power BI Community
Entonces, mi sugerencia es tener dos medidas, una para las tablas con el signo de moneda correcto. Y otro para gráficos. Todavía muestra la conversión correcta del tipo de cambio, pero se pierde el símbolo de la moneda....
Aquí las medidas (fijé los valores totales también 🙂 😞
True Currency Number = Var USD_Cost = SUM(Cost_Data[Cost USD]) Var GBP_Cost = SUM(Cost_Data[Cost GBP]) Var EUR_Cost = SUM(Cost_Data[Cost EUR]) Var Currency_ID = Cost_Data[Currency Selected] RETURN SWITCH( TRUE(), Currency_ID = "USD" , USD_Cost, Currency_ID = "GBP" , GBP_Cost, Currency_ID = "EUR" , EUR_Cost, 0 )True Currency Text = Var Currency_ID = Cost_Data[Currency Selected] RETURN SWITCH( TRUE(), Currency_ID = "USD" , FORMAT(Cost_Data[True Currency Number],"$#.00"), Currency_ID = "GBP" , FORMAT(Cost_Data[True Currency Number],"£#.00"), Currency_ID = "EUR" , FORMAT(Cost_Data[True Currency Number],"€#.00"), 0 )
Además, cambié el tipo de las medidas a Moneda para el texto [Moneda verdadera] y a Decimal para [Número de moneda verdadera]./Tom
https://www.tackytech.blog/
https://www.instagram.com/tackytechtom/ - Syndicate_Admin
Administrator
Hay @Pretengineer ,
La razón por la que el gráfico de líneas no se muestra después de usar la nueva medida es que los datos obtenidos en el formato FORMAT son esencialmente una cadena de texto. Incluso si el formato de los datos se cambia a número o moneda, no se puede ordenar por tamaño, sino solo en orden alfabético.
Pero los valores en el gráfico de líneas deben ser del tipo de datos numéricos, por lo que no puede mostrar nada.
Si desea que el símbolo se desplace correctamente en el gráfico de líneas, debe tener tres medidas, establecer el símbolo de moneda correspondiente para cada medida, aquí está mi solución.
Cost EUR' = IF ( SELECTEDVALUE ( Currency_Convert[Currency] ) = "EUR", MAX ( 'Cost_Data'[Cost EUR] ), BLANK () )Cost GBP' = IF ( SELECTEDVALUE ( Currency_Convert[Currency] ) = "GBP", MAX ( 'Cost_Data'[Cost GBP] ), BLANK () )Cost USD' = IF ( SELECTEDVALUE ( Currency_Convert[Currency] ) = "USD", MAX ( 'Cost_Data'[Cost USD] ), BLANK () )Obtiene el resultado correcto para cada moneda.
Adjunto mi muestra a continuación como referencia.
Saludos
Equipo de apoyo a la comunidad _ kalyjSi esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.