【EXCEL】按天計算,分攤到每年的費用金額,只用內置函數 無需編寫VB


先上說明:(為了便於區分嵌套的循環,外層使用 是-否,內層使用 yes-no

1、判斷表頭年份大於開始時間或者表頭時間小於結束時間,直接填0
2、判斷表頭時間和開始時間是同一年:
是:判斷結束時間和開始時間是否是同一年?
  yes--》(結束時間-開始時間+1天)*每天費用
  no--》(年末-開始時間計算+1天)*每天費用
否:判斷表頭時間和結束時間是否同一年?
  yes--》(結束時間-當年的第一天+1天)*每天費用
  no--》表頭當年天數*每天費用

再上代碼:

第一種方法,使用內置DAYS()計算天數  對於WPS不友好,不兼容WPS

=

IF(
  OR(VALUE(LEFT(G$2,4))<YEAR($B3),VALUE(LEFT(G$2,4))>YEAR($C3)),
  0,
  IF(
    YEAR($B3)=VALUE(LEFT(G$2,4)),
    IF(
      YEAR($B3)=YEAR($C3),
      (DAYS($C3,$B3)+1)*$F3,
      (DAYS(TEXT(LEFT(G$2,4)&1231,"0-00-00"),$B3)+1)*$F3
    ),
    IF(
    YEAR($C3)=VALUE(LEFT(G$2,4)),
    (DAYS($C3,TEXT(LEFT(G$2,4)&"0101","0-00-00"))+1)*$F3,
    (DAYS(TEXT(VALUE(LEFT(G$2,4))&1231,"0-00-00"),TEXT(LEFT(G$2,4)&"0101","0-00-00"))+1)*$F3

    )
  )
)

 

第二種方法:日期直接相減,支持WPS

=IF(

  OR(VALUE(LEFT(G$2,4))<YEAR($B3),VALUE(LEFT(G$2,4))>YEAR($C3)),
  0,
  
  IF(
    YEAR($B3)=VALUE(LEFT(G$2,4)),
    IF(
      YEAR($B3)=YEAR($C3),
      ($C3-$B3+1)*$F3,
      (TEXT(LEFT(G$2,4)&1231,"0-00-00")-$B3+1)*$F3
    ),
    IF(
      YEAR($C3)=VALUE(LEFT(G$2,4)),
      ($C3-TEXT(LEFT(G$2,4)&"0101","0-00-00")+1)*$F3,
      (TEXT(VALUE(LEFT(G$2,4))&1231,"0-00-00")-TEXT(LEFT(G$2,4)&"0101","0-00-00")+1)*$F3)
    )
)

注意幾點:

1、注意單元格部分根據自己需求調整 主要是開始時間、結束時間、日均費用以及標題時間

2、表格中的表頭是帶有“年”字的所以需要進行截取

3、注意修改單元格格式,小數點位數根據需要修改。

 

表格內容:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM