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

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Anonymous
Not applicable

Measure: Calculate % of results that equal criteria within another table

Hi,

 

I need help creating a custom measure that will return the % of [Claim ID] that have a [Days Between] value equal to or less than the reference values in another table.  This percentage would need to calculate the percentage based on only that [Company] number of distinct [Claim ID].  I need the measure to by dynamic so that it calculates based on a Slicer's selection for that [Company]

 

Here is an example data set with the Claim Data:

Capture.PNG

Here is an example data set with the reference values:

Capture2.PNG

 

Given this example data, I would expect the measure to return a value of 50% when USA is selected from the slicer and 67% when Korea is selected. 

- USA should = 50% since 3 out of 6 distinct [Claim ID] had a [Days Between] value equal to or less than 30

- Korea should = 67% since 2 out of 3 distinct [Claim ID] had a [Days Between] value equal to or less than 20

 

Can you please assist me in creating this type of measure?

Thank you,

Andrew

3 ACCEPTED SOLUTIONS
littlemojopuppy
Community Champion
Community Champion

Hi @Anonymous 

 

Try this...

% Claims Better Than Goal = 
VAR ClaimSummary =
    ADDCOLUMNS(
        Claims,
        "DaysBetween",
        DATEDIFF(
            Claims[StartDate],
            Claims[EndDate],
            DAY
        ),
        "Goal",
        RELATED(Companies[Goal])
    )
VAR ClaimCount = COUNTROWS(ClaimSummary)
VAR ClaimsBeatingGoalCount =
    COUNTROWS(
        FILTER(
            ClaimSummary,
            [DaysBetween] <= [Goal]
        )
    )
RETURN

DIVIDE(
    ClaimsBeatingGoalCount,
    ClaimCount,
    BLANK()
)

littlemojopuppy_0-1646250965889.png

Hope this helps!

 

View solution in original post

PijushRoy
Super User
Super User

Hi, @Anonymous 

Create a calculated col in datatable

Goal = LOOKUPVALUE(RefrenceTable[Goal],RefrenceTable[Company],'DataTable'[Company])
 
Then use this formula
Measure = VAR _DistinctCountClaimID = CALCULATE(DISTINCTCOUNT('DataTable'[Claim ID]),ALLEXCEPT('DataTable','DataTable'[Company]))
VAR _days = SELECTEDVALUE('DataTable'[Goal])
VAR _dayscount = CALCULATE(COUNT('DataTable'[Company]), 'DataTable'[Days Between] <= _days)
RETURN
_dayscount/_DistinctCountClaimID
 
0pb1.JPG
 
 
If you have any question, please let me know.
If solve your requirement, please mark this answer as SOLUTION
If this comment helps you, please LIKE this comment/Kudos



Did I answer your question? Mark my post as a solution!
Appreciate your Like/Kudos

Proud to be a Super User!





View solution in original post

@Anonymous if you change the data type from a duration to whole number you should be ok.  Worked with the pbix I attached.

View solution in original post

8 REPLIES 8
PijushRoy
Super User
Super User

Hi, @Anonymous 

Create a calculated col in datatable

Goal = LOOKUPVALUE(RefrenceTable[Goal],RefrenceTable[Company],'DataTable'[Company])
 
Then use this formula
Measure = VAR _DistinctCountClaimID = CALCULATE(DISTINCTCOUNT('DataTable'[Claim ID]),ALLEXCEPT('DataTable','DataTable'[Company]))
VAR _days = SELECTEDVALUE('DataTable'[Goal])
VAR _dayscount = CALCULATE(COUNT('DataTable'[Company]), 'DataTable'[Days Between] <= _days)
RETURN
_dayscount/_DistinctCountClaimID
 
0pb1.JPG
 
 
If you have any question, please let me know.
If solve your requirement, please mark this answer as SOLUTION
If this comment helps you, please LIKE this comment/Kudos



Did I answer your question? Mark my post as a solution!
Appreciate your Like/Kudos

Proud to be a Super User!





littlemojopuppy
Community Champion
Community Champion

Hi @Anonymous 

 

Try this...

% Claims Better Than Goal = 
VAR ClaimSummary =
    ADDCOLUMNS(
        Claims,
        "DaysBetween",
        DATEDIFF(
            Claims[StartDate],
            Claims[EndDate],
            DAY
        ),
        "Goal",
        RELATED(Companies[Goal])
    )
VAR ClaimCount = COUNTROWS(ClaimSummary)
VAR ClaimsBeatingGoalCount =
    COUNTROWS(
        FILTER(
            ClaimSummary,
            [DaysBetween] <= [Goal]
        )
    )
RETURN

DIVIDE(
    ClaimsBeatingGoalCount,
    ClaimCount,
    BLANK()
)

littlemojopuppy_0-1646250965889.png

Hope this helps!

 

Anonymous
Not applicable

I tried this but the 

 

RELATED(Companies[Goal]) portion of the DAX gave me trouble.  My reference table has a numerical value set while the DATEDIFF is returning a interval of days.  So, the DAX isn't finding a similar data type.

 

How can I resolve this issue?

@Anonymous DATEDIFF returns the count of interval boundaries crossed between two dates: a numeric result.  It clearly works...

Could you share your pbix to try to figure this out?

Anonymous
Not applicable

I verified in Power Query that [Adjudicated Days] is set as a numerical value, table name = '

Adjudicated_PG_30'

Capture.PNG

 

Here is a screen grab of the DAX.  The RELATED ( Adjudicated_PG_30[Adjudicated Days] ) returns an error of "Parameter is not correct type" and it then cannot find the column name "Adjudicated Days"

@Anonymous you're trying to solve this in Power Query???  😯

Anonymous
Not applicable

Oh no.  I was just showing you that I confirmed in Power Query that 

Adjudicated_PG_30[Adjudicated Days] is a numerical value.
 
Capture1.PNG

@Anonymous if you change the data type from a duration to whole number you should be ok.  Worked with the pbix I attached.

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.