如何在Google Sheets中结合时间戳获取各PO项最新阶段条目
需求:获取各采购订单(PO)最新阶段的行记录列表
采购订单(PO)会经历多个阶段,每个阶段都会生成对应的时间戳,目标是提取每个PO处于最新阶段时的完整行记录。
我尝试使用公式 =MAP(UNIQUE(B1:B17);LAMBDA(id;XLOOKUP(id;B1:B17;A1:H17;;;-1))),但没有得到正确结果。
问题原因
你用的XLOOKUP参数-1是从数据区域的末尾向上查找第一个匹配的PO号,这仅在数据按时间戳从旧到新顺序排列时有效。如果数据排序混乱,这个公式只会取最后出现的PO行,而非时间戳最大的最新阶段记录。
解决方案
方案1:使用QUERY函数(简洁高效)
假设时间戳在A列,PO号在B列,公式如下:
=QUERY(A1:H17,"select * where A in (select max(A) from A1:H17 group by B)",1)
原理:先按PO分组,计算每个PO对应的最大时间戳,再筛选出所有时间戳等于对应最大值的行。
方案2:使用BYROW+MAXIFS+XLOOKUP(灵活适配复杂场景)
=BYROW(UNIQUE(B2:B17),LAMBDA(x,XLOOKUP(MAXIFS(A:A,B:B,x)&x,A:A&B:B,A:H,"",0)))
原理:
- 提取所有唯一的PO号
- 对每个PO号,找到其对应的最大时间戳
- 将时间戳与PO号拼接成唯一标识,避免不同PO出现相同时间戳的冲突
- 用XLOOKUP匹配该唯一标识,返回对应的整行数据
内容的提问来源于stack exchange,提问作者onit
相关产品推荐
相关产品推荐

