之前教大家通过稍微修改公式的方法,将 PQ 的一对多查询变成查询第一条记录,今天举一反三,如何查找最后一条甚至多条记录呢?
案例:根据下图 1 中 F 列的姓名,分别从左侧数据表中匹配出最后 1 条、最后 2 条和最早 2 条记录,效果如下图 2、3、4 所示。
1. 选中左侧数据表的任意单元格 --> 选择任务栏的“数据”-->“从表格”
2. 在弹出的对话框中保留默认设置 --> 点击“确定”
表格已上传至 Power Query。
3. 将公式栏中的 datetime 改成 date。
4. 选择任务栏的“主页”-->“关闭并上载”-->“关闭并上载至”
5. 在弹出的对话框中选择“仅创建连接”--> 点击“加载”
6. 用同样的步骤将右侧的数据表也上传至 Power Query。
7. 选择任务栏的“主页”-->“合并查询”
8. 在弹出的对话框中选中“姓名”列 --> 在下拉菜单中选择“表1”--> 选中“姓名”列 --> 点击“确定”
9. 在原有公式的前面和后面分别加上 Table.TransformColumns(和 ,{"表1",Table.Last})。
10. 点开“表1”旁边的扩展钮 --> 取消勾选“姓名”和“使用原始列名作为前缀”--> 点击“确定”
11. 删除“姓名”列。
12. 将“日期”列的格式修改为日期。
13. 选择“主页”-->“关闭并上载”-->“关闭并上载至”
14. 在弹出的对话框中选择“表”--> 选择“现有工作表”和所需上传至的位置 --> 点击“加载”
右侧绿色的表格就是两个人的最后一次匹配记录。
15. 如果要提取最后两次出现的记录,只需要在步骤 9 中将公式中的 Table.Last 修改为 (a)=>Table.LastN(a,2)。
16. 展开后就像下面这样。
17. 修改日期格式后上传至空白区域。
18. 同理,如果要提取最早出现的两次记录,只需在步骤 9 中将公式中的 Table.Last 修改为 (a)=>Table.FirstN(a,2)。