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

July 7 - July 17 | Round 2 of the Power BI Dataviz World Championships. Don't miss your chance! Learn more

Reply
lynnsop
Helper I
Helper I

Check for string in duplicate rows

Hello, I need some help. Here is what I am trying to aim for:

Lets say I have this table:

Server1Compliant
Server1Compliant
Server1Compliant
Server2Compliant
Server2Non-Compliant
Server2Compliant


Now, my goal is that a Piechart shows a (in this example) 50/50 Compliance due to Server2 failing one compliance check. That means that once a Server fails a single Compliance check, the entire server should be reported in the Piechart as Non-Compliant giving a summary of how many servers are Non-Compliant and how many are compliant.

Thats basically already it but I cant figure out a way/logic that takes the entire server, check for Column2 if its compliant in every "check"/row of this server and give me an overall Compliance result for this server as a basis to use to display it on a Piechart.

I didnt really know how to give that a suitable subject, so I hope could explain it understandbly and short. Looking forward for solutions/advices! 🙂

1 ACCEPTED SOLUTION
jdbuchanan71
Super User
Super User

@lynnsop 

Give these a try.

 

Non-Compliant = 
CALCULATE(
    DISTINCTCOUNT('Table'[Server]),
    'Table'[Result] = "Non-Compliant"
)
Compliant = 
VAR _Non =
    CALCULATETABLE ( VALUES ( 'Table'[Server] ), 'Table'[Result] = "Non-Compliant" )
RETURN
    CALCULATE (
        DISTINCTCOUNT ( 'Table'[Server] ),
        EXCEPT ( VALUES ( 'Table'[Server] ), _Non )
    )

 

You should also be able to do the Compliant like this.

Compliant = 
DISTINCTCOUNT('Table'[Server]) - [Non-Compliant]

Just subtracting the non-compliant count from the total count.

View solution in original post

6 REPLIES 6
jdbuchanan71
Super User
Super User

You can add it as a calculated column but the DAX is different for that.

 

Overall Status = 
VAR _Server = 'Table'[Server]
VAR _NonCount = 
CALCULATE(
    COUNTROWS('Table'),
    ALLEXCEPT('Table','Table'[Server]),
    'Table'[Server]=_Server,
    'Table'[Status] = "Non-Compliant"
)
RETURN
IF ( ISBLANK ( _NonCount ), "Compliant", "Non-Compliant")

 

2021-03-30_6-33-40.png

I have attached my sample file for you to look at.  Plase note the visual is using the [Server Count] measure.

 

jdbuchanan71
Super User
Super User

@lynnsop 

Give these a try.

 

Non-Compliant = 
CALCULATE(
    DISTINCTCOUNT('Table'[Server]),
    'Table'[Result] = "Non-Compliant"
)
Compliant = 
VAR _Non =
    CALCULATETABLE ( VALUES ( 'Table'[Server] ), 'Table'[Result] = "Non-Compliant" )
RETURN
    CALCULATE (
        DISTINCTCOUNT ( 'Table'[Server] ),
        EXCEPT ( VALUES ( 'Table'[Server] ), _Non )
    )

 

You should also be able to do the Compliant like this.

Compliant = 
DISTINCTCOUNT('Table'[Server]) - [Non-Compliant]

Just subtracting the non-compliant count from the total count.

@jdbuchanan71 

Thank you for your answer!


Unfortunately its not quiet working.

First Commandblock adds a "1" Integer in every row where Result says "Non-Compliant". This seems to be fine.

Second Commandblock gives me an Error saying "A ring dependency was detected: Table[Non-Compliant], Table[Compliant], Table[Non-Compliant]."

Also third Commandblock gives me an Error saying "Only one column reference is accepted as an argument from the "DISCTINCTCOUNT" function."

Am I doing something wrong? 
If it helps: Best would be a list with each server I have in original table, without duplicates, and their compliance status (complaint or non-compliant)

These are measures, are you trying to add them as calculated columns to a table?  If you create the first 2 measures you can add them to a pie chart to show the count.

Ouhh, sorry. Thats totaly the solution if I take those just as an measure.
I just thought that it would be cool to have a table listing the results. But thats absolutely enough! Thank you very much. 🙂

 

One last question out of curiousity. If I were to filter out some rows where Non-Compliancy is irrelavant, can I somehow exclude those specific rows dependend on a 3rd Row? With the basis of your solution/measures?

Example:
Server1 Non-Compliant    Job1
Server1 Compliant            Job2

Server1 Compliant            Job3

Server2 Non-Compliant   Job1

Server2 Non-Compliant   Job2

Server2 Compliant           Job3

So that Server1 would still be Compliant by excluding Job1 for the relevancy of the Compliancy Pie even though he has a Non-Compliant Job. Piechart should then still be at 50/50

@lynnsop 

The measures will respect the filtering so my first answer will work if you filter out a job where that was the only job where the server was non-compliant it will then get counted as compliant.  A calculated column or separate table will NOT work if you want to apply other filters.

Helpful resources

Announcements
FabCon and SQLCon Barcelona 2026

FabCon & SQLCon – Barcelona 2026

Join us in Barcelona for FabCon and SQLCon, the Fabric, Power BI, SQL, and AI community event. Save €200 with code FABCMTY200.

60 days of Data Days Carousel

Data Days 2026

Join Fabric Data Days 2026: 60 days of free live/on-demand sessions, challenges, study groups, and certification opportunities.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.