EXCEL|Power Query的高级应用3-快速计算
- 2026-10-31 20:25:44
EXCEL|Power Query的高级应用3-快速计算今天要讲的案例背景:根据以下左表里的桩号区间来计算桩号间的距离。主要用到3个公式:Text.Replace(替换函数),Expression.Evaluate(结果结算),以及Number.Abs(绝对值计算)。 
1)将左表导入到查询编辑器,命名为【桩号距离】,如下图所示。 
2)添加自定义列,命名为【替换】,自定义列的添加公式如下图所示: 
3)结果如下图所示。从结果可以看到,上面一步的替换就是形成下面的计算公式。 
4)再添加一个自定义列,命名为【桩号距离】,然后用Expression.Evaluate来计算结果,操作如下图所示: 
5)结果如下图所示。这个就是直接计算的结果,但是这个结果不符合我们的常识。因为距离只能是正的。所以这个结果,我们需要用Number.Abs()加工下。 
6)我们再添加一列,命名为【真实距离】,然后公式如下图所示: 
7)我们在结果上删掉中间的2个计算步骤列【替换】和【桩间距离】,就得到最终我们想要的结果了。如下图所示。 
老规矩,下面咱们来解析下3个函数。 函数:=Text.Replace 语法:=Text.Replace(text,old,new) 说明:将text字符串中的old字符串替换成new字符串。 函数:=Expression.Evaluate 语法:=Expression.Evaluate(document,environment) 说明:计算文本公式document的结果。 函数:=Number.Abs 语法:=Number.Abs(number) 说明:计算number的绝对值。 单看这3个公式,是不是感觉还挺简单的。那么,如果我们试试在高级编辑器里用最少的步骤把上述结果呈现出来。那么上述步骤从 2)~6)的联合公式就是下面这个: 真实距离=Table.Addcolumn(源,"真实距离",each number.Abs(Expression.Evaluate(Text.Replace(Text.Replace([桩号区间],"k","1000*"),"~","-(")&")")))。 因为知道了3个函数的含义, 这个时候看这个总公式,是不是好理解多了。 那咱们来把上面的步骤,用高级编辑器演练下。 到下面这步,高级编辑器里的公式是这样的: 
现在,咱们来直接修改高级编辑器里的函数,来一步到位,计算出结果,修改后的高级编辑器里的内容如下图所示: 
所以,对于用到多层函数的地方,咱们先一步步拆解每个函数的用法,由内到外,弄明白每个函数的用法,再进行嵌套,学起来就一点都不难了。 好了,今天的内容就到这里吧。 今天是劳动节,大家都在张弛有度地过自己的节日吧,那祝大家节日愉快。


= "(" & Text.Replace(Text.Replace([桩号区间], "k", "1000*"), "~", ")-(") & ")"








本文来自网友投稿或网络内容,如有侵犯您的权益请联系我们删除,联系邮箱:wyl860211@qq.com 。