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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

El contexto de filtro no funciona en variables calculadas

hola

Tengo código como tal - esto es suponer para desglosar los gastos para la región norte:

    TotalExpense = 
    VAR _percentage = SUM(north%)
    VAR _goodexpense = SUM(expense[allgoodexpense])* _percentage
    VAR _fuelexpense = SUM(expense[allfuel])* _percentage
    VAR _total = _goodexpense + _fuelexpense
    RETURN CALCULATE(_total, 
    FILTER(ALL(FYDate), FYDate[RankFinYYWW] =  MAX(FYDate[RankFinYYWW])-6
                        && FYDate[RankFinYYWW] =  MAX(FYDate[RankFinYYWW]) -1))

Lo que debería filtrar mi visual entre la semana pasada y las 6 semanas anteriores.
Pero por el momento su regreso todas las semanas que tengo en mi Calandra, sólo quiero el amarillo hightlighted

ladyhaley_1-1624573780252.png

No estoy seguro de dónde me equivoqué aquí, ya que el filtro funciona bien para otras medidas ejemplo:

AllTotalExpense =
CALCULATE(SUM(expense[allgoodexpense]), 
FILTER(ALL(FYDate),
    FYDate[RankFinYYWW] >= MAX(FYDate[RankFinYYWW])-6 &&
     FYDate[RankFinYYWW] <= MAX(FYDate[RankFinYYWW])-1)))

ladyhaley_2-1624574409916.png


Por favor, ayuda - hágamelo saber si necesita datos de muestra, ya que puedo crear algunos datos de maqueta también.

2 ACCEPTED SOLUTIONS

gracias

Pude lograr el filtro filtrando cada VAR individualmente de la siguiente manera

totalexpensenorthVAR = 
VAR _percentagenorth = 
CALCULATE(SUM(expense[north]),
FILTER(ALL(FYDate),
    FYDate[RankFinYYWW] >= MAX(FYDate[RankFinYYWW])-2 &&
    FYDate[RankFinYYWW] <= MAX(FYDate[RankFinYYWW])-1))

VAR _goodexpense =
CALCULATE(SUM(expense[allexpense]),
FILTER(ALL(FYDate),
    FYDate[RankFinYYWW] >= MAX(FYDate[RankFinYYWW])-2 &&
    FYDate[RankFinYYWW] <= MAX(FYDate[RankFinYYWW])-1))

VAR _fuelexpense =CALCULATE(SUM(expense[fuelexpense]),
FILTER(ALL(FYDate),
    FYDate[RankFinYYWW] >= MAX(FYDate[RankFinYYWW])-2 &&
    FYDate[RankFinYYWW] <= MAX(FYDate[RankFinYYWW])-1))

VAR _total = (_goodexpense+_fuelexpense)*_percentagenorth

RETURN _total

View solution in original post

Syndicate_Admin
Administrator
Administrator

¡Ahí @ladyhaley!

Hay 2 problemas con el código DAX que ha escrito; Reemplacemos todo el VAR por medidas explícitas [_total];

_total = 
    VAR _percentagenorth = SUM(expense[north])
    VAR _goodexpense = SUM(expense[allexpense]) * _percentagenorth
    VAR _fuelexpense = SUM(expense[fuelexpense]) * _percentagenorth

RETURN  _goodexpense +_fuelexpense

totalexpensenorth = 
CALCULATE([_total], 
    FILTER(ALL(FYDate), FYDate[RankFinYYWW] >=  MAX(FYDate[RankFinYYWW])-2
                        && FYDate[RankFinYYWW] <=  MAX(FYDate[RankFinYYWW]) -1))


El otro problema en su DAX fue con > = & < = signo, que estaba usando = signo para ambas condiciones anteriormente.

Espero que esto se resuelva.

saludos

Hasham

View solution in original post

7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

¡Ahí @ladyhaley!

Hay 2 problemas con el código DAX que ha escrito; Reemplacemos todo el VAR por medidas explícitas [_total];

_total = 
    VAR _percentagenorth = SUM(expense[north])
    VAR _goodexpense = SUM(expense[allexpense]) * _percentagenorth
    VAR _fuelexpense = SUM(expense[fuelexpense]) * _percentagenorth

RETURN  _goodexpense +_fuelexpense

totalexpensenorth = 
CALCULATE([_total], 
    FILTER(ALL(FYDate), FYDate[RankFinYYWW] >=  MAX(FYDate[RankFinYYWW])-2
                        && FYDate[RankFinYYWW] <=  MAX(FYDate[RankFinYYWW]) -1))


El otro problema en su DAX fue con > = & < = signo, que estaba usando = signo para ambas condiciones anteriormente.

Espero que esto se resuelva.

saludos

Hasham

Gracias por la explicación detallada supongo que tendría que escribir esto como dos medidas?

@ladyhaley

Estas son 2 medidas.

Syndicate_Admin
Administrator
Administrator

@ladyhaley Cuando se crea una variable como esta:
VAR _Val = Calcular( ... )

Se considerará como una constante por lo que no puede utilizar esta variable en un futuro Calcular expresión como esta :
Calcular( _Val, Filtro(...) )

Debe eliminar estas variables y mantener la expresión SUM original en la función calculate

gracias

Pude lograr el filtro filtrando cada VAR individualmente de la siguiente manera

totalexpensenorthVAR = 
VAR _percentagenorth = 
CALCULATE(SUM(expense[north]),
FILTER(ALL(FYDate),
    FYDate[RankFinYYWW] >= MAX(FYDate[RankFinYYWW])-2 &&
    FYDate[RankFinYYWW] <= MAX(FYDate[RankFinYYWW])-1))

VAR _goodexpense =
CALCULATE(SUM(expense[allexpense]),
FILTER(ALL(FYDate),
    FYDate[RankFinYYWW] >= MAX(FYDate[RankFinYYWW])-2 &&
    FYDate[RankFinYYWW] <= MAX(FYDate[RankFinYYWW])-1))

VAR _fuelexpense =CALCULATE(SUM(expense[fuelexpense]),
FILTER(ALL(FYDate),
    FYDate[RankFinYYWW] >= MAX(FYDate[RankFinYYWW])-2 &&
    FYDate[RankFinYYWW] <= MAX(FYDate[RankFinYYWW])-1))

VAR _total = (_goodexpense+_fuelexpense)*_percentagenorth

RETURN _total
Syndicate_Admin
Administrator
Administrator

hola

Incapaz de entender su pregunta. Comparta el enlace desde donde puedo descargar su archivo PBI y mostrar claramente el resut esperado allí.

Hola he hecho un archivo PBIX de muestra.

Primera vez tratando de compartirlo, así que hágamelo saber si no funciona.

archivo de ejemplo.pbx

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.