在查询转换中引用单元格创建反向累计总额的技术求助
解决Excel Power Query引用单值查询返回空值的问题
1. 先验证单值查询本身是否有效
先单独在Power Query编辑器里运行你的取数公式,确认它能返回正确数值:
Excel.CurrentWorkbook(){[Name="Q4Rec"]}[Content][QT4_Received]{0}
如果单独运行能拿到值,说明单值查询没问题,问题出在后续的引用环节;如果单独运行就为空,先检查Q4Rec表是否存在、QT4_Received列有没有有效数值,以及列名拼写是否完全匹配。
2. 两种可靠的引用方式
方法一:直接把取数逻辑嵌入反向累计查询
不用拆分独立的单值查询,直接把获取起始金额的代码写到反向累计的查询里,避免引用时的上下文冲突:
let // 直接获取Q4收款总额作为初始值 InitialAmount = Excel.CurrentWorkbook(){[Name="Q4Rec"]}[Content][QT4_Received]{0}, // 加载你的预算数据表(替换成实际表名) BudgetTable = Excel.CurrentWorkbook(){[Name="你的预算表名称"]}[Content], // 添加反向累计列(假设预算金额列名为"预算金额") AddReverseCumulative = Table.AddColumn(BudgetTable, "反向累计", each InitialAmount - List.Sum(List.Range(BudgetTable[预算金额], 0, Table.PositionOf(BudgetTable, _)))) in AddReverseCumulative
方法二:正确引用独立单值查询
如果坚持用独立的单值查询:
- 右键该单值查询,选择仅创建连接,不要加载到工作表;
- 在反向累计查询里直接用查询名称调用,比如你的单值查询叫
GetQ4Received:let InitialAmount = GetQ4Received, // 后续预算处理逻辑... in // 输出结果
3. 空值常见排查点
- 确认
Q4Rec表的QT4_Received列没有被过滤、隐藏,且单元格格式是数字格式(不是文本); - 检查查询刷新顺序:单值查询要先于反向累计查询刷新,可在「数据」选项卡→「查询和连接」里,右键反向累计查询→「属性」设置刷新优先级。
内容的提问来源于stack exchange,提问作者warH0rse1775
相关产品推荐
相关产品推荐

