Powerbi 在Power BI中清理工作台
我正在尝试将几个Excel文件加载到Power BI中。这些文件非常小(虽然您可以在DAX中执行此操作,但我建议您在查询编辑器中执行此操作Powerbi 在Power BI中清理工作台,powerbi,dax,powerquery,m,Powerbi,Dax,Powerquery,M,我正在尝试将几个Excel文件加载到Power BI中。这些文件非常小(虽然您可以在DAX中执行此操作,但我建议您在查询编辑器中执行此操作 使用ID列上的左外部联接,将Correct表合并到Bad表中 展开Correct表,仅获取Colx列 创建自定义列以拾取所需的值。(添加列>自定义列) 如果[Colx]=null,则[Col1]else[Colx] 如果需要,可以删除Col1和Colx列,也可以保留它们。如果删除Col1,可以将Col2列重命名为Col1 如果不希望源表四处浮动,可以
列上的左外部联接,将Correct
表合并到Bad
表中
Correct
表,仅获取Colx
列如果[Colx]=null,则[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"
对于这种类型的工作(即清理数据),我通常会在清理坏表后删除正确的表。清理后如何删除/截断表?您可以在高级编辑器中将它们全部加载到同一查询中。这样您就不会留下任何多余的表。请参阅我的编辑。
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"