Forum Discussion

willit6182's avatar
willit6182
Frequent Visitor
2 years ago
Solved

Calculated Column: Return String associated w Highest value in a subset group

Hi everyone. I would really appreciate some help with the following issue that I have not been able to figure out after scouring the forums.

 

I have the following 3 tables:

 

Table_Visit

Visit

Procedure Code

RVU Value

1

22

1.3

1

10

4.2

1

55

3.7

2

22

1.3

3

31

5.0

3

40

2.1

4

22

1.3

4

10

4.2

4

76

3.7

4

40

2.1

5

55

3.7

5

31

5.0

6

22

1.3

6

55

3.7

 

Table_ProcedureCode

Procedure Code

Category

10

A

22

A

31

B

40

B

55

C

76

C

 

Table_Category

Category

Sort Order

A

3

B

1

C

2

 

 

I would like to create a calculated column in Table_ID that returns the Category (A, B, or C) which is associated with the Procedure Code that has the highest RVU Value for that Visit#. The result should be the same for all rows with the same Visit#.

 

i.e. the final new column should look like this:

 

Table_Visit

Visit

Procedure Code

RVU

CALCULATED COLUMN

1

22

1.3

A

1

10

4.2

A

1

55

3.7

A

2

22

1.3

A

3

31

5.0

B

3

40

2.1

B

4

22

1.3

A

4

10

4.2

A

4

76

3.7

A

4

40

2.1

A

5

55

3.7

B

5

31

5.0

B

6

22

1.3

C

6

55

3.7

C

 

I need this to be a calculated column rather than a measure so that I can use it as dimensional data within the Legend field on several visual charts. I have the sort table so that I can sort the display of the categories manually.

4 Replies

  • Hi willit6182 - create a calculated column in Table_Visit that returns the category associated with the Procedure Code having the highest RVU Value for each Visit# as follows

    HighestRVUCategory =
    VAR CurrentVisit = Table_Visit[Visit]
    VAR HighestRVU =
    CALCULATE(
    MAX(Table_Visit[RVU Value]),
    FILTER(
    Table_Visit,
    Table_Visit[Visit] = CurrentVisit
    )
    )
    VAR HighestRVUProcedureCode =
    CALCULATE(
    MAX(Table_Visit[Procedure Code]),
    FILTER(
    Table_Visit,
    Table_Visit[Visit] = CurrentVisit &&
    Table_Visit[RVU Value] = HighestRVU
    )
    )
    RETURN
    CALCULATE(
    MAX(Table_ProcedureCode[Category]),
    FILTER(
    Table_ProcedureCode,
    Table_ProcedureCode[Procedure Code] = HighestRVUProcedureCode
    )
    )

     

     

    Check the above Hope it helps

     

    Did I answer your question? Mark my post as a solution! This will help others on the forum!
    Appreciate your Kudos!!

    • willit6182's avatar
      willit6182
      Frequent Visitor

      This works! But now I need to ignore all individual Category A procedure codes. Just act like they aren't there.

       

      In Visit 1, Codes 10 and 22 would be ignored. Procedure Code 55 would now be the highest RVU value and the Visit Category would change from A to C.

       

      I have tried the following modification with a one to many relationships btw tables, but somehow it isn't filtering correctly. Instead it's returning the same Category for ALL rows...

       

      Any ideas?

       

      Category CC =
      MAXX(
          CALCULATETABLE(
              TOPN(1, VISIT, VISIT[RVU Value]),
              ALLEXCEPT(VISIT, VISIT[Visit]),
              FILTER( VISIT, RELATED( PROC [Category]) <> "A")
          ),
          RELATED( PROC [Category]]
      ))