Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers!
Enter the sweepstakes now!Preparing for a certification exam? Ask exam experts all your questions on May 15th. Register now.
La siguiente medida Amount3 establecerá las variables de filtro en un valor predeterminado a menos que haya un contexto de filtro externo. A continuación, realizará un cambio para determinar qué columna de la tabla de hechos se va a calcular.
El rendimiento en esta medida es decente, pero me gustaría saber si hay cosas que podamos hacer para que sea más rápido. Por ejemplo, ¿es mejor envolver las expresiones de filtro CALCULATE en KEEPFILTERS()? He hecho un poco de pruebas de rendimiento de dax en eso, pero el rendimiento es inconsistente al agregar y eliminar una función KEEPFILTERS(). Demasiado cerca para llamar en este punto.
Hola @jbauer22 ,
En función de la descripción, reutilice los cálculos comunes y utilice la función de resumen.
A continuación, modifique la variable a la siguiente fórmula:
VAR varLevel = SWITCH(
TRUE,
ISFILTERED('Dim Workday Employee') || ISFILTERED('Dim Workday Time Block'), 3,
ISFILTERED('Dim Journal Header') || ISFILTERED('Dim Journal Line') || ISFILTERED('Dim Journal Source') || ISFILTERED('Dim Activity') || ISFILTERED('Dim Resource Category') || ISFILTERED('Dim Analysis Type') || ISFILTERED('Dim Resource Type') || ISFILTERED('Dim Resource Sub Category') || ISFILTERED('Dim Calendar'[Date]), 2,
1
)
VAR FilteredFactLedger = CALCULATETABLE(
'Fact Ledger',
KEEPFILTERS('Fact Ledger'[Load Level] = varLevel),
KEEPFILTERS('Fact Ledger'[Ledger] = varLedger),
KEEPFILTERS('Fact Ledger'[Book Code] IN varBookCode)
)
// Calculation the amount using the appropriate column and filter variables
RETURN SWITCH(
TRUE,
varCP = "Transaction Currency" && varLevel = 1, SUMX(FilteredFactLedger, 'Fact Ledger'[Ledger Transaction Amount - Explicit]),
varCP = "Base Currency" && varLevel = 1, SUMX(FilteredFactLedger, 'Fact Ledger'[Ledger Base Amount - Explicit]),
varCP = "USD Currency" && varLevel = 1, SUMX(FilteredFactLedger, 'Fact Ledger'[Ledger USD Amount - Explicit]),
varCP = "Transaction Currency" && varLevel = 2, SUMX(FilteredFactLedger, 'Fact Ledger'[Journal Transaction Amount - Explicit]),
varCP = "Base Currency" && varLevel = 2, SUMX(FilteredFactLedger, 'Fact Ledger'[Journal Base Amount - Explicit]),
varCP = "USD Currency" && varLevel = 2, SUMX(FilteredFactLedger, 'Fact Ledger'[Journal USD Amount - Explicit]),
Saludos
Sabiduría Wu
Si esta publicación ayuda, considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.
Check out the April 2025 Power BI update to learn about new features.
Explore and share Fabric Notebooks to boost Power BI insights in the new community notebooks gallery.