Excel技术咨询:如何自动计算指定时间段的每日价格总和
解决Excel指定时间段总费用自动计算的方案
Hi John, 针对你要自动计算指定时间段总费用的需求,我整理了两种贴合你场景的实用方案,完全符合你“仅依据每日价格计算”的要求:
场景1:表格为每日一行的日期+价格数据
如果你的Excel表格是按日期逐行记录(比如每行对应一个日期和当日价格),那用SUMIFS函数就能一步到位:
假设你的表格结构如下:
- A列:存储每日日期(例如A2=2024/6/10,A3=2024/6/11,以此类推)
- B列:存储对应日期的每日价格(例如B2=50,B3=50,B4至B16=58等)
- D1单元格:输入指定时间段的开始日期(如2024/6/10)
- E1单元格:输入指定时间段的结束日期(如2024/7/15)
直接在目标单元格输入以下公式:
=SUMIFS(B:B, A:A, ">="&D1, A:A, "<="&E1)
这个公式会自动筛选出D1到E1区间内的所有日期,把对应的每日价格全部加总,结果就是你要的2289€。
小提醒:
- 确保A列的日期是Excel可识别的日期格式(不是纯文本),否则公式无法正确匹配
- B列的价格建议设置为数值格式,如果需要显示€符号,直接把单元格格式设为货币格式即可,不用手动输入符号影响计算
场景2:表格为时间段分组的批量价格数据
如果你的表格是按时间段批量记录(比如一行对应一个价格生效的时间区间),那可以用SUMPRODUCT计算每个时间段与指定区间的重叠天数,再乘以对应价格求和:
假设你的表格结构如下:
- A列:时间段开始日期
- B列:时间段结束日期
- C列:该时间段的每日价格
- D1:指定开始日期,E1:指定结束日期
使用以下公式:
=SUMPRODUCT((A:A<>"")*(MAX(0, MIN(B:B, E1) - MAX(A:A, D1) + 1))*C:C)
公式逻辑拆解:
MAX(A:A, D1):取当前时间段开始日期和指定开始日期的较晚值,确定重叠区间的起始点MIN(B:B, E1):取当前时间段结束日期和指定结束日期的较早值,确定重叠区间的结束点MAX(0, ... +1):计算重叠天数(如果两个区间无重叠则返回0,避免出现负数)- 最后乘以对应价格,用
SUMPRODUCT汇总所有时间段的费用
两种方案都能自动适配你输入的任意时间段,无需手动分段计算,完全满足你的需求~
内容的提问来源于stack exchange,提问作者John_maddon
相关产品推荐
相关产品推荐

