我正在尝试比较截至今日4年的同一天和当月(例如2016年6月6日,2015年,2014年等)的措施。 对于每一年,我决定计算自年初以来的天数,并将我的价值加到每年的天数中。
为了确定日期是否应该包括在年初至今的比较中,我使用了我的日期在单元格A1中的公式:
=IF((A1-DATE(YEAR(A1),1,1)+1)<=(TODAY()-DATE(YEAR(TODAY()),1,1)+1),1,0)
我正在寻找解决闰年增加的额外日子问题的方法。换句话说,在2月28日之后,在闰年中,日计数将总是减少一个,并且在非闰年中尝试使用第29个月将返回错误。
我想调整这个公式,但我愿意使用不同的功能&amp;公式,如果它得到我正确的结果。
答案 0 :(得分:0)
假设这样的表结构:
A:Date | B:Value
----------------------
01/01/2016 | 0
01/01/2015 | 1
01/01/2014 | 2
01/01/2013 | 3
01/01/2012 | 4
To - 例如 - 计算1月1日(今天是2016年1月1日)前四年(不包括当前年)的平均值:
=SUMPRODUCT(
(MONTH(A:A)=MONTH(compare))*
(DAY(A:A)=DAY(compare))*
(YEAR(A:A)>YEAR(compare)-5)*
(YEAR(A:A)<YEAR(compare))*
(B:B)
) / (
SUMPRODUCT(
(MONTH(A:A)=MONTH(compare))*
(DAY(A:A)=DAY(compare))*
(YEAR(A:A)>YEAR(compare)-5)*
(YEAR(A:A)<YEAR(compare))*
1
)
)
对于上面的例子,结果是2.5
仅选择代表相同月份和日期的行:
(MONTH(A:A)=MONTH(compare))*(DAY(A:A)=DAY(compare))
仅选择前4年的值(不包括当前值):
(YEAR(A:A)>YEAR(compare)-5)*(YEAR(A:A)<YEAR(compare))*
我们感兴趣的实际值:
(B:B)
过去四年的平均值除以4。这假设没有丢失的数据可能是一个问题。您可以使用另一个SUMPRODUCT(将B:B替换为1)来计算结果行数并除以该数字来处理这种情况。这似乎相当慢,但它确实有效。
出于性能原因,您不应在公式中使用A:A(完整列),只需使用您需要的实际范围,这可能会更快。
答案 1 :(得分:0)
您可以查看2月29日的任何信息。如果发生错误,您就知道它没有闰年。使用=IFERROR(;)
抓住该错误。