找回密码
 立即注册
搜索
查看: 1815|回复: 2

[软件] Excel 查之前最近一项数据的6种公式

[复制链接]
     
发表于 2023-2-24 01:08 | 显示全部楼层 |阅读模式
表里记录着各物品的返修日期和序列号,用简单的公式算出累计的返修次数和之前最近一次的返修日期。
样例如表:
image.png

返修次数
C2=COUNTIF(B$2:B2,B2)


上次返修日期
D5=IFNA(LOOKUP(1,0/(B$2:B4=B5),A$2:A4),"")
有 0/(B$2:B4=B5) 表达式加持,Lookup 经典而强大。

D5=IF(C5>1,INDEX(FILTER(A$2:A4,B$2:B4=B5),C5-1),"")
Office 365和2021带 Filter 函数,其他版本有插件。

D5=IF(C5>1,INDEX(A:A,SMALL(IF(B$2:B4=B5,ROW(A$2:A4)),C5-1)),"")
常见写法。

如果允许把返修日期倒序排列,新增记录放最上面,那么下面两种公式无需辅助列即可成立。搜索范围从下一行开始,如果要把公式拉到底,需要把范围多拉一行。
D2=IFNA(INDEX(A3:A$14,MATCH(B2,B3:B$14,0)),"")
D2=XLOOKUP(B2,B3:B$14,A3:A$14,"",0)

如果额外允许把SN前置:
D2=IFNA(VLOOKUP(A2,A3:B$14,2,0),"")

腾讯文档
目前没有 FILTER 和 XLOOKUP,且不支持IF里的列表,所以上面的三种公式没法用。另外目前没有IFNA,要用IFERROR替代。
支持 0/(B$2:B4=B5) 表达式,表扬一下。
https://docs.qq.com/sheet/DUnpaelFCckRtQUxz

谷歌文档
不支持 0/(B$2:B4=B5) 表达式,上面的 LOOKUP 简易公式不能用。难道是写法不一样?
https://docs.google.com/spreadsh ... u3CpYAFySMyUjJC8dKk


回复

使用道具 举报

     
发表于 2023-2-24 08:19 来自手机 | 显示全部楼层
本帖最后由 绕指流光 于 2023-2-24 08:25 编辑

谷歌可能是不支持
如果允许时间倒序,offset一下让vlookup查询范围从下一个单元格起就行了
倒序构建查询数组可以试试if({1,0},,)


另外这种典型的桌面数据库查询需求建议直接上access解决,还能搓个界面给人用,再套个管理模板局域网也能登陆。
非要强行公网在线多人编辑的话就没辙了,要不试试WPS的?
—— 来自 OPPO PEDM00, Android 13上的 S1Next-鹅版 v2.5.2-play
回复

使用道具 举报

头像被屏蔽
     
发表于 2023-2-24 10:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-9-21 18:39 , Processed in 0.034612 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表