无论从 Excel 表格中匹配最早或最晚的 n 条记录,都只需稍微改下公式

2025-04-03ASPCMS社区 - fjmyhfvclm

之前教大家通过稍微修改公式的方法,将 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)。

全部评论