The ultimate Microsoft Fabric, Power BI, Azure AI, and SQL learning event! Join us in Stockholm, Sweden from September 24-27, 2024.
2-for-1 sale on June 20 only!
Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
Hola
Tenemos un requisito para calcular la conversión de moneda y el DAX que se está utilizando es simple -
Importe de ventas: SUMX (Ventas, Ventas[SalesAmt]*CALCULATE ( SUM ( ExchangeRate[ExchRate] ), USERELATIONSHIP ( Sales[Currency], ExchangeRate[Currency] ) ))
Esto funciona bien cuando se usa en conjuntos de datos pequeños, pero cuando tiene que recorrer millones de registros, lo que da un error de memoria, ya que tiene que contener un gran volumen de datos en la memoria.
Transacciones de ventas -
CompanyCode | DocumentNo | Moneda | SalesAmount |
100 | 1001 | Eur | 100 |
100 | 1002 | Eur | 200 |
100 | 1003 | Cad | 100 |
100 | 1004 | Cad | 400 |
Tipo de Cambio -
Moneda | -->Tasa USD |
Eur | 1.2 |
Cad | .77 |
En el ejemplo anterior, hay 4 transacciones y bucle thorugh todos esos registros está afectando el rendimiento.
Si podemos aplicar el procesamiento como se indica a continuación, creo que podemos abevitar SUMX por completo.
Paso 1-
CompanyCode | Moneda | SalesAmount |
100 | Eur | 300 |
100 | Cad | 500 |
Paso 2-
CompanyCode | Moneda | SalesAmount | Tasa | Cantidad |
100 | Eur | 300 | 1.2 | 360 |
100 | Cad | 500 | .77 | 385 |
Resultado -
CompanyCode | Cantidad |
100 | 745 |
Por favor, aconseje al DAX que lo atraviese. ¡Gracias de antemano!
Solved! Go to Solution.
Hola
Pleaase intenta crear esta tabla calculada:
Table =
ADDCOLUMNS (
SUMMARIZE (
'Sales Transactions',
'Sales Transactions'[CompanyCode],
'Sales Transactions'[Currency],
"Sales", SUM ( 'Sales Transactions'[SalesAmount] )
),
"Rate", CALCULATE (
SUM ( 'Exchange Rate'[ -->USD Rate] ),
USERELATIONSHIP ( 'Sales Transactions'[Currency], 'Exchange Rate'[Currency] )
)
)
A continuación, pruebe esta medida:
Amount = SUMX(DISTINCT('Table'[Currency]),CALCULATE(MAX('Table'[Sales])*MAX('Table'[Rate])))
El resultado muestra:
Aquí está mi archivo pbix de prueba:
Espero que esto ayude.
Saludos
Giotto Zhi
Hola
Pleaase intenta crear esta tabla calculada:
Table =
ADDCOLUMNS (
SUMMARIZE (
'Sales Transactions',
'Sales Transactions'[CompanyCode],
'Sales Transactions'[Currency],
"Sales", SUM ( 'Sales Transactions'[SalesAmount] )
),
"Rate", CALCULATE (
SUM ( 'Exchange Rate'[ -->USD Rate] ),
USERELATIONSHIP ( 'Sales Transactions'[Currency], 'Exchange Rate'[Currency] )
)
)
A continuación, pruebe esta medida:
Amount = SUMX(DISTINCT('Table'[Currency]),CALCULATE(MAX('Table'[Sales])*MAX('Table'[Rate])))
El resultado muestra:
Aquí está mi archivo pbix de prueba:
Espero que esto ayude.
Saludos
Giotto Zhi
Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.
Check out the June 2024 Power BI update to learn about new features.