Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Created a single measure to populate rows based on aging (Buckets 1-6) and spreadsheet ([2], [7] and CVTY [7]).
Measure = IF('Scorecards Merged data'[AGE#] = 2,IF('Scorecards Merged data'[AgeNumber] = 2 && 'Scorecards Merged data'[AGE#] = 2 && NOT(CONTAINSSTRING('Scorecards Merged data'[Spreadsheet],"CVTY")), 'Scorecards Merged data'[COUNT(*)], IF('Scorecards Merged data'[AGE#] = 2 && 'Scorecards Merged data'[Age Number] = 2 && CONTAINSSTRING('Scorecards Merged data'[Spreadsheet],"[7]"), 'Scorecards Merged data'[COUNT(TOPICID)], IF(CALCULATE(SUM('Scorecards Merged data'[COUNT(*)]),ALLEXCEPT('Scorecards Merged data','Scorecards Merged data'[ReceivedDate],'Scorecards Merged data'[AGE#], 'Scorecards Merged data'[AgeNumber]),CONTAINSSTRING('Scorecards Merged data'[Spreadsheet],"[2]"),'Scorecards Merged data'[AgeNumber] = 2, 'Scorecards Merged data'[AGE#] = 2) <= CALCULATE(SUM('Scorecards Merged data'[COUNT(TOPICID)]),ALLEXCEPT('Scorecards Merged data','Scorecards Merged data'[ReceivedDate],'Scorecards Merged data'[AGE#], 'Scorecards Merged data'[Age Number]),CONTAINSSTRING('Scorecards Merged data'[Spreadsheet],"[7]"),'Scorecards Merged data'[Age Number] = 2, 'Scorecards Merged data'[AGE#] = 2), 0, 'Scorecards Merged data'[COUNT(*)] - CALCULATE(SUM('Scorecards Merged data'[COUNT(TOPICID)]),ALLEXCEPT('Scorecards Merged data','Scorecards Merged data'[ReceivedDate],'Scorecards Merged data'[AGE#], 'Scorecards Merged data'[Age Number]),CONTAINSSTRING('Scorecards Merged data'[Spreadsheet],"[7]"),'Scorecards Merged data'[Age Number] = 2, 'Scorecards Merged data'[AGE#] = 2)))),0)
Output Power BI Bucket 1-6 columns are correct for [2] and [7], but for CVTY [2], diffrence is sometimes correct and sometimes incorrect...not sure where my disconnect is within the measure.
COUNT(TOPICID) | COUNT(*) | ReceivedDate | AgeNumber | AGE_GROUP | Spreadsheet | Bucket 1 | Bucket 2 | Bucket 3 | Bucket 4 | Bucket 5 | Bucket 6 | Age Number | AGEGRP | AGE# |
0 | 5/15/2021 | PCS_CVTY[2] | 0 | 0 | 0 | 0 | 0 | 0 | ||||||
0 | 1 | 5/15/2021 | 6 | > than 90 days | PCS_CVTY [2] | 0 | 0 | 0 | 0 | 0 | 1 | 6 | ||
0 | 3 | 5/15/2021 | 2 | >= 2 days < 15 days | PCS_CVTY[2] | 0 | -2 | 0 | 0 | 0 | 0 | 2 | ||
0 | 1 | 5/15/2021 | 1 | < than 2 days | PCS_CVTY [2] | 0 | 0 | 0 | 0 | 0 | 0 | 1 | ||
0 | 3 | 5/15/2021 | 3 | >= 15 days < 30 days | PCS_CVTY [2] | 0 | 0 | 2 | 0 | 0 | 0 | 3 | ||
0 | 4 | 5/15/2021 | 4 | >= 30 days < 60 days | PCS_CVTY [2] | 0 | 0 | 0 | 4 | 0 | 0 | 4 | ||
1 | 5/15/2021 | PCS [7] | 0 | 0 | 1 | 0 | 0 | 0 | 3 | >= 15 days < 30 days | 3 | |||
4 | 5/15/2021 | PCS [7] | 0 | 4 | 0 | 0 | 0 | 0 | 2 | >= 2 days < 15 days | 2 | |||
6 | 5/15/2021 | PCS [7] | 6 | 0 | 0 | 0 | 0 | 0 | 1 | < than 2 days | 1 | |||
0 | 1 | 5/15/2021 | 6 | > than 90 days | PCS [2] | 0 | 0 | 0 | 0 | 0 | 1 | 6 | ||
0 | 3 | 5/15/2021 | 2 | >= 2 days < 15 days | PCS [2] | 0 | 3 | 0 | 0 | 0 | 0 | 2 | ||
0 | 1 | 5/15/2021 | 1 | < than 2 days | PCS [2] | 1 | 0 | 0 | 0 | 0 | 0 | 1 | ||
0 | 3 | 5/15/2021 | 3 | >= 15 days < 30 days | PCS [2] | 0 | 0 | 3 | 0 | 0 | 0 | 3 | ||
0 | 4 | 5/15/2021 | 4 | >= 30 days < 60 days | PCS [2] | 0 | 0 | 0 | 4 | 0 | 0 | 4 | ||
0 | 5/15/2021 | PCS [2] | 0 | 0 | 0 | 0 | 0 | 0 | ||||||
0 | 5/15/2021 | PCS [7] | 0 | 0 | 0 | 0 | 0 | 0 |
Solved! Go to Solution.
Closing this topic as I figured out an extensive workaround to get the desired values to populate the matrix.
Closing this topic as I figured out an extensive workaround to get the desired values to populate the matrix.
The calculation is NOT a measure, but a calculated column. The following DAX is working for a singluar vendor (there are three), for each of the six Bucket columns, but how do I change the DAX to look at each vendor as applicable within each column
Bucket 2 = IF('Scorecards Merged data'[AGE#] = 2 && 'Scorecards Merged data'[Age Number] = 2 && CONTAINSSTRING('Scorecards Merged data'[Spreadsheet],"[7]"), 'Scorecards Merged data'[COUNT(TOPICID)], IF('Scorecards Merged data'[AGE#] <> 2, 0, IF('Scorecards Merged data'[AGE#] = 2 && 'Scorecards Merged data'[AgeNumber] = 2 && NOT(CONTAINSSTRING('Scorecards Merged data'[Spreadsheet],"CVTY")) && CONTAINSSTRING('Scorecards Merged data'[Spreadsheet],"[2]"), 'Scorecards Merged data'[COUNT(*)], IF('Scorecards Merged data'[AgeNumber] = 2 && CONTAINSSTRING('Scorecards Merged data'[Spreadsheet],"CVTY") && 'Scorecards Merged data'[COUNT(*)] - CALCULATE(SUM('Scorecards Merged data'[COUNT(TOPICID)]),ALLEXCEPT('Scorecards Merged data','Scorecards Merged data'[ReceivedDate],'Scorecards Merged data'[AGE#], 'Scorecards Merged data'[Vendor], 'Scorecards Merged data'[Age Number]),CONTAINSSTRING('Scorecards Merged data'[Spreadsheet],"[7]"),'Scorecards Merged data'[Age Number] = 2, 'Scorecards Merged data'[Vendor] = "Vendor1", 'Scorecards Merged data'[AGE#] = 2) <=0, 0, 'Scorecards Merged data'[COUNT(*)] - CALCULATE(SUM('Scorecards Merged data'[COUNT(TOPICID)]),ALLEXCEPT('Scorecards Merged data','Scorecards Merged data'[ReceivedDate],'Scorecards Merged data'[AGE#], 'Scorecards Merged data'[Vendor], 'Scorecards Merged data'[Age Number]),CONTAINSSTRING('Scorecards Merged data'[Spreadsheet],"[7]"),'Scorecards Merged data'[Age Number] = 2, 'Scorecards Merged data'[Vendor] = "Vendor1", 'Scorecards Merged data'[AGE#] = 2)))))
Matrix table...
Date | Vendor | Bucket 1 | Bucket 2 | Bucket 3 | Bucket 4 | Bucket 5 | Bucket 6 |
5/22/2021 | Vendor2_Special | 0 | 0 | 0 | 0 | 0 | 0 |
5/22/2021 | Vendor2[2] | 0 | 5 | 5 | 4 | 0 | 1 |
5/22/2021 | Vendor2[CVTY] | 0 | 3 | 5 | 4 | 0 | 1 |
5/22/2021 | Vendor2[7] | 7 | 5 | 2 | 0 | 0 | 0 |
5/22/2021 | Vendor3[2] | 0 | 1 | 0 | 1 | 1 | 2 |
5/22/2021 | Vendor3[CVTY] | 0 | 0 | 0 | 1 | 1 | 2 |
5/22/2021 | Vendor3_Special | 0 | 0 | 0 | 0 | 0 | 0 |
5/22/2021 | Vendor3[7] | 0 | 0 | 0 | 0 | 0 | 0 |
5/22/2021 | Vendor1[2] | 0 | 1 | 1 | 0 | 0 | 0 |
5/22/2021 | Vendor1[CVTY] | 0 | 0 | 1 | 0 | 0 | 0 |
5/22/2021 | Vendor1_Special | 0 | 0 | 0 | 0 | 0 | 0 |
5/22/2021 | Vendor1[7] | 0 | 2 | 0 | 0 | 0 | 0 |
The bucket columns are calculated columns, NOT a measure. The AGE#, AgeNumber and Age Number changes for each bucket column calc. I've whittled down my Bucket 1 - 6 DAX to...
IF('Scorecards Merged data'[AGE#] = 2 && 'Scorecards Merged data'[Age Number] = 2 && CONTAINSSTRING('Scorecards Merged data'[Spreadsheet],"[7]"), 'Scorecards Merged data'[COUNT(TOPICID)], IF('Scorecard Merged data'[Age#] <> 2, 0, IF('Scorecards Merged data'[AGE#] = 2 && 'Scorecards Merged data'[AgeNumber] = 2 && CONTAINSSTRING('Scorecards Merged data'[Spreadsheet],"[2]") && NOT(CONTAINSSTRING('Scorecards Merged data'[Spreadsheet],"CVTY")), 'Scorecards Merged data'[COUNT(*)], [Calc CVTY]))
There are three vendors each having the same three spreadsheets. For each vendor, the [COUNT(TOPICID)]...[7] and [COUNT(*)]...[2] counts are correct, the difference between the two is where I'm failing. I've added the measure [Calc CVTY] to the calculation and it works as I need it to work for the difference, but only for "VendorA" and Bucket 2 as circular dependency occurs for the other buckets. Can the [Calc CVTY] measure be transformed to work for each bucket...or what DAX calculation can I add to correctly calculate the difference for all six buckets for each Vendor.
Calc CVTY =
IF(SUM('Scorecards Merged data'[COUNT(*)]) <= CALCULATE(SUM('Scorecards Merged data'[COUNT(TOPICID)]), ALLEXCEPT('Scorecards Merged data', 'Scorecards Merged data'[ReceivedDate], 'Scorecards Merged data'[AGE#], 'Scorecards Merged data'[Vendor], 'Scorecards Merged data'[Age Number]), CONTAINSSTRING('Scorecards Merged data'[Spreadsheet],"[7]"), 'Scorecards Merged data'[Age Number] = 2, 'Scorecards Merged data'[AGE#] = 2, 'Scorecards Merged data'[Vendor] = "VendorA"), 0, SUM('Scorecards Merged data'[COUNT(*)]) - CALCULATE(SUM('Scorecards Merged data'[COUNT(TOPICID)]), ALLEXCEPT('Scorecards Merged data', 'Scorecards Merged data'[ReceivedDate], 'Scorecards Merged data'[AGE#], 'Scorecards Merged data'[Vendor], 'Scorecards Merged data'[Age Number]), CONTAINSSTRING('Scorecards Merged data'[Spreadsheet],"[7]"), 'Scorecards Merged data'[Age Number] = 2, 'Scorecards Merged data'[AGE#] = 2, 'Scorecards Merged data'[Vendor] = "VendorA")
HEy @N823198 ,
do yourself a favor and use SWITCH(TRUE()) and definitely use the DAX Formatter. Then it should be possible to understand the measure.
Then next question, you posted one measure and refer to 6 columns. Is that measure used 6 times? Are they calculated column? How does the measure change between the 6 usages?
Make it as easy as possible, then people can help you.
Best regards
Denis
I've yet to use the Switch(True()) or DAX Formatter so I'll need to read up on them.
Yes, the measure is used 6 times for each calculated column with the only change being the AGE#, AgeNumber and Age Number for reference to the "bucket". Original example above is the measure used for Bucket 2 column. The measure used for Bucket 3 column is exactly the same as the measure for Bucket 2 column the exception of the AGE#, AgeNumber and Age Number in the measure being "3"...and so on for the other Bucket column measures.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
113 | |
97 | |
79 | |
73 | |
56 |
User | Count |
---|---|
145 | |
105 | |
104 | |
90 | |
63 |