Office2019中PowerQuery条件合并ANOS分组表报错求助
问题解决思路及修正代码
你的核心问题是代码里直接引用了分组ANOS本身,而没有从分组里提取对应年份的查询表,同时没处理那些报错的无效年份查询。以下是修正后的代码:
let currentYear = Date.Year(DateTime.LocalNow()), tableList = List.Transform({2011..currentYear}, each Number.ToText(_)), allTables = List.Transform(tableList, (yearName) => try #\"ANOS\"{[Name=yearName]}[Data] otherwise Table.FromRecords({}) ), combinedTable = Table.Combine(allTables) in combinedTable
关键修正点:
- 把原代码中固定引用
#\"ANOS\"改成带参数的遍历逻辑:(yearName) => ...,这样能针对每个年份去分组里找对应的查询 - 使用
#\"ANOS\"{[Name=yearName]}[Data]精准定位分组中名称匹配的查询数据 - 加入
try...otherwise Table.FromRecords({}),遇到不存在或报错的年份查询时返回空表,避免合并过程中断
额外注意事项:
- 确保
ANOS分组内的查询名称和tableList里的年份文本完全一致(比如都是"2011"、"2012"这类字符串) - 如果分组内的查询名称是数字格式(而非文本),可以去掉
Number.ToText(_),直接用数字列表{2011..currentYear},然后代码里的yearName对应数字即可
内容的提问来源于stack exchange,提问作者Cooper
相关产品推荐
相关产品推荐

