循环访问 PowerQuery 以创建新表

iterate through powerquery to create new table

提问人:bob 提问时间:10/30/2023 最后编辑:Ron Rosenfeldbob 更新时间:10/30/2023 访问量:33

问:

我在 PowerQuery 的 Excel 中有一些数据。 我想要 a) 最好在源头过滤数据(将查询限制为例如 client = “xyz”)(以避免网络流量等,尽管源是访问,因此可能不会委派操作。

b) 创建列的小计,例如按客户、项目、用户。

c) 如果上述内容不允许我做我想做的事,我该如何根据我对电源查询的操作创建一个新表。

因此,请运行按客户端筛选的 PowerQuery。 手动写出行,让我可以完全控制格式/条件/小计。

我有编程背景,但我不熟悉 M。 我有数据,希望对其进行小计,并将小计放在顶部。 我所做的大部分小计工作最终都丢失了数据中的额外列。

否则,我会通过在VBA中遍历powerquery中的每一行来手动写入新的工作表/表,但认为这可能不是理想的解决方案。

我也会重视 M. book / online 上的良好学习资源。

我也许可以想出一种方法来做到这一点,但想知道我“应该”如何去做。 我已经设法在powerquery中成功添加/替换列,但现在需要对它做其他事情。

如果我可以为 1 个客户端执行此操作的代码,那么我就可以通过遍历客户端来生成每个工作表来扩展。 谢谢。

编辑:聊天GPT建议:

    Dim query As Object
    Dim row As Range
    
    'Set the query object to the dynamic query
    Set query = PowerQuery.CurrentQuery
    
    'Loop through each row in the query
    For Each row In query.Result.DataBodyRange.Rows
        'Your code here
    Next row

这是循环的正确方法吗?

Excel PowerQuery M

评论

1赞 Ron Rosenfeld 10/30/2023
你觉得有用吗?似乎它甚至不知道这不是VBA对象,并且代码不可能运行。但是您可以使用该函数来生成小计。如果您需要更多帮助,我建议您在阅读帮助页面后重写您的问题,以获取有关如何提出好问题以及如何创建最小、完整和可验证示例的信息ChatGPTPowerQueryTable.Group
0赞 Community 10/31/2023
请提供足够的代码,以便其他人可以更好地理解或重现问题。

答:

0赞 CHill60 10/30/2023 #1

您可以尝试以下操作:

  1. Reference原始查询 - 这将创建一个新查询。将其重命名为合理的名称
  2. 使用 ,然后选择您的列,例如 Client。如果要按更多列进行分组,请单击单选按钮TransformGroup ByAdvanced
  3. 使用 ,联接到原始查询HomeMerge Queries
  4. 展开生成的列,选择所需的列Table

希望这足以向您展示如何找回“丢失”的列

学习材料 - 我基本上谷歌所有内容 - 我经常在YouTube上结束,这不是我的首选媒体,但我发现Microsoft Learn中的东西只有在我知道我在做什么时才有用 - 即很好的参考,但不是那么好的教程