在日期范围内使用 SUMIF 大于/小于

问题描述 投票:0回答:1

我一直在制作 Excel 预算工作表,以帮助我了解每份薪水需要支付哪些账单。我每两周领一次工资。在第一栏中列出了当年的所有发薪日期。此付款清单由公式 =SEQUENCE(26,1,I2,14) 创建。

Bills Worksheet

A 至 F 列逐项列出每张账单。 A 列是帐单频率(每周、每两周、每月和每年),C 是帐单金额,D 是基于大致每月总额的计算,E 是到期日,F 是帐单是否支付一张信用卡。如果使用信用卡,我还有另一张表格,其中列出了信用卡每月付款并添加到最低应付金额中。

我遇到的问题是计算每月账单的 J 列。例如,查看第 2 行“租金”,账单到期日为每月 1 日。我想查看每个付款周期,并将租金金额(单元格 C2)添加到将包含在内的所有付款周期中。例如,2024 年 1 月 26 日(单元格 I4)- 2024 年 2 月 8 日(单元格 I5 -1)。如果适用,这将适用于所有付款期间的所有账单。

我的计算总结如下,以及迄今为止我完成的代码。当付款期的结束日期在数字上高于开始日期(即 1/12/2024 - 1/26/2026)时,此方法适用。但它不适用于以新月份结束的期间,即 1/26/2024 - 2/9/2024。

IF A:A = W (Weekly)
    SUM(SUMIFS(C:C, A:A, "=W", F:F, "<>X") * 2)
SUM C:C

- Plus -

IF A:A = B (Bi-weekly)
    SUMIFS(C:C, A:A, "=B", F:F, "<>X")
SUM C:C

- Plus -

IF A:A = M (Monthly)
    IF E:E as <day of month> >= I3
    and E:E as <day of month> < I4
    and F:F not X
SUM C:C 

- Plus -

IF A:A = Y (Yearly)
    SUMIFS(C:C, A:A, "=Y", E:E,">="&I3, E:E, "<"&I4, F:F, "<>X")
SUM C:C

J 列的完成代码(到目前为止):

=SUMIFS(C:C, A:A, "=W", F:F, "<>X")*2 + SUMIFS(C:C, A:A, "=B", F:F, "<>X") + SUMIFS(C:C, A:A, "=M", E:E,">="&DAY(I3), E:E, "<"&DAY(I4), F:F, "<>X") + SUMIFS(C:C, A:A, "=Y", E:E,">="&I3, E:E, "<"&I4, F:F, "<>X")

有谁知道在新月份的结束日期执行此操作的好方法吗?我喜欢在公式中完成此任务,而不是在 VBA 代码或宏中。

尝试使用不同的日期公式作为每月频率,包括

SUMIFS(D4, DATE(YEAR(I3), MONTH(I3), E:E), ">="&DATE(YEAR(I3), MONTH(I3), DAY(I3)), DATE(YEAR(I4), MONTH(I4), E:E), ">="&DATE(YEAR(I4), MONTH(I4), DAY(I4)))
excel excel-formula sumifs
1个回答
0
投票

我建议您在两周=周期间分为两个不同月份的情况下使用两个单独的 sumis,如下所示:

=IF(MONTH(I4)=MONTH(I3),
  SUMIFS(C$2:C$26,A$2:A$26,"M",E$2:E$26,">="&DAY(I3),E$2:E$26,"<"&DAY(I4),F$2:F$26,"<>"&"X"),
  SUMIFS(C$2:C$26,A$2:A$26,"M",E$2:E$26,">="&DAY(I3),F$2:F$26,"<>"&"X")+SUMIFS(C$2:C$26,A$2:A$26,"M",E$2:E$26,"<"&DAY(I4),F$2:F$26,"<>"&"X"))

这只做月份部分 - 我认为其余的应该没问题。

一些测试数据:

© www.soinside.com 2019 - 2024. All rights reserved.