Динамическое сравнение строк в одной таблице - язык DAX / M / Power BI - PullRequest
0 голосов
/ 18 сентября 2018

Возможно ли это?

У меня есть таблица со столбцом, содержащим версию продукта (например: fast car ). Каждая версия имеет список деталей (например: color ). Каждая часть имеет число значений (например: красный ).

<strong>VERSION</strong> <strong>PART</strong> <strong>PART_VALUE</strong> VERSION1 PART1 PART_VALUE1 VERSION1 PART2 PART_VALUE2 VERSION1 PART3 PART_VALUE3 VERSION2 PART2 PART_VALUE2 VERSION2 PART3 PART_VALUE3 VERSION2 <strong>PART4</strong> <strong>PART_VALUE4</strong> VERSION3 PART1 PART_VALUE1 VERSION3 PART2 PART_VALUE2 VERSION3 PART3 <strong>PART_VALUE4</strong>

Теперь я хочу выбрать - во Фрагментаторе или в каком-либо другом флажке - Версия1 и Версия2 и результаты должны быть:

"ONLY DIFFENCES BETWEEN VERSION1 AND VERSION2"<br> VERSION1 PART1 PART_VALUE1 VERSION2 PART4 PART_VALUE4

или после выбора Версия1 и Версия3 результаты должны быть:

"ONLY DIFFENCES BETWEEN VERSION1 AND VERSION3"<br> VERSION1 PART3 PART_VALUE3 VERSION3 PART3 PART_VALUE4

1 Ответ

0 голосов
/ 18 сентября 2018

Вот запрос M, который должен делать то, что вы хотите:

(V1, V2) =>
let
    Source = MyTable,
    First = Table.SelectRows(Source, each ([VERSION] = V1)),
    Second = Table.SelectRows(Source, each ([VERSION] = V2)),
    #"First Unique" = Table.NestedJoin(First,{"PART", "PART_VALUE"},Second,{"PART", "PART_VALUE"},"Second",JoinKind.LeftAnti),
    #"Second Unique" = Table.NestedJoin(Second,{"PART", "PART_VALUE"},First,{"PART", "PART_VALUE"},"First",JoinKind.LeftAnti),
    Combine = Table.Combine({#"First Unique", #"Second Unique"}),
    #"Removed Columns" = Table.RemoveColumns(Combine,{"Second", "First"})
in
    #"Removed Columns"
...