Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

Add target value to other table

Hi guys,

 

I have following source table:

IDUSER_ID# ORD
1U15
2U110
3U15
4U250
5U31

 

Then I also have additional table with target values:

USER_IDTarget
U125
U250

 

What I'd like to do is following:

USER_IDSUM ORDTarget
U12025
U25150

 

Could you please advise me how to add target value (for each USER_ID) to my visualisation (based on source table data).

 

Thanks in advance

  • Anonymous ,

     

    So if the USER_ID does not exist in Source table, it can be also understanded as the max(lastest) USER_ID in additional table, right? If so, you can create a new USER_ID column in Source table using DAX below:

    New USER_ID = IF('Source Table'[USER_ID] = RELATED('Additional Table'[USER_ID]), RELATED('Additional Table'[USER_ID]), MAX('Additional Table'[USER_ID]))

      

    Then you can create a measure based on the new USER_ID column to achieve the total result.

    SUM #ORD = CALCULATE(SUM('Source Table'[# ORD]), ALLEXCEPT('Source Table', 'Source Table'[New USER_ID]))

      

     

    Community Support Team _ Jimmy Tao

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

6 Replies

  • PattemManohar's avatar
    PattemManohar
    Community Champion

    Anonymous  Could you please confirm - how your final expected has 51 for USER_ID U2. Is it you are adding U2 and U3 data ? If yes, what is your SUM ORD field logic....

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi, Target values are defined by me (hardcoded). Of course, in reality I have much more USERs.

       

      SUM ORD is basic calculation of values from source table (column # ORD) = In souce table we have 5 records, 3 out of them for U1, so SUM of column '# ORD' is 5+10+5 = 20.

       

      thanks 

  • az38's avatar
    az38
    Community Champion

    If I understand correct you should just add relationship between tables, then add to visual fields USER_ID, Sum of #ORD and average (or max, or min, whatever) Target

    • Anonymous's avatar
      Anonymous
      Not applicable

      Yes, you're right. That's the easiest solution. But what can happen is that I have in target table USER1, USER2, but in source table records for USER1, USER2, USER3, USER4. Then if I use USER_ID from source table, relation doesn't work correctly and if I take it from target, it works, but shows only USER1, USER2 and rest is shown as blank.

      • az38's avatar
        az38
        Community Champion

        For your example from start post it will look like this

         

         

         

        you have no target for U3 in target table, so, you have a blank target in visual


  • v-yuta-msft's avatar
    v-yuta-msft
    Community Support

    Anonymous ,

     

    So if the USER_ID does not exist in Source table, it can be also understanded as the max(lastest) USER_ID in additional table, right? If so, you can create a new USER_ID column in Source table using DAX below:

    New USER_ID = IF('Source Table'[USER_ID] = RELATED('Additional Table'[USER_ID]), RELATED('Additional Table'[USER_ID]), MAX('Additional Table'[USER_ID]))

      

    Then you can create a measure based on the new USER_ID column to achieve the total result.

    SUM #ORD = CALCULATE(SUM('Source Table'[# ORD]), ALLEXCEPT('Source Table', 'Source Table'[New USER_ID]))

      

     

    Community Support Team _ Jimmy Tao

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.