Power Query如何通过Excel单元格指定列名新增乘2计算列?
Power Query 动态指定列计算新增列解决方案
你的问题核心是用单元格指定的列名,动态引用表格对应列的值来计算新列,原来的代码只取了单元格的固定值乘2,没关联到表格里的行数据,所以无法运行。下面是可行的解决步骤和代码:
解决步骤
- 读取单元格中的目标列名:把存储列名的单元格(你这里是命名区域
Fat_variable)的值提取出来,存为变量。 - 动态引用列计算新列:在新增列时,通过变量对应的列名,读取当前行的该列值再乘以2。
完整代码示例
let // 读取存储目标列名的单元格值(假设Fat_variable是单个单元格的命名区域) targetColumnName = Excel.CurrentWorkbook(){[Name="Fat_variable"]}[Content][Colonne1]{0}, // 基于已有步骤#"Add YEAR"新增计算列 #"Add FAT" = Table.AddColumn(#"Add YEAR", "FAT (g/100 g)", each Record.Field(_, targetColumnName) * 2) in #"Add FAT"
代码说明
targetColumnName:先将单元格内的列名字符串读取出来,比如单元格写的是"脂肪含量",这个变量就等于"脂肪含量"。Record.Field(_, targetColumnName):_代表当前行的记录,Record.Field会根据变量里的列名,动态获取当前行对应列的值,再乘以2就是你需要的计算结果。
原代码的问题
你之前的代码Excel.CurrentWorkbook(){[Name="Fat_variable"]}[Content][Colonne1]{0}*2,只是把单元格里的内容(比如列名字符串)直接乘2——如果是文本会直接报错,就算是数值也只是固定值,完全没用到表格里的行数据,自然达不到需求。
内容的提问来源于stack exchange,提问作者Carlos Menendez Borge
相关产品推荐
相关产品推荐

