Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

SUMX with modifications

Hi,

I have a table with 3 columns, Item, Unit of Measure, and Quantity.

 

 

ItemUnit of MeasureQuantity
Akg1
Bmg1000000
Cmg1000000
Amg1000000


I want to add a measure to sum the quantities, but differently depending on the Unit of Measure for each row. If Unit of Measure = "kg", then Quantity X 1000000, else Quantity.

 

The resulting table would look like the following:

ItemTotal
A2000000
B1000000
C1000000
  • Hi Anonymous

     

    Try this, where Table1 is the table you show:

     

    1. Set Table1[ID] in the rows of a matrix visual

    2. Create this measure and place it in values of the matrix:

     

    Measure =
    SUMX (
        Table1,
        IF (
            Table1[Unit of Measure] = "kg",
            Table1[Quantity] * 1000000,
            Table1[Quantity]
        )
    )
  • So, something like:

     

    Measure = 
    VAR __table = SUMMARIZE('Table4',[Item],[Unit of Measure],"__quantity",IF([Unit of Measure]="kg",SUM([Quantity])*1000000,SUM([Quantity])))
    RETURN
    SUMX(__table,[__quantity])

    ?

     

    See attached Table 4, Page 3

2 Replies

  • AlB's avatar
    AlB
    Community Champion

    Hi Anonymous

     

    Try this, where Table1 is the table you show:

     

    1. Set Table1[ID] in the rows of a matrix visual

    2. Create this measure and place it in values of the matrix:

     

    Measure =
    SUMX (
        Table1,
        IF (
            Table1[Unit of Measure] = "kg",
            Table1[Quantity] * 1000000,
            Table1[Quantity]
        )
    )
  • Greg_Deckler's avatar
    Greg_Deckler
    Community Champion

    So, something like:

     

    Measure = 
    VAR __table = SUMMARIZE('Table4',[Item],[Unit of Measure],"__quantity",IF([Unit of Measure]="kg",SUM([Quantity])*1000000,SUM([Quantity])))
    RETURN
    SUMX(__table,[__quantity])

    ?

     

    See attached Table 4, Page 3