公众号平台最新的推送规则对技术类文章不太友善,如果不想错过干货,请务必 “设为星标”哦!!!
点击上方蓝字 --> 点击“...”--> 选择“设为星标”
提取每种分类中第 N 次或倒数第 N 次出现的记录,这个需求用 PQ 的公式实现是非常简单的。
案例:
从下图 1 的数据表中分别提取出每种物资第二次出现、倒数第二次出现的记录。
效果如下图 2、3 所示。
解决方案:
1. 选中数据表的任意单元格 --> 选择工具栏的“数据”-->“从表格”
2. 在弹出的对话框中保留默认设置 --> 点击“确定”
表格已经上传至 Power Query。
根据题意,涉及到每种分类,就要用到分组函数。这步我们可以借用工具栏的操作,就不必写公式了。
3. 选中“物资”列 --> 选择工具栏的“主页”-->“分组依据”
4. 在弹出的对话框的“操作”下拉菜单中选择“所有行”--> 点击“确定”
5. 将公式栏中 each 后面的“_”替换为公式 Table.LastN(Table.FirstN(_,2),1)。
公式释义:
Table.FirstN(_,2):
Table.FirstN 函数的作用是返回表格中的前 N 行;
语法为 Table.FirstN(表格名,条件);若条件为数字 n,则返回表格中前 n 行记录;若条件为表达式,则返回满足表达式的所有记录;
搭配 each 和分组公式,这段公式表示提取出每个分组的前 2 次记录;
Table.LastN(...,1):
Table.LastN 与 Table.FirstN 作用正好相反,用于提取表格中的后 N 行;
这里表示提取出上述记录中的最后 1 条,也就是每个分组的第 2 次记录
6. 点开“计数”旁边的扩展钮 --> 仅勾选“地址”--> 取消勾选“使用原始列名作为前缀”--> 点击“确定”
7. 将“地址”列拖动到前面。
8. 选择工具栏的“主页”-->“关闭并上载”-->“关闭并上载至”
9. 在弹出的对话框中选择“表”--> 选择“现有工作表”及所需上传至的位置 --> 点击“加载”
右侧绿色的表格就是每种物资的第二条出现记录。
10. 如果要提取倒数第二条记录,只需在上述步骤 5 的时候将公式修改如下:
Table.FirstN(Table.LastN(_,2),1)
公式释义:
从每个分组的最后两条记录中提取出第一个,即倒数第二条记录。
转发、点赞、在看也是爱!