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
GOT2021
Frequent Visitor

Dax Formula Group By multiple conditions

Hi, I have this data

DateIdUserJob

10/01/2024 15:01:24

001AdamNurse
10/01/2024 15:11:24001MaxNurse
10/01/2024 16:01:24001GeorgeDoctor
15/01/2024 08:00:00002MichelNurse
17/02/2024 17:00:50003MaxNurse
1702/2024 14:10:00003GeorgeDoctor
17/02/2024 15:26:00003PatrickDoctor
25/03/2024 14:00:00004GeorgeDocor
26/03/2024 12:25:00005AnneNurse
26/03/2024 14:15:00005Sophie 


Being new to the DAX language, I must admit I'm at a loss to get the table below

I want to show this 

DateIdUserJob

10/01/2024 15:01:24

001AdamNurse
10/01/2024 16:01:24001GeorgeDoctor
15/01/2024 08:00:00002MichelNurse
17/02/2024 17:00:50003MaxNurse
17/02/2024 15:26:00003PatrickDoctor
25/03/2024 14:00:00004GeorgeDoctor
26/03/2024 14:15:00005Sophie 

 

For each ID I would like to keep at most 2 ligne :

  1. Two lines if I have "Doctor" job and one of the other jobs for the same ID.
  2. Only 1 line if :
    1. One single ID for any job (Ex : ID 002)
    2. Several lines for the same ID with either job category A (Doctor) or job category B (Nurse, NA, etc...) (but not both)

I'd thought of creating an incremental measure 1, 2,3 .... for job category B and a, b, c... for job category A so I can filter to keep only 1 and/or a but I'm  not up to that either (:

1 ACCEPTED SOLUTION
SamWiseOwl
Super User
Super User

HI @GOT2021 
Create a measure and add it into the Filter pane under Filters on this visual.

Then filter to Y.

 

Filter measure =
var curId = SELECTEDVALUE('Nurse table'[Id]) --hold current id
var curJob = SELECTEDVALUE('Nurse table'[Job]) --hold current job
var curTime = SELECTEDVALUE('Nurse table'[Date]) -- hold current date
var People = CALCULATETABLE('Nurse table',ALLSELECTED('Nurse table'), 'Nurse table'[Id] = curId) --same id people
RETURN
SWITCH(
    TRUE()
    ,COUNTROWS(People) = 1, "Y" --Keep if one person
    ,maxx(Filter(People, 'Nurse table'[Job] <> "Doctor"), [Date])= curTime && curJob <> "Doctor"
    ,"Y" --Where this row is the biggest and not a doctor
    ,(maxx(Filter(People, 'Nurse table'[Job] = "Doctor"), [Date])= curTime && curJob = "Doctor"), "Y"--you are the max doctor
    ,"N"--anything else no
)



SamWiseOwl_0-1729692921578.png

 


If you are happy with this answer please mark as a solution for others to find !

Kudos are always appreciated! Check out our free Power BI video courses.

View solution in original post

3 REPLIES 3
SamWiseOwl
Super User
Super User

HI @GOT2021 
Create a measure and add it into the Filter pane under Filters on this visual.

Then filter to Y.

 

Filter measure =
var curId = SELECTEDVALUE('Nurse table'[Id]) --hold current id
var curJob = SELECTEDVALUE('Nurse table'[Job]) --hold current job
var curTime = SELECTEDVALUE('Nurse table'[Date]) -- hold current date
var People = CALCULATETABLE('Nurse table',ALLSELECTED('Nurse table'), 'Nurse table'[Id] = curId) --same id people
RETURN
SWITCH(
    TRUE()
    ,COUNTROWS(People) = 1, "Y" --Keep if one person
    ,maxx(Filter(People, 'Nurse table'[Job] <> "Doctor"), [Date])= curTime && curJob <> "Doctor"
    ,"Y" --Where this row is the biggest and not a doctor
    ,(maxx(Filter(People, 'Nurse table'[Job] = "Doctor"), [Date])= curTime && curJob = "Doctor"), "Y"--you are the max doctor
    ,"N"--anything else no
)



SamWiseOwl_0-1729692921578.png

 


If you are happy with this answer please mark as a solution for others to find !

Kudos are always appreciated! Check out our free Power BI video courses.

Thank you @SamWiseOwl, it's exactly what I was looking for, it answers my problem 🙂

It was a fun problem to solve.

There were other versions but this was the most efficient that I could think of!


If you are happy with this answer please mark as a solution for others to find !

Kudos are always appreciated! Check out our free Power BI video courses.

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!

November Power BI Update Carousel

Power BI Monthly Update - November 2025

Check out the November 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.