Excel Power Query - подсчитать количество совпадающих нескольких столбцов - PullRequest
0 голосов
/ 14 марта 2020

У меня есть источник данных из внешнего файла Excel, который я добавил на лист Excel. Мне нужно добавить новые пользовательские столбцы, которые сравнивают данные с таблицей («My_Table») на другом листе, который обновляется вручную. Я использовал редактор Power Query Editor и создал новый столбец, который проверяет, есть ли соответствующая запись в My_Table на основе совпадающих 3 столбцов, и выдает результат True / False (ie для каждой строки источника данных, если acctName, projectName, и boardName совпадают с соответствующей строкой в ​​My_Table, затем она возвращает true):

#"Added Custom" = Table.AddColumn(#"Reordered Columns", "Tracked", each Table.Contains( My_Table, [Customer=[acctName], Project=[projectName], Board=[boardName]]))

Теперь я хотел бы сделать то же самое, но посчитать, сколько раз эти три столбца совпадают в «My_Table» , Я думал, что Tabel.RowCount будет работать, но я не уверен, что это правильный способ сделать это, поскольку у меня либо ошибка, либо нулевой результат.

1 Ответ

0 голосов
/ 15 марта 2020

dolomike, вот еще один выстрел в этом ...

Я начал с этого как Таблица1:

enter image description here

... и это как My_Table:

enter image description here

... и использовал этот код M:

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Merged Queries" = Table.NestedJoin(Source, {"acctName", "projectName", "boardName"}, My_Table, {"Customer", "Project", "Board"}, "My_Table", JoinKind.LeftOuter),
    #"Expanded My_Table" = Table.ExpandTableColumn(#"Merged Queries", "My_Table", {"Customer", "Project", "Board"}, {"My_Table.Customer", "My_Table.Project", "My_Table.Board"}),
    #"Grouped Rows" = Table.Group(#"Expanded My_Table", {"My_Table.Customer", "My_Table.Project", "My_Table.Board"}, {{"Count", each Table.RowCount(_), type number}, {"AllData", each _, type table [acctName=text, projectName=text, boardName=text, My_Table.Customer=text, My_Table.Project=text, My_Table.Board=text]}}),
    Custom2 = Table.TransformColumns(#"Grouped Rows",{"Count", each if _ = List.Max(#"Grouped Rows"[Count]) then 0 else _}),
    #"Removed Other Columns" = Table.SelectColumns(Custom2,{"Count", "AllData"}),
    #"Expanded AllData" = Table.ExpandTableColumn(#"Removed Other Columns", "AllData", {"acctName", "projectName", "boardName", "My_Table.Customer", "My_Table.Project", "My_Table.Board"}, {"acctName", "projectName", "boardName", "My_Table.Customer", "My_Table.Project", "My_Table.Board"}),
    #"Removed Other Columns1" = Table.SelectColumns(#"Expanded AllData",{"Count", "acctName", "projectName", "boardName"}),
    #"Reordered Columns" = Table.ReorderColumns(#"Removed Other Columns1",{"acctName", "projectName", "boardName", "Count"}),
    #"Renamed Columns" = Table.RenameColumns(#"Reordered Columns",{{"acctName", "Customer"}, {"projectName", "Project"}, {"boardName", "Board"}}),
    #"Removed Duplicates" = Table.Distinct(#"Renamed Columns")
in
    #"Removed Duplicates"

..., чтобы получить это результат:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...