Forum Discussion

Zakk2000's avatar
Zakk2000
Regular Visitor
3 years ago
Solved

Creating matrix visual using values as row header/value

Hi All,

 

I am stuck on creating a visual using Matrix.

 

Sample Data:

Case No.Sales by Being Assistant 1Being Assistant 2
1APerson APerson BPerson C
2BPerson APerson BPerson C
3CPerson BPerson CPerson D
4DPerson BPerson CPerson D
5EPerson CPerson DPerson A
6Person CPerson DPerson A
7Person DPerson APerson B

 

I am trying to translate on how many case for a person have done for each "sales by", "being assitant 1" and "being assistant 2".

Intended Matrix:

PersonSales byBeing Assitant 1Being Assistant 2Total Cases
Person A2125
Person B2215
Person C2226
Person D125

 

 

Appreciate all the help on this.

 

 

  • Zakk2000 I was assuming that you would just use Sales by column in your matrix visual. If for some reason that is not feasible, you could create a new table like this (I would leave as a disconnected table).

    Person Table = 
      DISTINCT(
        UNION(
          SELECTCOLUMNS('Table',"Person",[Sales By]),
          SELECTCOLUMNS('Table',"Person",[Being Assistant 1]),
          SELECTCOLUMNS('Table',"Person",[Being Assistant 2]),
        )
      )

     

    You would change the measures like this:

    Sales By Measure = 
      VAR __Person = MAX('Person Table'[Person])
      VAR __Result = COUNTROWS(FILTER(ALL('Table',[Sales By] = __Person
    RETURN
      __Result
    
    Sales By Being Assistant 1 Measure =
      VAR __Person = MAX('Person Table'[Person])
      VAR __Result = COUNTROWS(FILTER(ALL('Table'),[Being Assistant 1] = __Person))
    RETURN
      __Result
    
    Sales By Being Assistant 2 Measure =
      VAR __Person = MAX('Person Table'[Person])
      VAR __Result = COUNTROWS(FILTER(ALL('Table'),[Being Assistant 2] = __Person))
    RETURN
      __Result
    
    
    Total Cases Measure = [Sales By Measure] + [Sales By Being Assistant 1 Measure] + [Sales By Being Assistant 2 Measure]

     

5 Replies

  • Greg_Deckler's avatar
    Greg_Deckler
    Community Champion

    Zakk2000 Maybe:

    Sales By Measure = COUNTROWS('Table')
    
    Sales By Being Assistant 1 Measure =
      VAR __Person = MAX('Table'[Sales by])
      VAR __Result = COUNTROWS(FILTER(ALL('Table'),[Being Assistant 1] = __Person))
    RETURN
      __Result
    
    Sales By Being Assistant 2 Measure =
      VAR __Person = MAX('Table'[Sales by])
      VAR __Result = COUNTROWS(FILTER(ALL('Table'),[Being Assistant 2] = __Person))
    RETURN
      __Result
    
    
    Total Cases Measure = [Sales By Measure] + [Sales By Being Assistant 1 Measure] + [Sales By Being Assistant 2 Measure]
    • Zakk2000's avatar
      Zakk2000
      Regular Visitor

      Hi Greg_Deckler ,

       

      Your solution managed to do on everything for the values side, but I am still struggling on the 'Person' column. I tried to create a new table and merge the columns by distinct 'Person' name.

       

      Column_Person = DISTINCT(UNION(
      DISTINCT('Table'[Sales By]),
      DISTINCT('Table'[Being Assistant 1]),
      DISTINCT('Table'[Being Assitant 2])
      )
      )

       

      PersonSales byBeing Assitant 1Being Assistant 2Total Cases
      Person A2125
      Person B2215
      Person C2226
      Person D125
      • Greg_Deckler's avatar
        Greg_Deckler
        Community Champion

        Zakk2000 I was assuming that you would just use Sales by column in your matrix visual. If for some reason that is not feasible, you could create a new table like this (I would leave as a disconnected table).

        Person Table = 
          DISTINCT(
            UNION(
              SELECTCOLUMNS('Table',"Person",[Sales By]),
              SELECTCOLUMNS('Table',"Person",[Being Assistant 1]),
              SELECTCOLUMNS('Table',"Person",[Being Assistant 2]),
            )
          )

         

        You would change the measures like this:

        Sales By Measure = 
          VAR __Person = MAX('Person Table'[Person])
          VAR __Result = COUNTROWS(FILTER(ALL('Table',[Sales By] = __Person
        RETURN
          __Result
        
        Sales By Being Assistant 1 Measure =
          VAR __Person = MAX('Person Table'[Person])
          VAR __Result = COUNTROWS(FILTER(ALL('Table'),[Being Assistant 1] = __Person))
        RETURN
          __Result
        
        Sales By Being Assistant 2 Measure =
          VAR __Person = MAX('Person Table'[Person])
          VAR __Result = COUNTROWS(FILTER(ALL('Table'),[Being Assistant 2] = __Person))
        RETURN
          __Result
        
        
        Total Cases Measure = [Sales By Measure] + [Sales By Being Assistant 1 Measure] + [Sales By Being Assistant 2 Measure]