Ну, это сложнее, чем я бы хотел, но вот что я придумал.
Есть вещи, которые вы надеетесь сделать, которые не так просты в DAX. Во-первых, вы хотите агрегированную агрегацию;) - в этом случае, Макс. Во-вторых, вы хотите использовать значение из одного столбца, которое вы определяете по тому, что находится в другом столбце. Это мышление на основе строк, а DAX предпочитает мышление на основе столбцов.
Итак, чтобы сделать совокупность агрегатов, нам просто нужно пробраться через нее. Подведение итогов дает нам количество предметов. Функции Max и Rank могут помочь нам найти наибольшее количество, но не очень полезны для получения имени элемента. TOP N дает нам всю строку, где наш счет является самым большим.
Но теперь нам нужно вывести наш ItemName из строки, поэтому SELECTCOLUMNS позволяет нам выбрать поле для работы. Наконец, нам действительно нужно значение, а не таблица из 1 столбца и 1 строки. Итак, FirstNonBlank завершает работу.
Надеюсь, это поможет.
Вот мой DAX
MostFrequentItem =
VAR SummaryTable = SUMMARIZE ( 'Table', 'Table'[ItemName], "CountsByItem", COUNT ( 'Table'[ItemName] ) )
VAR TopSummaryItemRow = TOPN(1, SummaryTable, [CountsByItem], DESC)
VAR TopItem = SELECTCOLUMNS (TopSummaryItemRow, "TopItemName", [ItemName])
RETURN FIRSTNONBLANK (TopItem, [TopItemName])
Вот DAX без использования переменных (не проверено, извините. Должно быть близко):
MostFrequentItem_2 =
FIRSTNONBLANK (
SELECTCOLUMNS (
TOPN (
1,
SUMMARIZE ( 'Table', 'Table'[ItemName], "Count", COUNT ( 'Table'[ItemName] ) ),
[Count], DESC
),
"ItemName", [ItemName]
),
[ItemName]
)
Вот фиктивные данные:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WcipNSspJTS/NVYrVIZ/nnFmUnJOKznRJzSlJxMlyzi9PSs3JAbODElMyizNQmLEA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Stuff = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Stuff", type text}}),
#"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"Stuff", "ItemName"}})
in
#"Renamed Columns"