Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
YavuzDuran
Helper III
Helper III

Vlookup - returning a Corresponding Value from Parameter Table

Hi All, 

 

I have a parameter table as shown below:

YavuzDuran_1-1635952482157.png

 

And all need is to match the calculated cash down % per Location for a year/month with the above cash % limits and return the corresponding $Com (Column H). 

I excel it is way easier, in Power BI I tried such a solution below

Is there any simpler way that you can suggest to me 

 

Thank you

 

 

 

 

YavuzDuran_0-1635952443434.png

 

 

Location Manager - Cash Down % Commission =
if(SalesCommission[Cash Down % - Calculated]<calculate(sum('Parameters-LocationManager'[Cash %]),filter('Parameters-LocationManager','Parameters-LocationManager'[Cash% Index]=1),filter('Parameters-LocationManager','Parameters-LocationManager'[Year-Month-Branch]=SalesCommission[Year-Month-Branch])),0,
if(SalesCommission[Cash Down % - Calculated]<calculate(sum('Parameters-LocationManager'[Cash %]),filter('Parameters-LocationManager','Parameters-LocationManager'[Cash% Index]=2),filter('Parameters-LocationManager','Parameters-LocationManager'[Year-Month-Branch]=SalesCommission[Year-Month-Branch])),calculate(sum('Parameters-LocationManager'[$ Com]),filter('Parameters-LocationManager','Parameters-LocationManager'[Cash% Index]=1),filter('Parameters-LocationManager','Parameters-LocationManager'[Year-Month-Branch]=SalesCommission[Year-Month-Branch])),
if(SalesCommission[Cash Down % - Calculated]<calculate(sum('Parameters-LocationManager'[Cash %]),filter('Parameters-LocationManager','Parameters-LocationManager'[Cash% Index]=3),filter('Parameters-LocationManager','Parameters-LocationManager'[Year-Month-Branch]=SalesCommission[Year-Month-Branch])),calculate(sum('Parameters-LocationManager'[$ Com]),filter('Parameters-LocationManager','Parameters-LocationManager'[Cash% Index]=2),filter('Parameters-LocationManager','Parameters-LocationManager'[Year-Month-Branch]=SalesCommission[Year-Month-Branch])),
if(SalesCommission[Cash Down % - Calculated]<calculate(sum('Parameters-LocationManager'[Cash %]),filter('Parameters-LocationManager','Parameters-LocationManager'[Cash% Index]=4),filter('Parameters-LocationManager','Parameters-LocationManager'[Year-Month-Branch]=SalesCommission[Year-Month-Branch])),calculate(sum('Parameters-LocationManager'[$ Com]),filter('Parameters-LocationManager','Parameters-LocationManager'[Cash% Index]=3),filter('Parameters-LocationManager','Parameters-LocationManager'[Year-Month-Branch]=SalesCommission[Year-Month-Branch])),
if(SalesCommission[Cash Down % - Calculated]<calculate(sum('Parameters-LocationManager'[Cash %]),filter('Parameters-LocationManager','Parameters-LocationManager'[Cash% Index]=5),filter('Parameters-LocationManager','Parameters-LocationManager'[Year-Month-Branch]=SalesCommission[Year-Month-Branch])),calculate(sum('Parameters-LocationManager'[$ Com]),filter('Parameters-LocationManager','Parameters-LocationManager'[Cash% Index]=4),filter('Parameters-LocationManager','Parameters-LocationManager'[Year-Month-Branch]=SalesCommission[Year-Month-Branch])),
calculate(sum('Parameters-LocationManager'[$ Com]),filter('Parameters-LocationManager','Parameters-LocationManager'[Cash% Index]=5),filter('Parameters-LocationManager','Parameters-LocationManager'[Year-Month-Branch]=SalesCommission[Year-Month-Branch])))))))
1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hi @YavuzDuran,

I modify your formula and tried to simplify these expressions, you can try to use the below formula if it helps:

Location Manager - Cash Down % Commission =
VAR filtered =
    FILTER (
        'Parameters-LocationManager',
        'Parameters-LocationManager'[Year-Month-Branch] = SalesCommission[Year-Month-Branch]
    )
VAR currIndex = 'Parameters-LocationManager'[Cash% Index]
VAR currCashDown = SalesCommission[Cash Down % - Calculated]
VAR _cashIndex1 =
    CALCULATE (
        SUM ( 'Parameters-LocationManager'[Cash %] ),
        FILTER ( filtered, [Cash% Index] = 1 )
    )
RETURN
    IF (
        currIndex = 1,
        IF ( currCashDown < _cashIndex1, 0 ),
        IF (
            currCashDown
                < CALCULATE (
                    SUM ( 'Parameters-LocationManager'[Cash %] ),
                    FILTER ( filtered, [Cash% Index] = currIndex )
                ),
            CALCULATE (
                SUM ( 'Parameters-LocationManager'[$ Com] ),
                FILTER ( filtered, [Cash% Index] = currIndex - 1 )
            ),
            CALCULATE (
                SUM ( 'Parameters-LocationManager'[$ Com] ),
                FILTER ( filtered, 'Parameters-LocationManager'[Cash% Index] = 5 )
            )
        )
    )

Regards,

Xiaoxin Sheng

View solution in original post

4 REPLIES 4
Anonymous
Not applicable

Hi @YavuzDuran,

I modify your formula and tried to simplify these expressions, you can try to use the below formula if it helps:

Location Manager - Cash Down % Commission =
VAR filtered =
    FILTER (
        'Parameters-LocationManager',
        'Parameters-LocationManager'[Year-Month-Branch] = SalesCommission[Year-Month-Branch]
    )
VAR currIndex = 'Parameters-LocationManager'[Cash% Index]
VAR currCashDown = SalesCommission[Cash Down % - Calculated]
VAR _cashIndex1 =
    CALCULATE (
        SUM ( 'Parameters-LocationManager'[Cash %] ),
        FILTER ( filtered, [Cash% Index] = 1 )
    )
RETURN
    IF (
        currIndex = 1,
        IF ( currCashDown < _cashIndex1, 0 ),
        IF (
            currCashDown
                < CALCULATE (
                    SUM ( 'Parameters-LocationManager'[Cash %] ),
                    FILTER ( filtered, [Cash% Index] = currIndex )
                ),
            CALCULATE (
                SUM ( 'Parameters-LocationManager'[$ Com] ),
                FILTER ( filtered, [Cash% Index] = currIndex - 1 )
            ),
            CALCULATE (
                SUM ( 'Parameters-LocationManager'[$ Com] ),
                FILTER ( filtered, 'Parameters-LocationManager'[Cash% Index] = 5 )
            )
        )
    )

Regards,

Xiaoxin Sheng

Thank you @Anonymous  Will try

Greg_Deckler
Community Champion
Community Champion

@YavuzDuran Generally you would use LOOKUPVALUE or MAXX(FILTER(...),...). 

 

If you stay with your current solution, I highly recommend SWITCH(TRUE(),...) vs nested IF statements.



Follow on LinkedIn
@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
DAX For Humans

DAX is easy, CALCULATE makes DAX hard...

@Greg_Deckler will try. Thank you

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.