You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何获取指定月份可用最后一天对应的数据值?

嘿,这个需求我之前也帮别人处理过,给你分享几个靠谱的实现方法,不管你用Excel还是Python都能轻松搞定:

方法一:Excel公式实现

首先要确保你的A列日期已经被Excel识别为日期格式(而不是纯文本),不然公式可能无法正常工作。

方案1:用LOOKUP + EOMONTH组合

这个方法直接定位目标月份的最后一天,然后匹配对应数值,简洁高效:

=LOOKUP(EOMONTH(DATE(2020,1,1),0),A:A,B:B)
  • DATE(2020,1,1):指定你要查询的年份和月份(这里是2020年1月)
  • EOMONTH(...,0):返回该月份的最后一天日期(这里会得到2020/1/28)
  • LOOKUP:在A列找到这个最后一天的日期,返回对应B列的数值

如果想动态调整年份和月份,可以把年份和月份放在单元格里(比如C1存年份,C2存月份),公式改成:

=LOOKUP(EOMONTH(DATE(C1,C2,1),0),A:A,B:B)

方案2:用MAXIFS + INDEX/MATCH组合

先筛选出目标月份的所有日期,找到其中最大的(也就是最后一天),再匹配对应数值:

=INDEX(B:B,MATCH(MAXIFS(A:A,A:A,">="&DATE(2020,1,1),A:A,"<="&EOMONTH(DATE(2020,1,1),0)),A:A,0))
  • MAXIFS:筛选出2020年1月范围内的最大日期
  • MATCH:找到这个日期在A列的位置
  • INDEX:根据位置返回B列对应的数值
方法二:Python Pandas实现

如果用代码处理数据,Pandas是个非常方便的工具:

import pandas as pd

# 构造你的数据
data = {'A': ['01/01/2020', '28/01/2020', '03/02/2020', '04/03/2020'],
        'B': [10, 20, 30, 40]}
df = pd.DataFrame(data)

# 把A列的字符串转成日期格式(注意这里是日/月/年的格式)
df['A'] = pd.to_datetime(df['A'], format='%d/%m/%Y')

# 筛选出目标月份(这里是1月)的行,取最后一行的B值
target_month = 1
result = df[df['A'].dt.month == target_month].iloc[-1]['B']
print(result)  # 输出结果:20

这个方法适合批量处理大量数据,调整target_month就能快速切换查询的月份。

内容的提问来源于stack exchange,提问作者Marcello Impastato

火山引擎 最新活动