Excel 2016中如何用Power Query将Price列月/周价格转换为周度数值?
在Excel 2016的Power Query中将月度/周度价格转换为周度数值列
操作步骤:
导入数据到Power Query编辑器
- 选中包含
Price列的数据区域,切换到「数据」选项卡,点击「从表格/区域」(若数据未设置为表格,会提示创建表格,勾选「我的表格有标题」后确认),进入Power Query编辑器界面。
- 选中包含
添加自定义计算列
- 点击「添加列」选项卡,选择「自定义列」,在弹出的对话框中,将默认公式替换为以下M语言代码:
= let PriceText = [Price], // 提取价格数字:取空格前的文本,移除英镑符号后转成数值 Amount = try Number.From(Text.Remove(Text.BeforeDelimiter(PriceText, " "), {"£"})) otherwise null, // 判断是否为月度价格(统一转小写避免大小写问题) IsMonthly = Text.Contains(Text.Lower(PriceText), "month") in // 月度价格除以4.34813,周度价格直接返回数值,异常值返回null if IsMonthly and Amount <> null then Amount / 4.34813 else Amount - 点击「确定」生成自定义列。
- 点击「添加列」选项卡,选择「自定义列」,在弹出的对话框中,将默认公式替换为以下M语言代码:
调整数值格式(可选)
- 选中新生成的自定义列,切换到「转换」选项卡,点击「格式化」→「保留小数位数」,设置为2位(或按需调整),让结果更规整。
加载数据回Excel
- 点击「开始」选项卡的「关闭并上载」,选择将处理后的数据加载到新工作表或指定位置即可。
公式说明:
Text.BeforeDelimiter(PriceText, " "):提取价格文本中空格前的部分(如£1000)Text.Remove(..., {"£"}):移除英镑符号,得到纯数字文本Number.From(...):将数字文本转换为数值类型try...otherwise null:处理格式异常的单元格,避免报错Text.Contains(Text.Lower(...), "month"):兼容不同大小写的"month"文本,确保判断准确
内容的提问来源于stack exchange,提问作者user3009918
相关产品推荐
相关产品推荐

