Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi 在Power BI中清理工作台_Powerbi_Dax_Powerquery_M - Fatal编程技术网

Powerbi 在Power BI中清理工作台

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 如果不希望源表四处浮动,可以

我正在尝试将几个Excel文件加载到Power BI中。这些文件非常小(虽然您可以在DAX中执行此操作,但我建议您在查询编辑器中执行此操作

  • 使用ID
    列上的左外部联接,将
    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"