gpt4 book ai didi

excel - 在 Excel 查询编辑器中合并具有不同列数的 CSV 文件文件夹

转载 作者:行者123 更新时间:2023-12-04 21:52:55 27 4
gpt4 key购买 nike

我有一个包含许多 CSV 文件的文件夹,其中前八列具有相同的标题,但前八列之后的列数量不同。我正在尝试使用 Excel 2016 中的查询和连接来完成此操作。

以下是 CSV 文件格式的示例(假设 A - H 中有字符串值):

----------------------------------------------------------------------------------------------------------------
| A | B | C | D | E | F | G | H | Company 1 | Value (1) | Company 2 | Value (2) | etc... |
----------------------------------------------------------------------------------------------------------------
| Product 1 | | | | | | | | .05 | 25.00 | .08 | 14.00 | |
----------------------------------------------------------------------------------------------------------------
| Product 2 | | | | | | | | .16 | 43.00 | .06 | 18.00 | |
----------------------------------------------------------------------------------------------------------------

再次重申:每个 CSV 文件的 A - H 列都相同,但每个文件的公司/值的数量不同(每个文件的公司名称不同)。

我已经为一个 CSV 文件完成了必要的步骤,并希望有某种方法可以将其用作其他文件的模板。

以下是我需要在 Excel 的查询编辑器中执行的步骤:
  • 删除一些“A-H”列(这些标题匹配所有文件,应该不难)
  • 删除所有“值 (#)”列 - 每个 CSV 文件中这些列的数量不同
  • 取消透视所有“公司#”列(现在是匹配列 A - H 之后的每一列,因为在上一步中删除了“值 (#)”列)
  • 将包含所有公司名称的列重命名为“公司”
  • 将每个公司下所有值的列重命名为“成本”

  • 以下是“高级查询编辑器”中的应用步骤:
    #"Promoted Headers" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"A", type text}, {"B", type text}, {"C", type text}, {"D", type text}, {"E", type number}, {"F", type text}, {"G", Currency.Type}, {"H", Currency.Type}, {"Company 1", type text}, {"Value (1)", Currency.Type}, {"Company 2", type text}, {"Value (2)", Currency.Type}, {"Company 3", type text}, {"Value (3)", Currency.Type}, {"Company 4", type text}, {"Value (4)", Currency.Type}, {"Company 5", type text}, {"Value (5)", Currency.Type}, {"Company 6, type text}, {"Value (6)", Currency.Type}, {"Company 7", type text}, {"Value (7)", Currency.Type}, {"Company 8", type text}, {"Value (8)", Currency.Type}, {"Company 9", type text}, {"Value (9)", Currency.Type}}),
    #"Removed Other Columns" = Table.SelectColumns(#"Changed Type",{"A", "C", "D", "E", "Company 1", "Company 2", "Company 3", "Company 4", "Company 5", "Company 6", "Company 7", "Company 8", "Company 9"}),
    #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Removed Other Columns", {"A", "C", "D", "E"}, "Attribute", "Value")

    有什么方法可以导入 CSV 文件的文件夹并将上述步骤应用于每个文件,以便对所有 CSV 文件进行一次查询? (我希望它在下面看起来如何的简要示例)
    ----------------------------------------------------
    | A | C | D | E | Company | Cost |
    ----------------------------------------------------
    | Product 1 | | | | Company 1 | .05 |
    ----------------------------------------------------
    | Product 1 | | | | Company 2 | .08 |
    ----------------------------------------------------
    | Product 2 | | | | Company 1 | .16 |
    ----------------------------------------------------
    | Product 2 | | | | Company 2 | .06 |
    ----------------------------------------------------

    最佳答案

    我相信是这样。这似乎有效。

    首先选择获取数据(或新源)> 文件 > 文件夹,然后浏览到包含 csv 文件的文件夹并选择它并单击确定。然后再次单击确定。

    你会看到类似下面的内容。

    enter image description here

    单击编辑按钮。

    右键单击内容列并删除其他列。你会看到这样的东西。

    enter image description here

    通过单击右上角的按钮展开内容列,然后在出现的对话框中单击确定,如下所示。

    enter image description here

    在屏幕左侧的查询下,您会看到如下内容:

    enter image description here

    我突出显示的查询是您想要完成工作的地方。请注意,它有一个表格图标,并以转换示例文件开头。点击它。

    在屏幕右侧的 APPLIED STEPS 下,单击 Source。

    在编辑栏中,您应该会看到如下内容:= Csv.Document(#"Sample File Parameter1",[Delimiter=",", Columns=12, Encoding=1252, QuoteStyle=QuoteStyle.None]) .删除部分,Columns=12, (从 C 到包括逗号在内的所有内容——它的数字很可能与 12 不同)。

    enter image description here

    然后删除要从表中删除的列。

    enter image description here

    单击转换 > 将第一个标题行用作标题下拉箭头 > 将标题用作第一行。

    enter image description here
    enter image description here

    单击变换 > 转置以翻转表格。

    选择 Column1 下拉箭头 > 文本过滤器 > 不以 > 开头并键入 Value并单击确定。

    enter image description here

    单击“变换”>“转置”将表格翻转回其原始方向。

    单击转换 > 将第一行用作标题。

    选择除 Company 列之外的所有列,然后单击 Unpivot Columns 下拉箭头 > Unpivot Other Columns。 (不要直接选择和旋转公司列。就像我说的那样,间接地做,应该从各种文件中捕获不同数量的公司列。)

    enter image description here

    在屏幕右侧的 APPLIED STEPS 下,删除每个 Changed Type 步骤。如果您不这样做,它们可能会导致您的查询阻塞。

    现在回到这个查询,这将是你原来的“主要”查询。当然,你的名字叫别的名字,但你会通过它的位置知道它。点击它。

    enter image description here

    您可能会看到这样的错误。

    enter image description here

    在屏幕右侧的 APPLIED STEPS 中删除任何 Changed Type 步骤。

    你应该看到这样的东西。

    enter image description here

    关于excel - 在 Excel 查询编辑器中合并具有不同列数的 CSV 文件文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50803693/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com