Forum Discussion

Tulio_DL's avatar
Tulio_DL
Helper I
9 years ago
Solved

Data modeling - Non unique values

Hello all!

 

 

First I'd like to thank all who read this and intend to help, you make this comunnity awesome!

 

I'm trying to link 2 tables, a FACT and a DIMENSIONS one, but this latter doesn't have unique values. Let me try to exemplify:

 

 

So,  I would like to get something like this... If the ticket matches the 2 tables AND the 'DIM a'=10

 

The result should be this:

 

Do anyone knows how to do that in DAX? Tried the VLOOKUP formula but didn't succeeded.

 

Thanks in advance

 

 

 

 

  • Tulio_DL

     

    Hi, using a calculated column And DimA is 10

     

    When DimA-10 =
    LOOKUPVALUE (
        Table1[Dim B],
        Table1[Ticket], Tickets[Ticket];
        Table1[Dim A], 10
    )

    Using a measure:

     

    Measure-When DimA-10 =
    IF (
        HASONEVALUE ( Table1[Ticket] ),
        LOOKUPVALUE (
            Table1[Dim B],
            Table1[Ticket], VALUES ( Tickets[Ticket] ),
            Table1[Dim A], 10
        )
    )

    let me know if works.

     

    Victor

  • Anonymous's avatar
    Anonymous
    9 years ago

    Tulio_DL,

    Create the calculated column in TABLE A.

    When DimA-10 = 
    LOOKUPVALUE (
        'TABLE B'[DIM b],
        'TABLE B'[Ticket], 'TABLE A'[Ticket],
        'TABLE B'[DIM a], 10
    )





    Also you can change the second formula of Vvelarde to the following:

    Measure-When DimA-10 = 
    IF (
        HASONEVALUE ( 'TABLE B'[Ticket] ),
        LOOKUPVALUE (
            'TABLE B'[DIM b],
            'TABLE B'[Ticket], VALUES ( 'TABLE A'[Ticket] ),
            'TABLE B'[DIM a], 10
        )
    )



    Regards,

8 Replies

  • Vvelarde's avatar
    Vvelarde
    Community Champion

    Tulio_DL

     

    Hi, using a calculated column And DimA is 10

     

    When DimA-10 =
    LOOKUPVALUE (
        Table1[Dim B],
        Table1[Ticket], Tickets[Ticket];
        Table1[Dim A], 10
    )

    Using a measure:

     

    Measure-When DimA-10 =
    IF (
        HASONEVALUE ( Table1[Ticket] ),
        LOOKUPVALUE (
            Table1[Dim B],
            Table1[Ticket], VALUES ( Tickets[Ticket] ),
            Table1[Dim A], 10
        )
    )

    let me know if works.

     

    Victor

    • Tulio_DL's avatar
      Tulio_DL
      Helper I

      Vvelarde

       

      Hello Victor!

       

      Thanks for your support,

       

      I don't quite got there yet, could you please check your formula spelling? Let's say that the left table is named TABLE A (wich is where I have the facts) and the right one is TABLE B (wich there's the dimension I want to bring to TABLE A)

      • Anonymous's avatar
        Anonymous
        Not applicable

        Tulio_DL,

        Create the calculated column in TABLE A.

        When DimA-10 = 
        LOOKUPVALUE (
            'TABLE B'[DIM b],
            'TABLE B'[Ticket], 'TABLE A'[Ticket],
            'TABLE B'[DIM a], 10
        )





        Also you can change the second formula of Vvelarde to the following:

        Measure-When DimA-10 = 
        IF (
            HASONEVALUE ( 'TABLE B'[Ticket] ),
            LOOKUPVALUE (
                'TABLE B'[DIM b],
                'TABLE B'[Ticket], VALUES ( 'TABLE A'[Ticket] ),
                'TABLE B'[DIM a], 10
            )
        )



        Regards,

  • Anonymous's avatar
    Anonymous
    Not applicable

    I can no wrap my head around the way you are using dimension and fact tables.  I feel like you have them swapped.

    Dimension tables should have unique id's...

    • Tulio_DL's avatar
      Tulio_DL
      Helper I

      Hello Anonymous

       

      It really looks like....... actually it is very confusing! BUT.... that's the only way a *** system gives me the information I need

       

      ='[

      • Anonymous's avatar
        Anonymous
        Not applicable

        Well, given you DO have a table of unique values, I would go ahead and create the relationship between ticket id's.  The 1 to many direction will be a bit opposite of what people think, but so be it.

         

        Now, in your table of unique values, apparently you want a new calculated column... that looks up into the non-unique table, and does *what* exactly?