cancel
Showing results for
Did you mean:

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Anonymous
Not applicable

## Measure with "does not contain" and/or "is null"

I am creating a measure within Power BI Desktop.  I want it to distinct count all Work Orders that:

1. Has no "Completed Date"

2. The CUSTVEND[ACCTNO] is blank

3. The [On Hold] measure equals 1

4. The WO_HDR[Partnumber] does not contain the work "kit"

Below is my attempt and it does not work.  Could someone please help.  Thank you!

WO on Hold Count = CALCULATE(DISTINCTCOUNT(WO_HDR[Work Order#]),WO_HDR_STATUS[COMPLETED_DATE]= blank(),CUSTVEND[ACCTNO]= blank(),[On Hold]=1,WO_HDR[PARTNUMBER]<>'%kit%')

1 ACCEPTED SOLUTION
Microsoft Employee

Hi @Anonymous,

Please use the following formula instead, replace tablename with your own table.

`WO on Hold Count = CALCULATE(DISTINCTCOUNT(WO_HDR[Work Order#]),WO_HDR_STATUS[COMPLETED_DATE]= blank(),CUSTVEND[ACCTNO]= blank(),FILTER(tablename,tablename[On Hold]=1), FILTER(WO_HDR, WO_HDR[PARTNUMBER]<>"%kit%"))`

Thanks,
Lydia Zhang

Community Support Team _ Lydia Zhang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
7 REPLIES 7
Microsoft Employee

Hi @Anonymous,

Please change your formula to the following formula and check if it returns expected result. If not, please post the detailed error message and sample data of your scenario.

`WO on Hold Count = CALCULATE(DISTINCTCOUNT(WO_HDR[Work Order#]),WO_HDR_STATUS[COMPLETED_DATE]= blank(),CUSTVEND[ACCTNO]= blank(),[On Hold]=1, FILTER(WO_HDR, WO_HDR[PARTNUMBER]<>"%kit%"))`

Thanks,
Lydia Zhang

Community Support Team _ Lydia Zhang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Anonymous
Not applicable

I'm not sure how to post sample data effectively here.  It appears the issue to a True/False expression.

Thanks for your help.

Microsoft Employee

Hi @Anonymous,

Please use the following formula instead, replace tablename with your own table.

`WO on Hold Count = CALCULATE(DISTINCTCOUNT(WO_HDR[Work Order#]),WO_HDR_STATUS[COMPLETED_DATE]= blank(),CUSTVEND[ACCTNO]= blank(),FILTER(tablename,tablename[On Hold]=1), FILTER(WO_HDR, WO_HDR[PARTNUMBER]<>"%kit%"))`

Thanks,
Lydia Zhang

Community Support Team _ Lydia Zhang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Anonymous
Not applicable

Perfect!  Thank you so much!

Anonymous
Not applicable

'%kit%' is not supported.  You need to use SEARCH or FIND dax funtions, or some flavor of LEFT/RIGHT parsing, etc.

scott@tinylizard.com

Anonymous
Not applicable

This is not working either.  I removed the "kit" portion of the measure and it is still coming up with an error.  I believe the: = blank() is not correct also.

WO on Hold Count = CALCULATE(DISTINCTCOUNT(WO_HDR[Work Order#]),WO_HDR_STATUS[COMPLETED_DATE]= blank(),CUSTVEND[ACCTNO]= blank(),[On Hold]=1,WO_HDR[PARTNUMBER]<>search("kit",WO_HDR[PARTNUMBER],1))

Memorable Member

I'm sure there's a way to do this solely in your measure without adding a calculated column, but adding a column is much easier at my level. I'll keep playing with the DAX solution, or maybe someone else will jump in, but for now...

I'd start by adding a calculated column to determine if "kit" is in your PARTNUMBER.

That easy True/False column can then be used in your measure. In the screenshot below, I've got a plain COUNTROWS formula, and also a measure that counts rows not containing "kit" in the Part Number: