【问题标题】:PowerBI: Concatenate Object List As ColumnPowerBI:将对象列表连接为列
【发布时间】:2019-06-09 15:02:27
【问题描述】:

我正在创建一个显示项目和项目成员列表的 PowerBI 仪表板。我希望列表的每一行都有项目,并有一个名为“成员”的列,该列将以逗号分隔的文本列出成员。不幸的是,我的数据源的成员是对象数组,而 PowerBI 似乎只支持扩展字符串数组。

我尝试过查询编辑器和高级编辑器,但似乎无法正确获取格式/命令。

在 JSON 格式中,我的数据会是这样的:

[
    {
        projectName: "A",
        members: [
                    {
                        firstName: "John",
                        lastName: "Doe"
                    },
                    {
                        firstName: "Jane",
                        lastNahe: "Doe"
                    }
                ]
    }      
]

我希望能够这样显示:

|  Project |  Members                 |
---------------------------------------
|    A     | John Doe, Jane Doe       |

有什么想法吗?看起来像一个简单的任务,但我遇到的麻烦比我应该做的要多得多。谢谢!

【问题讨论】:

    标签: powerbi powerbi-desktop


    【解决方案1】:

    我拿了你的 JSon 文件,添加了一个额外的项目以进行适当的测试,并使用 M-Query 得到你正在寻找的结果:

    let
        Source = Json.Document(File.Contents("C:\yourpath\ProMem.json")),
        #"Converted to Table1" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table1", "Column1", {"projectName", "members"}, {"projectName", "members"}),
    #"Expanded members" = Table.ExpandListColumn(#"Expanded Column1", "members"),
    #"Expanded members1" = Table.ExpandRecordColumn(#"Expanded members", "members", {"firstName", "lastName"}, {"firstName", "lastName"}),
    #"Merged Columns" = Table.CombineColumns(#"Expanded members1",{"firstName", "lastName"},Combiner.CombineTextByDelimiter(" ", QuoteStyle.None),"Name"),
    #"Grouped Rows" = Table.Group(#"Merged Columns", {"projectName"}, {{"Members", each Text.Combine([Name],", "), type text}})
    
    in
        #"Grouped Rows"
    

    【讨论】:

      猜你喜欢
      • 2011-11-14
      • 2021-08-23
      • 2011-01-01
      • 2014-04-06
      • 2013-04-05
      • 1970-01-01
      • 2011-11-26
      • 1970-01-01
      • 2016-11-07
      相关资源
      最近更新 更多