Forum Discussion
Count rows depending on other row values by group
I would like to count rows (number of clauses) with following logic:
- if within one organization a clause number ending on a zero is present the other clauses with the same starting number shouldn't be counted.
So for organization A clause number 6.0 is present and therefore 6.1 and 6.2 shouldn't be counted. Clause 6.0 itself is always counted. The total number of clauses for this organization is 3.
| Organization | Clause | Count |
| A | 2.1 | Yes |
| A | 6.0 | Yes |
| A | 6.1 | No |
| A | 6.2 | No |
| A | 7.1 | Yes |
| B | 5.2 | Yes |
| B | 7.0 | Yes |
| B | 7.1 | No |
I would like to create the third column above, so I can just use a filter on each page. Of course it is also possible to create a general measure and place it in a table with Organization, but I would also like to visualize the total number of clauses (e.g. by country) with the above logic.
How could I create this calculated column?
Hi, Ilse_ScpDt
Based on your description, i created data to reproduce your scenario. The pbix file is attached in the end.
Table:
You may create a calculated column and a measure as below.
Calculated column:
Flag Column = var _min = MINX( FILTER( 'Table', [Organization]=EARLIER('Table'[Organization])&& ROUNDDOWN([Clause],0)=ROUNDDOWN(EARLIER('Table'[Clause]),0) ), [Clause] ) return IF( _min=ROUNDDOWN([Clause],0), IF( [Clause]=_min, "Yes", "No" ), "Yes" )Measure:
Count Measure = COUNTROWS( FILTER( ALLSELECTED('Table'), [Flag Column]="Yes" ) )Result:
Best Regards
Allan
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
4 Replies
- amitchandak
Super User
Ilse_ScpDt , Create a new column like
new column =
var _min = minx(filter(Table, [Organization] =earlier([Organization]) , rounddown([Clause],0) = rounddown(earlier([Clause]),0)),[Clause])
return
if([Clause] =_min, "Yes", "No") - Ilse_ScpDt
Helper I
amitchandak Thanks for your reply, this is already in the right direction but still needs some alterations.
For one of the organizations this is the result:
1.0 Yes 1.1 No 2.2 Yes 4.1 Yes 6.1 Yes 6.3 No 7.6 No 7.7 No So clause 1.1 is not counted because of clause 1.0, that's correct. This logic needs to be true only in case of a clause zero.
Now also 6.3 is not counted because there is a lower clause number (6.1), but they should both be counted because there is no clause 6.0.
Why both 7.6 and 7.7 aren't counted I am not sure.
- v-alq-msft
Community Support
Hi, Ilse_ScpDt
Based on your description, i created data to reproduce your scenario. The pbix file is attached in the end.
Table:
You may create a calculated column and a measure as below.
Calculated column:
Flag Column = var _min = MINX( FILTER( 'Table', [Organization]=EARLIER('Table'[Organization])&& ROUNDDOWN([Clause],0)=ROUNDDOWN(EARLIER('Table'[Clause]),0) ), [Clause] ) return IF( _min=ROUNDDOWN([Clause],0), IF( [Clause]=_min, "Yes", "No" ), "Yes" )Measure:
Count Measure = COUNTROWS( FILTER( ALLSELECTED('Table'), [Flag Column]="Yes" ) )Result:
Best Regards
Allan
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
- Ilse_ScpDt
Helper I
v-alq-msft
Thanks a lot! This is working.