Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
1 year ago

Problem with DAX measures - total

Hello, 

 

i have a problem with 2 same measures.

My casse is to count customers between 0-5% of % of grand total, and 5-10% of grand total

 

My code for 0-5% :

Broj kupaca 0-5 = 

VAR _tabela = ADDCOLUMNS(
    SUMMARIZE(
        OTP,
        OTP[Šifra kupca]
    ),
    "@Promet",[Promet],
    "@UkupanPromet",CALCULATE([Promet],REMOVEFILTERS(OTP[Šifra kupca]))
)

VAR _ucesce = ADDCOLUMNS(
    _tabela,
    "@Ucesce",DIVIDE([@Promet],[@UkupanPromet])
)

VAR _filtrirano = FILTER(
    _ucesce,
    [@Ucesce] >=0.00 && [@Ucesce]<=0.05
)

VAR _brojKupaca = COUNTROWS(_filtrirano)

RETURN _brojKupaca

 

and my code for 5-10% : 

Broj kupaca 5-10 = 

VAR _tabela = ADDCOLUMNS(
    SUMMARIZE(
        OTP,
        OTP[Šifra kupca]
    ),
    "@Promet",[Promet],
    "@UkupanPromet",CALCULATE([Promet],REMOVEFILTERS(OTP[Šifra kupca]))
)

VAR _ucesce = ADDCOLUMNS(
    _tabela,
    "@Ucesce",DIVIDE([@Promet],[@UkupanPromet])
)

VAR _filtrirano = FILTER(
    _ucesce,
    [@Ucesce] >=0.051 && [@Ucesce]<=0.10
)

VAR _brojKupaca = COUNTROWS(_filtrirano)

RETURN _brojKupaca

 

 

 

Now i will attach my photo : 

 

 

in green are customers from 0-5%, and pink 5-10%

Values are correct, but for second formula i dont have a total. You can see at my image. 

Where is the problem?

3 Replies

  • Anonymous To ensure that the total is calculated correctly, you can use the SUMX function to iterate over the table and sum the results. Here is how you can modify your measures:

    Broj kupaca 0-5 =
    VAR _tabela = ADDCOLUMNS(
    SUMMARIZE(
    OTP,
    OTP[Šifra kupca]
    ),
    "@Promet",[Promet],
    "@UkupanPromet",CALCULATE([Promet],REMOVEFILTERS(OTP[Šifra kupca]))
    )

    VAR _ucesce = ADDCOLUMNS(
    _tabela,
    "@Ucesce",DIVIDE([@Promet],[@UkupanPromet])
    )

    VAR _filtrirano = FILTER(
    _ucesce,
    [@Ucesce] >=0.00 && [@Ucesce]<=0.05
    )

    VAR _brojKupaca = COUNTROWS(_filtrirano)

    RETURN
    IF(
    HASONEVALUE(OTP[Šifra kupca]),
    _brojKupaca,
    SUMX(
    VALUES(OTP[Šifra kupca]),
    CALCULATE(_brojKupaca)
    )
    )

     

    DAX
    Broj kupaca 5-10 =
    VAR _tabela = ADDCOLUMNS(
    SUMMARIZE(
    OTP,
    OTP[Šifra kupca]
    ),
    "@Promet",[Promet],
    "@UkupanPromet",CALCULATE([Promet],REMOVEFILTERS(OTP[Šifra kupca]))
    )

    VAR _ucesce = ADDCOLUMNS(
    _tabela,
    "@Ucesce",DIVIDE([@Promet],[@UkupanPromet])
    )

    VAR _filtrirano = FILTER(
    _ucesce,
    [@Ucesce] >=0.051 && [@Ucesce]<=0.10
    )

    VAR _brojKupaca = COUNTROWS(_filtrirano)

    RETURN
    IF(
    HASONEVALUE(OTP[Šifra kupca]),
    _brojKupaca,
    SUMX(
    VALUES(OTP[Šifra kupca]),
    CALCULATE(_brojKupaca)
    )
    )

    • Anonymous's avatar
      Anonymous
      Not applicable

      bhanu_gautam My table filter i want to be a dinamicly. In this case filter is Naziv ( Category) but somethimes i want to put a ItemNo or something. And IF Hasonevalue not work propertly in other cases

    • Anonymous's avatar
      Anonymous
      Not applicable

      bhanu_gautam 

      Look this. 
      When I filter Naziv column, i got i totals : 


      But when not filtering , i got blank :