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