You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用DAYS()函数拆分拨款金额时存在1天误差的技术问题

按年份拆分拨款金额时的1天误差问题

我制作了一个使用DAYS()函数按年份拆分拨款金额的电子表格,但随机出现1天误差——即使添加额外天数也无法解决。

下方表格中,测试总计不等于100000的行即为错误行:

起始日期结束日期拨款金额每日金额测试总计20212022202320242025202620272028
6/8/202111/6/202810000036.92762186115211000007644.0177252613478.581979313478.581979313478.581979313478.581979313478.581979313478.581979311484.4903988
04/05/202312/12/202810000048.12319538017321000000013041.38594817564.966313817564.966313817564.966313817564.966313816698.7487969
04/06/202412/13/2026100000101.936799184506100101.93679918500027522.935779837206.931702335372.06931700
04/20/202104/21/2023100000136.798905608755100136.79890560935020.519835849931.600547215184.678522600000
02/12/202303/12/2024100000253.807106598985100253.8071065990081979.695431518274.11167510000
02/12/202102/12/2022100000273.972602739726100273.9726027488493.150684911780.8219178000000
02/12/202402/12/2025100000273.224043715847100273.22404371600088524.590163911748.6338798000
01/01/202312/31/2023100000274.7252747252751000000010000000000

以下是我使用的公式(已保存为命名函数):

=IF(AND(YEAR(givendate) >= YEAR(startdate), YEAR(givendate) <= YEAR(enddate)), IF(YEAR(enddate) = YEAR(startdate), total, IF(YEAR(startdate) = YEAR(givendate), ((DAYS(givendate,startdate) + 1) * (total/ DAYS(enddate,startdate))), IF((YEAR(enddate) = YEAR(givendate)), (DAYS(enddate,(DATE(YEAR(givendate),1,1))) + 1) * (total/ DAYS(enddate,startdate)), 365 * (total/ DAYS(enddate,startdate))))),0)

我尝试在公式中加入TODAY()函数来解决该问题,修正了部分拨款的误差,但仍有其他拨款存在问题。

下方表格中,测试总计不等于100000的行即为错误行:

起始日期结束日期拨款金额每日金额测试总计20212022202320242025202620272028
6/8/202111/6/202810000036.927621861152199963.07237813897607.090103413478.581979313478.581979313478.581979313478.581979313478.581979313478.581979311484.4903988
04/05/202312/12/202810000048.12319538017321000000013041.38594817564.966313817564.966313817564.966313817564.966313816698.7487969
04/20/202104/21/2023100000136.798905608755100000.34883.720930249931.600547215184.678522600000
02/12/202303/12/2024100000253.807106598985100253.8071065990081979.695431518274.11167510000
02/12/202102/12/2022100000273.97260273972610000088219.178082211780.8219178000000
02/12/202402/12/2025100000273.224043715847100000.00088251.366120211748.6338798000
01/01/202312/31/2023100000274.7252747252751000000010000000000

以下是修改后的公式:

=IF(AND(YEAR(givendate) >= YEAR(startdate), YEAR(givendate) <= YEAR(enddate)), IF(YEAR(enddate) = YEAR(startdate), total, IF((YEAR(startdate) = YEAR(givendate)), (IF(YEAR(TODAY()) = YEAR(givendate), (DAYS(givendate,startdate) + 1) * (total/ DAYS(enddate,startdate)), DAYS(givendate,startdate) * (total/ DAYS(enddate,startdate)))), IF((YEAR(enddate) = YEAR(givendate)), (DAYS(enddate,(DATE(YEAR(givendate),1,1))) + 1) * (total/ DAYS(enddate,startdate)), 365 * (total/ DAYS(enddate,startdate))))),0)

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 22:47:02