公众号平台最新的推送规则对技术类文章不太友善,如果不想错过干货,请务必 “设为星标”哦!!!
点击上方蓝字 --> 点击“...”--> 选择“设为星标”
忽略文本行计算,最简单的就是结合 iferror 函数,将文本单元格的错误计算值强制转换成指定的值。那么在 Power Query 中有没有 iferror 函数呢?
案例:
将下图 1 中 D 列的数值乘以 0.1,如果遇到文本单元格,则返回 0 值,效果如下图 2 所示。
解决方案:
这题如果用公式的话是很简单的,只需在公式外面套个 iferror 就成:
=IFERROR(D2*0.1,0)
现在问题就变成了,在 PQ 中有没有类似 iferror 的函数?
1. 选中数据表的任意单元格 --> 选择工具栏的“数据”-->“从表格”
2. 在弹出的对话框中保留默认设置 --> 点击“确定”
表格已经上传至 Power Query。
3. 选择工具栏的“添加列”-->“自定义列”
4. 在弹出的对话框中输入所需的列名 --> 在公式区域输入 [数量]*0.1 --> 点击“确定”:
毫无意外,文本单元格计算后显示错误值。
5. 在公式栏中做如下改动:
在 each 后面添加 try;
在公式末尾添加 otherwise 0
公式释义:
PQ 中的 try...otherwise 用于处理数据转换过程中的错误或异常,功能类似于 Excel 中的 iferror;
其中 try 返回的是一个 record 记录,由 2 个字段组成:一个是 HasError ,另一个是 Error;HasError 为逻辑值 TRUE 或 FASLE;Error 则为记录 Record;
otherwise 用于判断记录中的 HasError 值,如果为 TRUE(错误)则执行 otherwise 之后的过程;如果为 FALSE(正确)则直接返回 try 后面的算式结果。
6. 选中“浮动”列 --> 选择工具栏的“主页”-->“删除列”-->“删除其他列”
7. 选择工具栏的“主页”-->“关闭并上载”-->“关闭并上载至”
8. 在弹出的对话框中选择“表”--> 选择“现有工作表”及所需上传至的位置 --> 点击“加载”
右侧绿色的表格就是计算结果。