我在 Excel for Microsoft 365 中使用 Power Query。
我有一个 Power Query,其第一步是组合一组表:
let
Source = Table.Combine({One_foo_bar, Two_foo_bar, Three_foo_bar, Four_foo_bar, Five_foo_bar, Six_foo_bar, Seven_foo_bar, Eight_foo_bar}),
// ...
#"Result" = ...
in
#"Result"
问题是并非所有指定的表都可能存在。表的任何子集都可以存在。那些确实存在的都在ThisWorkbook
. 如果缺少任何一个,上面显示的 M 代码将抛出错误。
如果模式匹配可以帮助解决这个问题,那么表名都遵循模式 * _foo_bar。M 似乎不支持这种类型的模式匹配,但我包含此声明,以防有人知道我不知道的事情,并且可以利用此事实来制定解决方案。
我如何修改此代码以合并确实存在的表?
好问题,这不是一个完整的答案,但我会从这个想法开始。首先,在 Excel 中构建现有表的数组,如下所示:
然后使用 power query 从该表中获取现有表。
另一种方法是使用 PowerQuery 更直接地构建该数组
TRY
用作
Excel.CurrentWorkbook()
源,然后过滤“名称”列以仅返回以“_foo_bar”结尾的项目。例如,虽然我已经接受了@DjC给出的答案,但我将发布我使用@gns100给出的建议得出的答案以供将来参考。