Хотя вы можете сделать это в DAX, я бы посоветовал сделать это в редакторе запросов. Шаги будут выглядеть примерно так:
- Объедините таблицу
Correct
с таблицей Bad
, используя левое внешнее соединение для идентификатора columns
.
- Разверните
Correct
таблицу, чтобы получить только столбец Colx
.
Создайте настраиваемый столбец, чтобы выбрать нужные значения. (Добавить столбец> Пользовательский столбец)
if [Colx] = null then [Col1] else [Colx]
- Вы можете удалить столбцы
Col1
и Colx
, если хотите, или просто оставить их. Если вы удалите Col1
, вы можете переименовать столбец Col2
в Col1
.
Если вы не хотите, чтобы исходные таблицы перемещались, вы можете выполнить все вышеперечисленное в одном запросе, подобном этому:
let
BadSource = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUTJQitWJVjICsfRMwWxjINsIzDIBsnSNlWJjAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [ID = _t, Col1 = _t]),
CorrectSource = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlLSUTJUitWJVjIBskyVYmMB", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [ID = _t, Colx = _t]),
Bad = Table.TransformColumnTypes(BadSource,{{"ID", Int64.Type}, {"Col1", type number}}),
Correct = Table.TransformColumnTypes(CorrectSource,{{"ID", Int64.Type}, {"Colx", type number}}),
#"Merged Queries" = Table.NestedJoin(Bad,{"ID"},Correct,{"ID"},"Correct",JoinKind.LeftOuter),
#"Expanded Correct" = Table.ExpandTableColumn(#"Merged Queries", "Correct", {"Colx"}, {"Colx"}),
#"Added Custom" = Table.AddColumn(#"Expanded Correct", "Col2", each if [Colx] = null then [Col1] else [Colx]),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Col1", "Colx"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Col2", "Col1"}})
in
#"Renamed Columns"
person
Alexis Olson
schedule
30.04.2018