Forum Discussion
Comma Separated List
Hi,
I have 1 table with the first column as ID:
1 X Y
1 X1 Y
2 X Z
2 X1 Z
3 X2 Z
1 X4 F
After this table is filterd by a slicer on the report, Let's say Y and Z from 3rd column are chosen, I want to create a count of all the possible combinations from the second column. In this case:
Combination Count
X,X1 2 (there are 2 ID's with X,X1)
X2 1 (there is 1 ID with X2)
Is that possible please?
Hi Asking
This not as simple as it sounds. The reason is that there is no column to slice by. Long story short, please refer to attched file and following screenshots. You have to have either index or Date column. If don't, then use power query to add an index column. Please let me know if you need any further help.Combination = VAR T1 = SUMMARIZE ( 'Table', 'Table'[Column1], "@Index", MAX ( 'Table'[Index] ), "@Combination", CONCATENATEX ( 'Table', 'Table'[Column2], "," ) ) VAR T2 = SUMMARIZE ( T1, [@Combination], "@@Index", MAX ( 'Table'[Index] ) ) VAR T3 = ADDCOLUMNS ( T2, "@Rank", RANKX ( T2, [@@Index],, ASC, Dense ) ) RETURN MAXX ( FILTER ( T3, [@Rank] = SELECTEDVALUE ( 'Table 2'[Value] ) ), [@Combination] )Count = VAR T1 = SUMMARIZE ( 'Table', 'Table'[Column1], "@Index", MAX ( 'Table'[Index] ), "@Combination", CONCATENATEX ( 'Table', 'Table'[Column2], "," ) ) VAR T2 = SUMMARIZE ( T1, [@Combination], "@@Index", MAX ( 'Table'[Index] ), "@Count", COUNTROWS ( FILTER ( T1, [@Combination] = EARLIER ( [@Combination] ) ) ) ) VAR T3 = ADDCOLUMNS ( T2, "@Rank", RANKX ( T2, [@@Index],, ASC, Dense ) ) RETURN MAXX ( FILTER ( T3, [@Rank] = SELECTEDVALUE ( 'Table 2'[Value] ) ), [@Count] )
5 Replies
- Greg_DecklerCommunity Champion
Asking Try this:
Measure = VAR __Table = ADDCOLUMNS(SUMMARIZE('Table',[Column3]),"__Text",CONCATENATEX('Table',[Column2],",")) VAR __Values = DISTINCT(SELECTCOLUMNS(__Table,"__Text",[__Text])) VAR __Table1 = ADDCOLUMNS(SUMMARIZE('Table',[Column1]),"__Text",CONCATENATEX('Table',[Column2],",")) VAR __Table2 = FILTER(__Table1,[__Text] IN __Values) VAR __Result = COUNTROWS(DISTINCT(SELECTCOLUMNS(__Table2,"__Index",[Column1]))) RETURN __Result - AskingRegular Visitor
Thank you.
However, how do I create the actual table and not only get the scalar value please?
- tamerj1Community Champion
Hi Asking
This not as simple as it sounds. The reason is that there is no column to slice by. Long story short, please refer to attched file and following screenshots. You have to have either index or Date column. If don't, then use power query to add an index column. Please let me know if you need any further help.Combination = VAR T1 = SUMMARIZE ( 'Table', 'Table'[Column1], "@Index", MAX ( 'Table'[Index] ), "@Combination", CONCATENATEX ( 'Table', 'Table'[Column2], "," ) ) VAR T2 = SUMMARIZE ( T1, [@Combination], "@@Index", MAX ( 'Table'[Index] ) ) VAR T3 = ADDCOLUMNS ( T2, "@Rank", RANKX ( T2, [@@Index],, ASC, Dense ) ) RETURN MAXX ( FILTER ( T3, [@Rank] = SELECTEDVALUE ( 'Table 2'[Value] ) ), [@Combination] )Count = VAR T1 = SUMMARIZE ( 'Table', 'Table'[Column1], "@Index", MAX ( 'Table'[Index] ), "@Combination", CONCATENATEX ( 'Table', 'Table'[Column2], "," ) ) VAR T2 = SUMMARIZE ( T1, [@Combination], "@@Index", MAX ( 'Table'[Index] ), "@Count", COUNTROWS ( FILTER ( T1, [@Combination] = EARLIER ( [@Combination] ) ) ) ) VAR T3 = ADDCOLUMNS ( T2, "@Rank", RANKX ( T2, [@@Index],, ASC, Dense ) ) RETURN MAXX ( FILTER ( T3, [@Rank] = SELECTEDVALUE ( 'Table 2'[Value] ) ), [@Count] )- AskingRegular Visitor
Thank you. That helped.
Is there a way I can show the result as a stacked bar chart. I would like the "combination" to be in the Y axis and the "count" in the X but I understand I can't put a measure in the Y...
- tamerj1Community Champion
Hi Asking
I hope this is what you're looking for. Please refer to attached updated sample file.Combinations = SELECTCOLUMNS ( SUMMARIZE ( 'Table', 'Table'[Column1], "@Combination", CONCATENATEX ( 'Table', 'Table'[Column2], "," ) ), "Combination", [@Combination] )Count2 = VAR T1 = SUMMARIZE ( 'Table', 'Table'[Column1], "@Combination", CONCATENATEX ( 'Table', 'Table'[Column2], "," ) ) VAR T2 = SUMMARIZE ( T1, [@Combination], "@Count", COUNTROWS ( FILTER ( T1, [@Combination] = EARLIER ( [@Combination] ) ) ) ) RETURN MAXX ( FILTER ( T2, [@Combination] = SELECTEDVALUE ( Combinations[Combination] ) ), [@Count] )