You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Excel中提取月末日期数据并获取每月最后一笔交易

解决Excel月末数据提取与每月最后一笔交易筛选问题

一、提取月末日期对应的数据

方法1:用筛选功能快速操作

选中日期列(比如你的B列),点击「数据」选项卡的「筛选」按钮,点击日期列的筛选箭头,选择「日期筛选」→「本月最后一天」,即可一键筛选出所有日期为月末当天的数据。

方法2:用函数批量提取

  • 如果你用的是Excel 365/2021(支持动态数组),直接用FILTER函数:
    =FILTER(B:C, B:B=EOMONTH(B:B, 0))
    
    这个公式会自动提取所有日期等于当月最后一天的整行数据。
  • 旧版本Excel可以加辅助列:在空白列(比如D列)输入=B2=EOMONTH(B2,0),下拉填充后,筛选D列为TRUE的行即可。

二、筛选每月最后一笔交易到F列

你之前用的=VLOOKUP(EDATE(E5, 0),B5:C19, 2)效果不好,是因为EDATE(E5,0)只是返回和E5同月同日的日期,既不是当月最后一天,也没法定位到该月最后一笔交易的实际日期(毕竟最后一笔交易不一定在月末当天)。下面给两个实用方案:

方案1:LOOKUP函数(全版本通用)

假设E列是要查询的月份(比如E5是2023/5/1这类任意当月日期),在F5输入:

=LOOKUP(1, 0/(TEXT(B:B,"yyyy-mm")=TEXT(E5,"yyyy-mm")), C:C)

原理:

  • TEXT(B:B,"yyyy-mm")=TEXT(E5,"yyyy-mm"):判断B列日期是否和E5同月份,返回一组TRUE/FALSE
  • 0/(...):把TRUE转成0,FALSE转成错误值
  • LOOKUP(1,0/...,C:C):会找到最后一个0对应的C列值,也就是该月最后一笔交易的数据

方案2:INDEX+MATCH组合(精准定位最后交易日期)

如果想先找到该月最晚的交易日期,再取对应C列数据,用这个公式:

=INDEX(C:C, MATCH(MAX(IF(TEXT(B:B,"yyyy-mm")=TEXT(E5,"yyyy-mm"), B:B)), B:B, 0))

注意:旧版Excel需要按Ctrl+Shift+Enter完成数组输入,Excel 365/2021直接回车就行。

补充:如果要提取月末当天的交易

如果你的需求是只取月末当天的交易(而非当月最后一笔),可以用VLOOKUP结合EOMONTH:

=VLOOKUP(EOMONTH(E5,0), B:C, 2, FALSE)

EOMONTH(E5,0)会返回E5所在月份的最后一天,VLOOKUP会匹配该日期对应的C列数据。如果当月有多个月末交易,VLOOKUP只返回第一个,要取最后一个的话用=LOOKUP(EOMONTH(E5,0), B:C)

内容的提问来源于stack exchange,提问作者Brandon Lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 23:22:29