Forum Discussion

NMC20's avatar
NMC20
Icon for Helper I rankHelper I
1 year ago
Solved

LOOKUP with conditions

I have two tables and I would like a lookup from one to the other based on a condition. 

I have a "Sites Information" table which shows me [Location] [Installation Date] [% first 3 months] [3 months date] [% after 3 months] per venue we have

I have an "All Payment Data" table which has the [Location] and [Date of Order] and provides individual orders taken and which site this can be attributed to

I've managed to do a simple lookup between [Location] to bring back all of the fields in "Sites Information" in "All Payment Data". However, I would like a column in "All Payment Data" which tells me what % revenue from each order should be going to the venue based on the date of the order:

 

If [Date of Order] is (>= [Installation Date] and < [3 months date]) then [% first 3 months]

If [Date of Order] is >= [3 months date] then [% after 3 months]

 

Could anyone advise? Thanks!

  • Hi NMC20 

     

    • Go to the "All Payment Data" table in Power BI.
    • Create a new calculated column by clicking on the Modeling tab and selecting New Column.
    • Use the following DAX formula:

     

    % Revenue =
    VAR InstallationDate = RELATED('Sites Information'[Installation Date])
    VAR ThreeMonthsDate = RELATED('Sites Information'[3 months date])
    VAR First3MonthsPercentage = RELATED('Sites Information'[% first 3 months])
    VAR After3MonthsPercentage = RELATED('Sites Information'[% after 3 months])
    RETURN
        IF(
            [Date of Order] >= InstallationDate && [Date of Order] < ThreeMonthsDate,
            First3MonthsPercentage,
            IF(
                [Date of Order] >= ThreeMonthsDate,
                After3MonthsPercentage,
                BLANK() -- Or use 0 or any default value if needed
            )
        )
    โ€‹

    Assuming :

     

    • Your "Sites Information" and "All Payment Data" tables are correctly related via the [Location] column in a one-to-many relationship.
    • The date fields in both tables are in a valid date format.

    Did I answer your question? Mark my post as a solution, this will help others!

    If my response(s) assisted you in any way, don't forget to drop me a "Kudos" ๐Ÿ™‚

    Kind Regards,
    Poojara
    Data Analyst | MSBI Developer | Power BI Consultant
    Consider Subscribing my YouTube for Beginners/Advance Concepts: https://youtube.com/@biconcepts?si=04iw9SYI2HN80HKS 

     

2 Replies

  • Hi NMC20 

     

    • Go to the "All Payment Data" table in Power BI.
    • Create a new calculated column by clicking on the Modeling tab and selecting New Column.
    • Use the following DAX formula:

     

    % Revenue =
    VAR InstallationDate = RELATED('Sites Information'[Installation Date])
    VAR ThreeMonthsDate = RELATED('Sites Information'[3 months date])
    VAR First3MonthsPercentage = RELATED('Sites Information'[% first 3 months])
    VAR After3MonthsPercentage = RELATED('Sites Information'[% after 3 months])
    RETURN
        IF(
            [Date of Order] >= InstallationDate && [Date of Order] < ThreeMonthsDate,
            First3MonthsPercentage,
            IF(
                [Date of Order] >= ThreeMonthsDate,
                After3MonthsPercentage,
                BLANK() -- Or use 0 or any default value if needed
            )
        )
    โ€‹

    Assuming :

     

    • Your "Sites Information" and "All Payment Data" tables are correctly related via the [Location] column in a one-to-many relationship.
    • The date fields in both tables are in a valid date format.

    Did I answer your question? Mark my post as a solution, this will help others!

    If my response(s) assisted you in any way, don't forget to drop me a "Kudos" ๐Ÿ™‚

    Kind Regards,
    Poojara
    Data Analyst | MSBI Developer | Power BI Consultant
    Consider Subscribing my YouTube for Beginners/Advance Concepts: https://youtube.com/@biconcepts?si=04iw9SYI2HN80HKS 

     

  • NMC20 

    Create new column in the "All Payment Data" table:

    Revenue Percentage = 
    IF(
    'All Payment Data'[Date of Order] >= RELATED('Sites Information'[Installation Date]) &&
    'All Payment Data'[Date of Order] < RELATED('Sites Information'[3 months date]),
    RELATED('Sites Information'[% first 3 months]),
    IF(
    'All Payment Data'[Date of Order] >= RELATED('Sites Information'[3 months date]),
    RELATED('Sites Information'[% after 3 months]),
    0
    )
    )

    ๐Ÿ’Œ If this helped, a Kudos ๐Ÿ‘ or Solution mark โœ… would be great! ๐ŸŽ‰
    Cheers,
    Kedar
    Connect on LinkedIn