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

Calling all Data Engineers! Fabric Data Engineer (Exam DP-700) live sessions are back! Starting October 16th. Sign up.

Reply
Syndicate_Admin
Administrator
Administrator

Novice; IF nested in DAX - Help!

Hello
So I'm new to DAX and I come from an EXCEL background so loads my code involves nested IF functions to apply different conditions to specific field definitions.
So, for example;
there are two sectors; "CVL" and "WCB"
and 7 service groups; HL02 - HL08 (HL05 is the only group of services that exists in both, but has a different treatment in each;

Sector services group performance minute multiplier
CVL HL05 0.5
WCB HL02 0.15
WCB HL03 0.1
WCB HL04 0.2
WCB HL05 0.05
WCB HL06 0.25
WCB HL07 0.05
WCB HL08 0.15

So my nested IF would look like this ('Fct SG PTL ODP Period' is my fact table);

ZZ TfW PTL ODP ?
IF('Fct SG PTL ODP Period'[Sector]-"WCB",
IF('Fct SG PTL ODP Period'[Service Group]-"HL02",
[TfW SG performance minute period]*0.15,
IF('Fct SG PTL ODP Period'[Service Group]-"HL03",
'Fct SG PTL ODP Period'[TfW SG Performance Mins Period]*0.1,
IF('Fct SG PTL ODP Period'[Service Group]-"HL04",
'Fct SG PTL ODP Period'[TfW SG Performance Mins Period]*0.2,
IF('Fct SG PTL ODP Period'[Service Group]-"HL05",
'Fct SG PTL ODP Period'[TfW SG Performance Mins Period]*0.05,
IF('Fct SG PTL ODP Period'[Service Group]-"HL06",
'Fct SG PTL ODP Period'[TfW SG Performance Mins Period]*0.25,
IF('Fct SG PTL ODP Period'[Service Group]-"HL07",
'Fct SG PTL ODP Period'[TfW SG Performance Mins Period]*0.05,
IF('Fct SG PTL ODP Period'[Service Group]-"HL08",
'Fct SG PTL ODP Period'[TfW SG Performance Mins Period]*0.15,
'TfW SG Performance Mins Period'*0.5)

How do I get DAX to replicate this? Won't I recognize [Sector] or [Service Group] as valid fields??

1 ACCEPTED SOLUTION
MFelix
Super User
Super User

Hi,

 

Try the following measure:

ddd =
SWITCH (
    TRUE (),
    SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Sector] ) = "WCB"
        && SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Service Group] ) = "HL02", [TfW SG performance minute period] * 0.15,
    SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Sector] ) = "WCB"
        && SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Service Group] ) = "HL03", 'Fct SG PTL ODP Period'[TfW SG Performance Mins Period] * 0.1,
    SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Sector] ) = "WCB"
        && SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Service Group] ) = "HL04", 'Fct SG PTL ODP Period'[TfW SG Performance Mins Period] * 0.2,
    SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Sector] ) = "WCB"
        && SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Service Group] ) = "HL05", 'Fct SG PTL ODP Period'[TfW SG Performance Mins Period] * 0.05,
    SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Sector] ) = "WCB"
        && SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Service Group] ) = "HL06", 'Fct SG PTL ODP Period'[TfW SG Performance Mins Period] * 0.25,
    SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Sector] ) = "WCB"
        && SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Service Group] ) = "HL07", 'Fct SG PTL ODP Period'[TfW SG Performance Mins Period] * 0.05,
    SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Sector] ) = "WCB"
        && SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Service Group] ) = "HL08", 'Fct SG PTL ODP Period'[TfW SG Performance Mins Period] * 0.15,
    'TfW SG Performance Mins Period' * 0.5
)

Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



View solution in original post

1 REPLY 1
MFelix
Super User
Super User

Hi,

 

Try the following measure:

ddd =
SWITCH (
    TRUE (),
    SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Sector] ) = "WCB"
        && SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Service Group] ) = "HL02", [TfW SG performance minute period] * 0.15,
    SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Sector] ) = "WCB"
        && SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Service Group] ) = "HL03", 'Fct SG PTL ODP Period'[TfW SG Performance Mins Period] * 0.1,
    SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Sector] ) = "WCB"
        && SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Service Group] ) = "HL04", 'Fct SG PTL ODP Period'[TfW SG Performance Mins Period] * 0.2,
    SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Sector] ) = "WCB"
        && SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Service Group] ) = "HL05", 'Fct SG PTL ODP Period'[TfW SG Performance Mins Period] * 0.05,
    SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Sector] ) = "WCB"
        && SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Service Group] ) = "HL06", 'Fct SG PTL ODP Period'[TfW SG Performance Mins Period] * 0.25,
    SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Sector] ) = "WCB"
        && SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Service Group] ) = "HL07", 'Fct SG PTL ODP Period'[TfW SG Performance Mins Period] * 0.05,
    SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Sector] ) = "WCB"
        && SELECTEDVALUE ( 'Fct SG PTL ODP Period'[Service Group] ) = "HL08", 'Fct SG PTL ODP Period'[TfW SG Performance Mins Period] * 0.15,
    'TfW SG Performance Mins Period' * 0.5
)

Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



Helpful resources

Announcements
FabCon Global Hackathon Carousel

FabCon Global Hackathon

Join the Fabric FabCon Global Hackathon—running virtually through Nov 3. Open to all skill levels. $10,000 in prizes!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

Check out the October 2025 Power BI update to learn about new features.

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.