Reply
Frequent Visitor
Posts: 4
Registered: ‎01-14-2019
Accepted Solution

Add column to matrix visual

Hello,

 

I am working with data like this:

 

DivisionDivisionNumberTypeAmount
P1Available100
M2Available400
V3Requested200
P1Available300
P4Allocated800
M5Allocated200
P1Available100
V3Requested300
V2Allocated600

 

Out of this table I created a matrix visual:

https://imgur.com/a/KjgFOsc

 

Now I would like to add a column to that matrix which sums up the two columns "Available" and "Requested" for each row.

 

Is that possible? If not, how could I mainpulate the data before making the visual (I think I would need to add calculated rows to solve this but that is not possible, right?).

 

Thanks in advance.


Accepted Solutions
Highlighted
Super User
Super User
Posts: 1,274
Registered: ‎11-12-2018

Re: Add column to matrix visual

Hi @Mana

 

This might be a bit of an unnecessarily intricate solution, certainly compared to @Zubair_Muhammad's, but you could try:

 

1. Create a new, table DisplayTable with one column with the values of your Type column plus one for the additional column "Available+Requested". Create a relationship between DisplayTable[Type] and Table1[Type] (Table1 is your current table)

2. Place DisplayTable[Type] in the columns of your matrix visual (the rows are the same as you have now)

3. Create this measure:

Measure =
SWITCH (
    TRUE (),
    SELECTEDVALUE ( DisplayTable[Type] ) IN ALL ( Table1[Type] ), SUM ( Table1[Amount] ),
    CALCULATE (
        SUM ( Table1[Amount] ),
        Table1[Type] IN { "Available", "Requested" }
    )
)

4. Place the measure in values of your matrix visual

 

                 

View solution in original post

Super User
Super User
Posts: 1,274
Registered: ‎11-12-2018

Re: Add column to matrix visual

@Mana

Most likely nothing wrong Smiley Happy I hadn't tested it.

Try this small change:

 

Measure =
SWITCH (
    TRUE (),
    SELECTEDVALUE ( DisplayTable[Type] ) IN ALL ( Table1[Type] ), SUM ( Table1[Amount] ),
    CALCULATE (
        SUM ( Table1[Amount] ),
        DisplayTable[Type] IN { "Available", "Requested" }
    )
)

 

View solution in original post


All Replies
Super User
Posts: 2,949
Registered: ‎09-27-2017

Re: Add column to matrix visual

[ Edited ]

@Mana

 

You can add a MEASURE but i think it will repeat for each Column in the Matrix....

 

Measure =
CALCULATE ( SUM ( Table1[Amount] ), [Type] = "Available" )
    + CALCULATE ( SUM ( Table1[Amount] ), [Type] = "Requested" )

Another way could be to use Power Query

 

First pivot the "Type" Column...Then you can add the "Available" and "requested" Columns
Not unpivot again

 

Check this article as well
http://www.excelnaccess.com/adding-calculated-row-calculated-items-using-power-query/

Highlighted
Super User
Super User
Posts: 1,274
Registered: ‎11-12-2018

Re: Add column to matrix visual

Hi @Mana

 

This might be a bit of an unnecessarily intricate solution, certainly compared to @Zubair_Muhammad's, but you could try:

 

1. Create a new, table DisplayTable with one column with the values of your Type column plus one for the additional column "Available+Requested". Create a relationship between DisplayTable[Type] and Table1[Type] (Table1 is your current table)

2. Place DisplayTable[Type] in the columns of your matrix visual (the rows are the same as you have now)

3. Create this measure:

Measure =
SWITCH (
    TRUE (),
    SELECTEDVALUE ( DisplayTable[Type] ) IN ALL ( Table1[Type] ), SUM ( Table1[Amount] ),
    CALCULATE (
        SUM ( Table1[Amount] ),
        Table1[Type] IN { "Available", "Requested" }
    )
)

4. Place the measure in values of your matrix visual

 

                 

Frequent Visitor
Posts: 4
Registered: ‎01-14-2019

Re: Add column to matrix visual

[ Edited ]

https://imgur.com/a/dOTmZAO

 

@AlB Did I do something wrong? Smiley Sad

Super User
Super User
Posts: 1,274
Registered: ‎11-12-2018

Re: Add column to matrix visual

@Mana

Most likely nothing wrong Smiley Happy I hadn't tested it.

Try this small change:

 

Measure =
SWITCH (
    TRUE (),
    SELECTEDVALUE ( DisplayTable[Type] ) IN ALL ( Table1[Type] ), SUM ( Table1[Amount] ),
    CALCULATE (
        SUM ( Table1[Amount] ),
        DisplayTable[Type] IN { "Available", "Requested" }
    )
)

 

Frequent Visitor
Posts: 4
Registered: ‎01-14-2019

Re: Add column to matrix visual

@AlB

It worked, thanks so much!

 

Is there any possibility to add two more columns based on the column we just calculated?

First one should be: Allocated - (Available+Requested)

Second one: (Available+Requested) / Allocated * 100

Super User
Super User
Posts: 1,274
Registered: ‎11-12-2018

Re: Add column to matrix visual

[ Edited ]

@Mana

Yes, we can do it by following the same logic but the more columns you add, the less sense it makes to do it this way and the more with one different measure for each calculation. The code is getting overly long now, I would think.

 

You'd need to add the new column names to the DisplayTable. I've used the exact copy of how you've described the operations. You can update that if you want with something shorter but then you'd have to update the corresponding comparisons in the code as well. The new DisplayTable would now look like:

 

Type

Available
Requested
Allocated
Available+Requested
Allocated - (Available+Requested)

(Available+Requested) / Allocated * 100

 

and we need to make some changes in the measure:

 

Measure 2 = 
VAR _CurrentColumn = SELECTEDVALUE ( DisplayTable[Type] )
RETURN
    SWITCH (
        TRUE ();
        _CurrentColumn IN ALL ( Table1[Type] ); SUM ( Table1[Amount] );
        _CurrentColumn = "Available+Requested";
CALCULATE ( SUM ( Table1[Amount] ); DisplayTable[Type] IN { "Available"; "Requested" } ); _CurrentColumn = "Allocated - (Available+Requested)";
CALCULATE ( SUM ( Table1[Amount] ); DisplayTable[Type] = "Allocated" ) - CALCULATE ( SUM ( Table1[Amount] ); DisplayTable[Type] IN { "Available"; "Requested" } ); _CurrentColumn = "(Available+Requested) / Allocated * 100"; 100*DIVIDE ( CALCULATE ( SUM ( Table1[Amount] ); DisplayTable[Type] IN { "Available"; "Requested" } ); CALCULATE ( SUM ( Table1[Amount] ); DisplayTable[Type] = "Allocated" ) ) )

I've interpreted  (Available+Requested) / Allocated * 100 to be

100*( (Available+Requested) / Allocated) 

If this is not the case you can update the code with the correct calculation

 

 

Code formatted with   www.daxformatter.com

Frequent Visitor
Posts: 4
Registered: ‎01-14-2019

Re: Add column to matrix visual

@AlB

Wow, thanks again, this works absolutely fine.

I don't need any other columns, so there is nothing to complain about.

I really appreciate your help, thank you! Smiley Happy