ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
12
返回列表 发新帖
楼主: 大自在天

[求助] 根据条件查询最近日期的行记录

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-4-26 18:52 | 显示全部楼层
在Excel中,如果你想根据某些条件查询最近日期的行记录,你可以使用“筛选”功能结合“排序”来找到符合条件的最近日期的记录。以下是一个步骤说明:
  • 准备数据:
    确保你的数据已经整齐地排列在Excel表格中,通常包括列标题和下面的数据行。假设你的数据包括日期列和其他与查询条件相关的列。
  • 应用筛选:
    • 选择你的数据区域(包括列标题)。
    • 在Excel的“开始”选项卡中,点击“筛选”按钮(通常显示为一个漏斗图标),或者在“数据”选项卡中选择“筛选”。
    • 在你想要筛选的列标题上的下拉箭头处点击,选择你想要的筛选条件。
  • 排序以找到最近日期:
    • 在筛选后的数据上,点击日期列中的任意一个单元格。
    • 接着,在Excel的“开始”选项卡中,点击“排序和筛选”部分中的“排序A到Z”或“排序Z到A”按钮,根据日期进行排序。如果你想找到最近的日期,就选择“排序Z到A”,这样最近的日期会排在最上面。
  • 查看结果:
    排序完成后,符合条件的最近日期的记录将会排在最上面,你可以很容易地找到它。

如果你想通过公式来自动找到符合条件的最近日期对应的行记录,你可以使用INDEX和MATCH函数结合MAXIFS(如果你的Excel版本支持动态数组功能)或者通过数组公式来实现。以下是一个基本的公式示例,假设你的日期在A列,你想找到满足某条件(例如B列中的值为“X”)的最近日期的行:
excel复制代码

=INDEX(A:A, MATCH(MAXIFS(A:A, B:B, "X"), A:A, 0))

这个公式会返回满足B列值为“X”的条件下,A列中最近的日期。如果你想返回该行的其他列信息,只需将INDEX函数的第一个参数改为相应的列即可。
请注意,MAXIFS函数在较新版本的Excel中可用(Excel 2019、Office 365等)。如果你使用的是旧版本的Excel,你可能需要使用数组公式或其他方法来达到同样的效果。
对于不支持MAXIFS的Excel版本,你可以使用以下数组公式(输入公式后需要按Ctrl+Shift+Enter而不是仅仅Enter来确认):
excel复制代码

=INDEX(A:A, MATCH(MAX(IF(B:B="X", A:A)), A:A, 0))

这个数组公式会执行相同的任务,但它在计算上可能更慢一些,并且需要在使用旧版Excel时特别注意。

成长作文网:http://www.sjzwndj.cn

成长作文网:http://www.sjzwndj.cn

TA的精华主题

TA的得分主题

发表于 2024-4-26 20:33 | 显示全部楼层
WPS里的JSA自定义函数练习一下——


微信截图_20240426203114.png


240426_求助1.rar

12.5 KB, 下载次数: 2

TA的精华主题

TA的得分主题

发表于 2024-4-26 21:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
参与一下,字典+数组

求助1.zip

18.56 KB, 下载次数: 2

TA的精华主题

TA的得分主题

发表于 2024-4-26 21:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. Sub 最近日期()
  2. Dim arr, rng, i, j, d, r
  3. Set d = CreateObject("scripting.dictionary")
  4. arr = Sheet1.UsedRange
  5. With Sheet1
  6.     r = .Cells(Rows.Count, 1).End(xlUp).Row
  7.     Set rng = .Range("a1:e" & r)
  8.     rng.Sort [e1], Header:=xlYes
  9.     rng.Sort [c1], Header:=xlYes
  10.     brr = rng.Value
  11.     .UsedRange = arr
  12. End With
  13. For i = 2 To UBound(brr)
  14.     s = brr(i, 3)
  15.     d(s) = i
  16. Next
  17. ReDim crr(1 To UBound(arr), 1 To 5)
  18. For Each k In d.keys
  19.     n = n + 1
  20.     For j = 1 To 5
  21.         crr(n, j) = brr(d(k), j)
  22.     Next
  23. Next
  24. Range("g2").Resize(1000, 5).ClearContents
  25. Range("g2").Resize(n, 5) = crr
  26. End Sub
复制代码
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-8 05:32 , Processed in 0.044870 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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