Forum Discussion

sdsfive's avatar
sdsfive
Frequent Visitor
6 years ago
Solved

Show Different Text Values Depending on Hierarchy Level in Matrix Report

I have a matrix report that has a calculated column text value for the lowest hierarchy level called "Line Status"

 

When I roll up to higher levels I need to have a specific status for the higher level depending on the statuses of the items in the lower level. In the screenshot below, there are two lines with different statuses, and the parent level inherits one of the statsuses, which is not the desired behavior since it is not accurate for the purpose of the report. In this specific case, I need that level to show "Open", not "In Stock" like one of the lower level statuses.

 

 

 

 

Calculated column formula for determining line status:

 

Line Status =

IF(AND('SoftView'[Missing Material Quantity] = 0, 'SoftView'[Allocatable Quantity 2] = 0), "Fully Allocated",

IF('SoftView'[Material] <> "", "In Stock",

IF('SoftView'[Date Available 2] = DATE(2500,1,1), "On Order - No EDA",

IF(AND('SoftView'[Date Available] <> TODAY(), 'SoftView'[Date Available] <> DATE(2500,1,1)), "On Order"))))

 

  • Anonymous's avatar
    Anonymous
    6 years ago

    sdsfive: I would suggest assigning a numeric value for each status, i.e. 0 = instock all the way to 3 = On-Order NO EDA.

     

    Then at the parent level, you take a MAX([status]), and apply the same logic. So whatever the highest status is, that is the status for the parent item.

  • sdsfive's avatar
    sdsfive
    6 years ago

    That worked very well, thank you! Added an additional measure to use the calculated column numerical values.

     

    Line Status Calc =
    IF(AND('SoftView'[Missing Material Quantity] = 0, 'SoftView'[Allocatable Quantity 2] = 0), 0,
    IF('SoftView'[Material] <> "", 1,
    IF('SoftView'[Date Available 2] = DATE(2500,1,1), 3,
    IF(AND('SoftView'[Date Available] <> TODAY(), 'SoftView'[Date Available] <> DATE(2500,1,1)), 2))))
     
     
    Status =
    IF(MAX('Softview'[Line Status Calc]) = 0, "Fully Allocated",
    IF(MAX('Softview'[Line Status Calc]) = 1, "In Stock",
    IF(MAX('Softview'[Line Status Calc]) = 2, "On Order",
    IF(MAX('Softview'[Line Status Calc]) = 3, "On Order - No EDA"))))

4 Replies

    • Anonymous's avatar
      Anonymous
      Not applicable

      sdsfive: I would suggest assigning a numeric value for each status, i.e. 0 = instock all the way to 3 = On-Order NO EDA.

       

      Then at the parent level, you take a MAX([status]), and apply the same logic. So whatever the highest status is, that is the status for the parent item.

      • sdsfive's avatar
        sdsfive
        Frequent Visitor

        That worked very well, thank you! Added an additional measure to use the calculated column numerical values.

         

        Line Status Calc =
        IF(AND('SoftView'[Missing Material Quantity] = 0, 'SoftView'[Allocatable Quantity 2] = 0), 0,
        IF('SoftView'[Material] <> "", 1,
        IF('SoftView'[Date Available 2] = DATE(2500,1,1), 3,
        IF(AND('SoftView'[Date Available] <> TODAY(), 'SoftView'[Date Available] <> DATE(2500,1,1)), 2))))
         
         
        Status =
        IF(MAX('Softview'[Line Status Calc]) = 0, "Fully Allocated",
        IF(MAX('Softview'[Line Status Calc]) = 1, "In Stock",
        IF(MAX('Softview'[Line Status Calc]) = 2, "On Order",
        IF(MAX('Softview'[Line Status Calc]) = 3, "On Order - No EDA"))))