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

Learn from the best! Meet the four finalists headed to the FINALS of the Power BI Dataviz World Championships! Register now

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
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.

Join our Fabric User Panel

Join our Fabric User Panel

Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.

March Power BI Update Carousel

Power BI Community Update - March 2026

Check out the March 2026 Power BI update to learn about new features.