首页 > 解决方案 > Power BI:将项目分组在一列中,具有不同值的其他列显示为几列

问题描述

我有一个关于 Power BI 的表格的问题。事实上,我有第一列是进程的名称或 ID,第二列是进程的步骤编号,第三列是步骤的时间。例子 :

第 1 列:[A、A、B、A、C、B、C]

第 2 列:[1、2、1、3、1、2、2]

第 3 列:[8、9、6、10、18、7、19]

我希望它显示为一个表格,其中包含流程的第一列(不重复),以及包含步骤和相关小时数的新列,例如:

第 1 列:[A、B、C]

Column 2: [8, 6, 18] #每个流程步骤1的小时

Column 3: [9, 7, 19] #每个流程第2步的小时

Column 4: [10, Nan, Nan] #每个流程第3步的小时

这是否可以直接在 Power BI 上执行,或者我需要通过其他工具(例如 python)传递?谢谢,

标签: duplicatespowerbimultiple-columns

解决方案


您可以通过以下措施实现此目的

_1 = MINX(FILTER(tbl,tbl[colB]=1),tbl[colC])

_2 = MINX(FILTER(tbl,tbl[colB]=2),tbl[colC])

_3 = MINX(FILTER(tbl,tbl[colB]=3),tbl[colC])

解决方案

电源查询解决方案将遵循

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUTIEYgulWB0IzwiILeE8Y5C8AZjrBFVqBueBlJqDec5QOUMLOBckaQg0KBYA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [colA = _t, colB = _t, colC = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"colA", type text}, {"colB", Int64.Type}, {"colC", Int64.Type}}),
    #"Pivoted Column" = Table.Pivot(Table.TransformColumnTypes(#"Changed Type", {{"colB", type text}}, "en-US"), List.Distinct(Table.TransformColumnTypes(#"Changed Type", {{"colB", type text}}, "en-US")[colB]), "colB", "colC", List.Min)
in
    #"Pivoted Column"

推荐阅读