Advance your Data & AI career with 50 days of live learning, dataviz contests, hands-on challenges, study groups & certifications and more!
Get registeredGet Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Learn more
Dear Experts,
I wish to building a report to validate the supervisro ID of the employee.
The conditions are like this:
| Employee ID | Supervisro ID | Validation Result |
| WS2001 | 7345382 | Valid |
| WS2002 | Invalid | |
| WS2003 | WS2001 | Valid |
| WS2004 | WS2004 | Invalid |
Is it possible to create a custom column to achieve that?
Many thanks!
Solved! Go to Solution.
Please check if attached file helps
Column =
SWITCH (
TRUE (),
[Supervisor ID] = ""
|| [Supervisor ID] = [Employee ID]
|| AND (
[Text in Supervisor ID] <> "",
NOT (
CONTAINS (
VALUES ( Table1[Text in Employee ID] ),
Table1[Text in Employee ID], [Text in Supervisor ID]
)
)
), "Invalid",
"Valid"
)
In that case, modify as follows
Column =
SWITCH (
TRUE (),
[Supervisor ID] = ""
|| [Supervisor ID] = [Employee ID]
|| AND (
[Text in Supervisor ID] <> "",
NOT (
CONTAINS (
VALUES ( Table1[Employee ID] ),
Table1[Employee ID], [Supervisor ID]
)
)
&& NOT (
CONTAINS ( VALUES ( Table1[Legacy ID] ), Table1[Legacy ID], [Supervisor ID] )
)
), "Invalid",
"Valid"
)
Try these steps
First add a custom Column from Query Editor to get the Text in "Supervisor ID"
=Text.Combine(List.RemoveNulls(List.Transform(Text.ToList([Supervisro ID]),each if Value.Is(Value.FromText(_), type text) then _ else null)))
Then we can use this calculated Column using DAX
Column =
SWITCH (
TRUE (),
[Supervisro ID] = ""
|| [Supervisro ID] = [Employee ID]
|| AND (
[Text in Supervisor ID] <> "",
[Text in Supervisor ID] <> LEFT ( [Employee ID], 2 )
), "Invalid",
"Valid"
)Please see file attached
Hi @Zubair_Muhammad,
Thank you so much for your great solution!
I am facing a new challenge that the text in supervisor ID may not be the same. Here is an example:
| Employee ID | Supervisor ID | Validation Result |
| WS2001 | 7345382 | Valid |
| WS2002 | Invalid | |
| WS2003 | WS2001 | Valid |
| WS2004 | WS2004 | Invalid |
| XA1333 | WS2001 | Valid |
| MZ2555 | XA1333 | Valid |
In that case, how should I modify the Query and DAX to achieve it?
Many thanks again for your help!
Just want to understand how this is valid
as per condition
"If it contains non-numerical characters and can not be found in the employee ID column, it is invalid."
| MZ2555 | XA1333 | Valid |
Hi @Zubair_Muhammad,
Sorry for the cofusion!
Pelase find the condition for Supervisor ID column as below:
| Employee ID | Supervisor ID | Validation Result |
| WS2001 | 7345382 | Valid |
| WS2002 | Invalid (it is blank) | |
| WS2003 | WS2001 | Valid (it can be found in the employee ID coulmn) |
| WS2004 | WS2004 | Invalid (it is the same as this employee's ID) |
| XA1333 | WS2001 | Valid (it can be found in the employee ID coulmn) |
| MZ2555 | BA2111 | Invalid (it can not be found in the employee ID coulmn) |
In this case, how can we modify the Query and DAX to achieve it?
Many thanks for your help!!
Please check if attached file helps
Column =
SWITCH (
TRUE (),
[Supervisor ID] = ""
|| [Supervisor ID] = [Employee ID]
|| AND (
[Text in Supervisor ID] <> "",
NOT (
CONTAINS (
VALUES ( Table1[Text in Employee ID] ),
Table1[Text in Employee ID], [Text in Supervisor ID]
)
)
), "Invalid",
"Valid"
)Hi @Zubair_Muhammad,
What if we have additional column that needs to compare. Pelase find the condition for Supervisor ID column as below:
Here is the sample dataset:
| Legacy ID | Employee ID | Supervisor ID | Validation Result |
| WS2001 | WS2001 | 7345382 | Valid |
| WS2002 | WS2002 | Invalid (it is blank) | |
| WS2003 | WS2003 | WS2001 | Valid (it can be found in the employee ID coulmn) |
| WS2004 | WS2004 | WS2004 | Invalid (it is the same as this employee's ID) |
| XA1333 | XA1333 | WS2001 | Valid (it can be found in the employee ID coulmn) |
| 3C211 | MZ2555 | BA2111 | Invalid (it can not be found in the employee ID coulmn) |
| MZ43333 | MZ43333 | 3C211 | Valid (it can be found in Legacy ID column) |
| MZ55555 | MZ55555 | 63C111 | Invalid (it can not be found in both Legacy ID and Employee ID column) |
How should we modify the DAX to achieve it?
Many thanks for your great help!
In that case, modify as follows
Column =
SWITCH (
TRUE (),
[Supervisor ID] = ""
|| [Supervisor ID] = [Employee ID]
|| AND (
[Text in Supervisor ID] <> "",
NOT (
CONTAINS (
VALUES ( Table1[Employee ID] ),
Table1[Employee ID], [Supervisor ID]
)
)
&& NOT (
CONTAINS ( VALUES ( Table1[Legacy ID] ), Table1[Legacy ID], [Supervisor ID] )
)
), "Invalid",
"Valid"
)
Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!
Check out the October 2025 Power BI update to learn about new features.