单月预付费用摊销(IF + 日期区间)
测试用例
1
重置
提交
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
○ 就绪 请在高亮的目标单元格输入公式,然后点「提交」。
测试用例
1
重置
提交
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
○ 就绪 请在高亮的目标单元格输入公式,然后点「提交」。
题目
题目说明
B1 的预付费用自 B2 起分 B3 个月平均摊销。把 F2 所属月份的费用填进 Expense 单元格 D2,四舍五入到两位小数。
超出摊销区间就是 0——不是永远每月都提同样金额。
题目数据
用表格查看整份数据(可选中、可复制)
| A | B | D | F | |
|---|---|---|---|---|
| 1 | Prepaid total | 12000 | Expense for month | Month to report |
| 2 | Start | 2026-01-15 | 2026-03-15 | |
| 3 | Months | 12 |
知识点
区间是 [开始, 开始 + 月数):开始当月算在内,最后一个月的下个月不算。用 DATE(YEAR(开始), MONTH(开始)+月数, 1) 拼出结束日,可以避开 EDATE 对文本日期失效的问题,因为 DATE 用的是数字。
解题思路
答案写在 D2。
- 目标单元格是 D2
- 每月金额是总额 ÷ 月数
- 判断 F2 不早于开始、且早于结束
- 公式形状:=IF(AND(?, ?), ROUND(?, ?), ?)
函数指南
常见问题
怎么按月摊销预付费用?
每月金额 = 总额 / 月数,且只在区间内:日期 >= 开始 且 < 开始 + 月数。
为什么最后一个月算了两次?
区间两端都设成含头。改用「最后一个月的次月 1 日」作上界,就是 DATE(YEAR(开始), MONTH(开始)+月数, 1)。