如何在Google Sheet中用筛选展示每位客户的最新订单?
在Google Sheets中筛选每位客户的最新订单行
当然可以做到,这里给你几个简便的实现方法,假设你的数据列是:A列=Customer ID,B列=Date of order,C列=Product,D列=Cost,第一行是表头:
方法1:用FILTER+MAXIFS组合公式
直接在空白单元格输入以下公式,就能自动筛选出每位客户的最新订单行:
=FILTER(A:D, B=MAXIFS(B:B, A:A, A:A))
原理:MAXIFS(B:B, A:A, A:A)会为每个客户ID匹配到对应的最新下单日期,FILTER函数则只保留日期等于该最大日期的行。如果同一客户在同一天有多笔订单,所有对应行都会被保留。
方法2:用QUERY函数实现
如果需要更灵活的筛选逻辑,也可以用QUERY函数:
=QUERY(A:D, "select A, max(B), C, D where A is not null group by A, C, D having max(B) = B", 1)
原理:通过group by按客户ID、产品、费用分组,同时筛选出每组中日期等于该客户最大日期的行,公式末尾的1表示数据第一行是表头。
方法3:去重保留单条最新记录
如果同一客户同一天有多笔订单,你只想保留其中一条,用SORTN+SORT组合:
=SORTN(SORT(A:D, 2, FALSE), 9^9, 2, 1, TRUE)
原理:先按下单日期倒序排序(最新的排在最前),再用SORTN按客户ID去重,保留每个ID的第一行记录。
内容的提问来源于stack exchange,提问作者StatBot
相关产品推荐
相关产品推荐

