powerquery - 在 Power Query 中组合匹配名称模式的表
问题描述
我正在尝试组合许多名称与模式匹配的表。到目前为止,我已经从#shared 中提取了表名,并将表名放在了一个列表中。
我无法做的是循环这个列表并转换成一个可以组合的表格列表。
例如 Name 是带有表名的列表:
Source = Table.Combine( { List.Transform(Name, each #shared[_] )} )
错误是:
Expression.Error: We cannot convert a value of type List to type Text.
Details:
Value=[List]
Type=[Type]
我尝试了很多方法,但我错过了某种类型的转换。
我能够将此表名称列表转换为具有以下内容的表列表:
T1 = List.Transform(Name, each Expression.Evaluate(_, #shared))
然而,Expression.Evaluate 感觉就像一个丑陋的黑客。这种转变有更好的方法吗?
有了这个表格列表,我尝试将它们与:
Source = Table.Combine(T1)
但我得到了错误:
Expression.Error: A cyclic reference was encountered during evaluation.
如果我从带有索引的列表中提取表(例如 T1{2}),它就可以工作。所以在这个思路中,我需要某种 o 循环来追加。
说明问题的步骤。
现在我只需要将它们组合起来,这就是我卡住的地方。
重要的是我不想为此使用 VBA。从 VBA 扫描 ThisWorkbook.Queries() 重新创建查询更容易,但在添加删除表时它不会是一个干净的重新加载。
@Michal Palko 建议的最终解决方案是:
CT1 = Table.FromList(T1, Splitter.SplitByNothing(), {"Name"}, null, ExtraValues.Ignore),
EC1 = Table.ExpandTableColumn(CT1, "Name", Table.ColumnNames(CT1{0}[Name]) )
其中 T1 是上一步。唯一需要注意的是,第一个表必须包含所有列,否则将被跳过。
解决方案
推荐阅读
- powershell - Powershell 循环 - Powershell 的新功能
- python - Python - 缺少 zeep 和 binascii
- typescript - 在打字稿中动态创建对象
- docker - 如何从容器内部获取 docker 容器的镜像名称
- javascript - 允许 iframe 提取单独的 CSS?
- java - 按 Oracle 中的忽略列分组
- java - 如何找到n次因子的因子
- r - 测量 R 中的峰值内存使用量
- predicate - Mountebank 使用了错误的谓词并忽略了 contains 中的值
- javascript - 按唯一键的最后一个索引过滤数组