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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
jimmyg706
Helper IV
Helper IV

Newbie Alert: Switch Function : Partially working with If Statements

Good Evening All

 

I was hoping for some advice. Yes another one 🙂

 

Please see images below of 2x Columns - Fig 1, Fig 2

 

Fig 1: Context

 

Its a whole number column which is produced frrom a DateDiff calculation. Today()- Date the task was completed. This is 100% working fine and no issues here.

 

So if there are blanks - the task is not completed

If the value =0 The task was completed today

If the value = -5 The task was completed in the last 5x days

If the value = -10 The task was completed in the last 10x days

etc

 

Fig 2: Context

 

A DAX calculated column based upon the Fig 1 column numbers. - Always 0 or less

 

Its working partially.   

If the task is blank I get the right message.

If the value =0 (completed today) I get the right message.

However all other outputs are as you can see  are all - Task was completed in the last 10x days. 

 

 

DAX Calculated Column

 

GROUP_COMPLETED DATES = Switch(true() ,
isblank(tbl_POAP_master[Days since Completion]) , "No Yet Complete",
tbl_POAP_master[Days since Completion] = 0, "Completed Today",
tbl_POAP_master[Days since Completion] < 0, "Complete in last 10x Days",
tbl_POAP_master[Days since Completion] <= -10, "Complete in last 10x Days",
tbl_POAP_master[Days since Completion] <= -20, "Complete in last 20x Days",
"Completed 20+ Dasy Ago") 

 

I have pasted the results below and Im sure its obvious to some on how Ive formatted my if statements and why all items that are completed seem to be all marked as completed in the last 10x days (apart from the one I show as completed today- which works)

 

 

 

 

Fig 1

 

Fig 2

 

 

Appreciate any advice

 

Jimmy

 

 

jimmyg706_1-1694890615351.png

jimmyg706_0-1694890604830.png

jimmyg706_3-1694891242126.png

1 ACCEPTED SOLUTION

Hi @jimmyg706 ,

 

If you use <=-20 in switch, all data <=-20 will return Complete in last 20x Days instead of Completed 20+ Days Ago

I suggest you to try code as below to create a calculated column.

GROUP_COMPLETED DATES =
SWITCH (
    TRUE (),
    ISBLANK ( tbl_POAP_master[Days since Completion] ), "No Yet Complete",
    tbl_POAP_master[Days since Completion] = 0, "Completed Today",
    tbl_POAP_master[Days since Completion] > -20, "Complete in last 10x Days",
    tbl_POAP_master[Days since Completion] > -30, "Complete in last 20x Days",
    "Completed 20+ Days Ago"
)

Result is as below.

vrzhoumsft_0-1695020670772.png

vrzhoumsft_2-1695020821986.png

 

Best Regards,

Rico Zhou

 

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

 

View solution in original post

5 REPLIES 5
parry2k
Super User
Super User

 let me ask you couple of questions: 

- Is this a column or a measure? 

[Days since Completion]

 

- Are you adding this as a column or a measure? 

GROUP_COMPLETED DATES

@jimmyg706



Subscribe to the @PowerBIHowTo YT channel for an upcoming video on List and Record functions in Power Query!!

Learn Power BI and Fabric - subscribe to our YT channel - Click here: @PowerBIHowTo

If my solution proved useful, I'd be delighted to receive Kudos. When you put effort into asking a question, it's equally thoughtful to acknowledge and give Kudos to the individual who helped you solve the problem. It's a small gesture that shows appreciation and encouragement! ❤


Did I answer your question? Mark my post as a solution. Proud to be a Super User! Appreciate your Kudos 🙂
Feel free to email me with any of your BI needs.

parry2k
Super User
Super User

@jimmyg706 you need to change the order:

 

GROUP_COMPLETED DATES = Switch(true() ,
isblank(tbl_POAP_master[Days since Completion]) , "No Yet Complete",
tbl_POAP_master[Days since Completion] = 0, "Completed Today",
tbl_POAP_master[Days since Completion] <= -20, "Complete in last 20x Days",
tbl_POAP_master[Days since Completion] <= -10, "Complete in last 10x Days",
tbl_POAP_master[Days since Completion] < 0, "Complete in last 10x Days",
"Completed 20+ Dasy Ago") 


Subscribe to the @PowerBIHowTo YT channel for an upcoming video on List and Record functions in Power Query!!

Learn Power BI and Fabric - subscribe to our YT channel - Click here: @PowerBIHowTo

If my solution proved useful, I'd be delighted to receive Kudos. When you put effort into asking a question, it's equally thoughtful to acknowledge and give Kudos to the individual who helped you solve the problem. It's a small gesture that shows appreciation and encouragement! ❤


Did I answer your question? Mark my post as a solution. Proud to be a Super User! Appreciate your Kudos 🙂
Feel free to email me with any of your BI needs.

Thanks @parry2k 

 

Im still seeing some strange results. I changed the order as per your suggestions:

 

 

GROUP_COMPLETED DATES = Switch(true() ,
isblank(tbl_POAP_master[Days since Completion]) , "No Yet Complete",
tbl_POAP_master[Days since Completion] = 0, "Completed Today",
tbl_POAP_master[Days since Completion] <= -20, "Complete in last 20x Days",
tbl_POAP_master[Days since Completion] <= -10, "Complete in last 10x Days",
tbl_POAP_master[Days since Completion] < 0, "Complete in last 10x Days",
"Completed 20+ Dasy Ago") 

 

 

 

Below I filtered out blanks (not completed)

 

 

Days since CompletionGROUP_COMPLETED DATES
-1Complete in last 10x Days
-2Complete in last 10x Days
-2Complete in last 10x Days
-2Complete in last 10x Days
-2Complete in last 10x Days
-3Complete in last 10x Days
-3Complete in last 10x Days
-9Complete in last 10x Days
-9Complete in last 10x Days
-9Complete in last 10x Days
-9Complete in last 10x Days
-9Complete in last 10x Days
-9Complete in last 10x Days
-9Complete in last 10x Days
-9Complete in last 10x Days
-9Complete in last 10x Days
-9Complete in last 10x Days
-9Complete in last 10x Days
-9Complete in last 10x Days
-9Complete in last 10x Days
-9Complete in last 10x Days
-9Complete in last 10x Days
-9Complete in last 10x Days
-9Complete in last 10x Days
-9Complete in last 10x Days
-9Complete in last 10x Days
-9Complete in last 10x Days
-10Complete in last 10x Days
-10Complete in last 10x Days
-10Complete in last 10x Days
-10Complete in last 10x Days
-10Complete in last 10x Days
-10Complete in last 10x Days
-10Complete in last 10x Days
-10Complete in last 10x Days
-11Complete in last 10x Days
-11Complete in last 10x Days
-11Complete in last 10x Days
-11Complete in last 10x Days
-12Complete in last 10x Days
-12Complete in last 10x Days
-12Complete in last 10x Days
-12Complete in last 10x Days
-12Complete in last 10x Days
-13Complete in last 10x Days
-13Complete in last 10x Days
-13Complete in last 10x Days
-13Complete in last 10x Days
-13Complete in last 10x Days
-13Complete in last 10x Days
-13Complete in last 10x Days
-13Complete in last 10x Days
-13Complete in last 10x Days
-13Complete in last 10x Days
-13Complete in last 10x Days
-13Complete in last 10x Days
-13Complete in last 10x Days
-13Complete in last 10x Days
-13Complete in last 10x Days
-13Complete in last 10x Days
-13Complete in last 10x Days
-13Complete in last 10x Days
-13Complete in last 10x Days
-13Complete in last 10x Days
-13Complete in last 10x Days
-13Complete in last 10x Days
-16Complete in last 10x Days
-17Complete in last 10x Days
-17Complete in last 10x Days
-18Complete in last 10x Days
-18Complete in last 10x Days
-18Complete in last 10x Days
-18Complete in last 10x Days
-18Complete in last 10x Days
-18Complete in last 10x Days
-18Complete in last 10x Days
-18Complete in last 10x Days
-18Complete in last 10x Days
-18Complete in last 10x Days
-18Complete in last 10x Days
-18Complete in last 10x Days
-18Complete in last 10x Days
-18Complete in last 10x Days
-18Complete in last 10x Days
-18Complete in last 10x Days
-18Complete in last 10x Days
-23Complete in last 20x Days
-23Complete in last 20x Days
-23Complete in last 20x Days
-23Complete in last 20x Days
-23Complete in last 20x Days
-23Complete in last 20x Days
-23Complete in last 20x Days
-23Complete in last 20x Days
-23Complete in last 20x Days
-24Complete in last 20x Days
-24Complete in last 20x Days
-24Complete in last 20x Days
-24Complete in last 20x Days
-24Complete in last 20x Days
-24Complete in last 20x Days
-24Complete in last 20x Days
-24Complete in last 20x Days
-24Complete in last 20x Days
-24Complete in last 20x Days
-24Complete in last 20x Days
-24Complete in last 20x Days
-25Complete in last 20x Days
-25Complete in last 20x Days
-25Complete in last 20x Days
-25Complete in last 20x Days
-25Complete in last 20x Days
-25Complete in last 20x Days
-25Complete in last 20x Days
-25Complete in last 20x Days
-25Complete in last 20x Days
-25Complete in last 20x Days
-25Complete in last 20x Days
-25Complete in last 20x Days
-25Complete in last 20x Days
-25Complete in last 20x Days
-26Complete in last 20x Days
-27Complete in last 20x Days
-27Complete in last 20x Days
-27Complete in last 20x Days
-27Complete in last 20x Days
-27Complete in last 20x Days
-27Complete in last 20x Days
-32Complete in last 20x Days
-32Complete in last 20x Days
-32Complete in last 20x Days
-32Complete in last 20x Days
-32Complete in last 20x Days
-32Complete in last 20x Days
-33Complete in last 20x Days
-33Complete in last 20x Days
-33Complete in last 20x Days
-33Complete in last 20x Days
-33Complete in last 20x Days
-79Complete in last 20x Days
-115Complete in last 20x Days
-117Complete in last 20x Days
-121Complete in last 20x Days
-121Complete in last 20x Days
-121Complete in last 20x Days
-122Complete in last 20x Days
-123Complete in last 20x Days

Hi @jimmyg706 ,

 

If you use <=-20 in switch, all data <=-20 will return Complete in last 20x Days instead of Completed 20+ Days Ago

I suggest you to try code as below to create a calculated column.

GROUP_COMPLETED DATES =
SWITCH (
    TRUE (),
    ISBLANK ( tbl_POAP_master[Days since Completion] ), "No Yet Complete",
    tbl_POAP_master[Days since Completion] = 0, "Completed Today",
    tbl_POAP_master[Days since Completion] > -20, "Complete in last 10x Days",
    tbl_POAP_master[Days since Completion] > -30, "Complete in last 20x Days",
    "Completed 20+ Days Ago"
)

Result is as below.

vrzhoumsft_0-1695020670772.png

vrzhoumsft_2-1695020821986.png

 

Best Regards,

Rico Zhou

 

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

 

@v-rzhou-msft 

 

Well a big thanks to all of you.  Its all good now as I took your advice:

GROUP_COMPLETED DATES 2 = Switch(true() ,
isblank(tbl_POAP_master[Days since Completion]) , "No Yet Complete",
tbl_POAP_master[Days since Completion] = 0, "Completed Today",
tbl_POAP_master[Days since Completion] > -10, "Complete in last 10x Days",
tbl_POAP_master[Days since Completion] > -20, "Complete in last 20x Days",
tbl_POAP_master[Days since Completion] > -30, "Complete in last 30x Days",
"Completed 30+ Days Ago") 

 

Above now gives me the required outcome.

 

Waht a really great community

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.