发布
社区首页 >问答首页 >协助Power查询选择行和转置

协助Power查询选择行和转置
EN

Stack Overflow用户
提问于 2022-09-05 03:21:43
回答 1查看 52关注 0票数 1

我有近400个excel文件,其中包含客户定价信息。工作是将这些转换为多个数据库表,以加载到Azure SQL数据库中。我的任务是改造。

现有数据遵循一定的逻辑级别。每个客户1本工作簿。单个客户可以有多个ICP(如示例所示)。我需要的是一些帮助使用Power查询将数据从源转换为目标格式。一旦进入Target,它将大量加载到SQL服务器,以执行对所需SQL表的额外转换。

需要选择的

  • 客户名称
  • 供应地址
  • ICP
  • 在选定范围内(ICP之间)包含“旧费率”或“新费率”列中数据的任何后续行。即使单个值存储在一个或任意一个中,该行的两列都需要提取。

源和目标示例

来源与目标

不得不张贴的图片,因为我不断收到错误的消息,代码没有被正确格式化,但没有代码。只有两张桌子

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-05 06:42:13

首先索引您的表

代码语言:javascript
代码运行次数:0
复制
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
rowscount = List.Count(List.Distinct(Source[type])),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"old rate", Percentage.Type}, {"new rate", Percentage.Type}}),
#"Replaced Value" = Table.ReplaceValue(#"Changed Type",null,0,Replacer.ReplaceValue,{"type", "detail", "old rate", "new rate"}),
#"Added Index" = Table.AddIndexColumn(#"Replaced Value", "Index", 0, 1, Int64.Type),
#"Integer-Divided Column" = Table.TransformColumns(#"Added Index", {{"Index", each Number.IntegerDivide(_, rowscount), Int64.Type}})
enter code here
in 
#"Integer-Divided Column"

然后,您可以对其他数据进行枢轴和合并。

代码语言:javascript
代码运行次数:0
复制
let
    Source = Table1,
    #"Removed Columns" = Table.RemoveColumns(Source,{"old rate", "new rate"}),
    #"Filtered Rows" = Table.SelectRows(#"Removed Columns", each ([type] = "customer name" or [type] = "ICP" or [type] = "supply address")),
    #"Pivoted Column" = Table.Pivot(#"Filtered Rows", List.Distinct(#"Filtered Rows"[#"type"]), "type", "detail"),
    #"Merged Queries" = Table.NestedJoin(#"Pivoted Column", {"Index"}, Table1, {"Index"}, "Table1", JoinKind.LeftOuter),
    #"Expanded Table1" = Table.ExpandTableColumn(#"Merged Queries", "Table1", {"type", "old rate", "new rate"}, {"type", "old rate", "new rate"}),
    #"Filtered Rows1" = Table.SelectRows(#"Expanded Table1", each ([type] = "Anytime" or [type] = "Day" or [type] = "EA Levy")),
    #"Removed Columns1" = Table.RemoveColumns(#"Filtered Rows1",{"Index"})
in
    #"Removed Columns1"

也请参阅示例文件样本文件

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73604269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档