Power 查询:将特定列拆分为单独的行

Power 查询:将特定列拆分为单独的行

不确定标题是否真的描述了我的问题,以及 Power Query 是否是解决此问题的正确方法。我的表包含具有单独 ID 的事件和属于特定 ID 的发票:

类型 ID 项目 地位 供应商 发票号码。 数量
事件 12345 项目A 打开
发票 12345 酒店 123 100,00
发票 12345 酒店 156 200,00
事件 45678 项目 B 关闭
发票 45678 酒店 456 100,00

所需输出但“供应商 - 发票号 - 金额”也应为标题行或只是格式不同以便从视觉上将其与数据分开(不知道如何用表格显示这一点,这可能已经是我的问题的答案:D):

ID 项目 地位
12345 项目A 打开
供应商 发票号码。 数量
酒店 123 100,00
酒店 156 200,00
ID 项目 地位
45678 项目 B 关闭
供应商 发票号码。 数量
酒店 456 100,00

使用 Power Query 可以实现这一点吗?如果不行,我是否必须以不同的方式设置我的表格才能使其正常工作?

我对 Power Query 还很陌生,尝试了很多东西,但恐怕我缺少基础知识,甚至不知道从哪里开始。

非常感谢你的帮助!

答案1

您可以使用函数的自定义聚合轻松获取 Power Query 中显示的表格结果Table.Group

let
    Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"TYPE", type text}, {"ID", Int64.Type}, {"PROJECT", type text}, {"STATUS", type text}, {"Supplier", type text}, {"Invoice no.", Int64.Type}, {"Amount", Int64.Type}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"ID"}, {
        {"New Table", (t)=>
            let 
                #"ID" = {t[ID]{0},"Supplier"} &  List.RemoveFirstN(t[Supplier]),
                #"PROJECT" = {t[PROJECT]{0}, "Invoice no."} & List.RemoveNulls(t[#"Invoice no."]),
                #"STATUS" = {t[STATUS]{0}, "Amount"} & List.RemoveNulls(t[Amount]),
                #"Table" = Table.FromColumns(
                        {#"ID",#"PROJECT",#"STATUS"},
                        {"ID","PROJECT","STATUS"})
            in #"Table"
                }}),
    #"Removed Columns" = Table.RemoveColumns(#"Grouped Rows",{"ID"}),
    #"Expanded New Table" = Table.ExpandTableColumn(#"Removed Columns", "New Table", {"ID", "PROJECT", "STATUS"}, {"ID", "PROJECT", "STATUS"})
in
    #"Expanded New Table"

要获得每个小节第二个标题行的差异格式,可以使用 Excel 中的条件格式。

在此处输入图片描述

相关内容