电源查询 - 扩展新列

Posted

技术标签:

【中文标题】电源查询 - 扩展新列【英文标题】:power query - expanding new columns 【发布时间】:2017-02-13 12:45:42 【问题描述】:

我有两个表要合并,然后我展开新列。问题是当我们将新数据输入到新的月份/年份时,第一个表可以有新的列。结果不包括这些新月份。

有没有办法在合并时设法扩展新列?

查询:

let
    Source = #"320 Odemeler",
    #"Merged Queries" = Table.NestedJoin(Source,"HESAP NO",#"320 Faturalar","HESAP NO","NewColumn",JoinKind.LeftOuter),
    #"Expanded NewColumn" = Table.ExpandTableColumn(#"Merged Queries", "NewColumn", "HESAP NO", "HESAP ADI", "Nisan - 2016", "Haziran - 2016", "Temmuz - 2016", "Ağustos - 2016", "Eylül - 2016", "Ekim - 2016", "Kasım - 2016", "Aralık - 2016", "Ocak - 2017", "Şubat - 2017", "Mart - 2017", "Mayıs - 2017", "HESAP NO.1", "HESAP ADI.1", "Nisan - 2016", "Haziran - 2016", "Temmuz - 2016", "Ağustos - 2016", "Eylül - 2016", "Ekim - 2016", "Kasım - 2016", "Aralık - 2016", "Ocak - 2017", "Şubat - 2017", "Mart - 2017", "Mayıs - 2017")
in
    #"Expanded NewColumn"

另一个查询:

let
    Source = #"Tum Hareketler",
    #"Sorted Rows" = Table.Sort(Source,"DATE_", Order.Ascending),
    #"Duplicated Column" = Table.DuplicateColumn(#"Sorted Rows", "DATE_", "DATE_ - Copy"),
    #"Extracted Month Name" = Table.TransformColumns(#"Duplicated Column", "DATE_", each Date.MonthName(_, "tr-TR"), type text),
    #"Extracted Year" = Table.TransformColumns(#"Extracted Month Name","DATE_ - Copy", Date.Year),
    #"Added Custom" = Table.AddColumn(#"Extracted Year", "Tarih", each [DATE_] & " - " & Number.ToText([#"DATE_ - Copy"], "G","")),
    #"Grouped Rows" = Table.Group(#"Added Custom", "HESAP NO", "HESAP ADI", "Tarih", "Sum Alacak", each List.Sum([ALACAK]), type number),
    #"Pivoted Column" = Table.Pivot(#"Grouped Rows", List.Distinct(#"Grouped Rows"[Tarih]), "Tarih", "Sum Alacak", List.Sum)
in
    #"Pivoted Column"

【问题讨论】:

也许我可以创建一个新的列列表并设置此列表的“Table.ExpandTableColumn”? 我创建了一个名为“Tarih”的新列表,但我不知道将"HESAP NO", "HESAP ADI", "Nisan - 2016", "Haziran - 2016", "Temmuz - 2016", "Ağustos - 2016", "Eylül - 2016", "Ekim - 2016", "Kasım - 2016", "Aralık - 2016", "Ocak - 2017", "Şubat - 2017", "Mart - 2017", "Mayıs - 2017" 部分替换为列表的语法... Source = Tarih 然后我应该在Table.ExpandTableColumn 中写什么? 【参考方案1】:

首先我将“Tarih”列表转换为表格,

然后设法编写以下查询:

let
    Liste = Tarih,
    TarihListe = Liste [Column1],
    Source = #"320 Odemeler",
    #"Merged Queries" = Table.NestedJoin(Source,"HESAP NO",#"320 Faturalar","HESAP NO","NewColumn",JoinKind.LeftOuter),
    #"Expanded NewColumn" = Table.ExpandTableColumn(#"Merged Queries", "NewColumn", TarihListe , TarihListe )
in
    #"Expanded NewColumn"

因此,每次数据透视列添加新的月份列时,我不必编辑查询以将其添加到查询中...

【讨论】:

我认为您的查询逻辑有一些额外的复杂性。此外,如果您希望所有列都易于扩展,则可以使用 Table.Join 而不是 Table.NestedJoin @Eugene 感谢您的评论。什么样的复杂性?我们怎样才能简化它?我没用,Power Query 插入为NestedJoin @UlmutK PowerQuery 在您使用 UI 合并表时不会自动使用 Table.Join。你必须自己写。为了帮助您简化查询,我需要了解任务:您有哪些表以及您想要什么结果。 @Eugene 下次我会尝试手动编写,谢谢。我不会占用你更多的时间。我只是好奇而已。再次感谢您的时间和帮助!

以上是关于电源查询 - 扩展新列的主要内容,如果未能解决你的问题,请参考以下文章

S7-200 PLC内部+5VDC电源的负载能力

plc的电源模块起啥作用,

使用约束扩展网格(或电源集)

电源上的 SIMD 扩展:编译器标志和处理器支持

SSIS - 如何将电源查询的输出导入数据流中的另一个电源查询

VBA 等待刷新电源查询以执行下一行代码