標題:
[發問]
如何計算當月到指定某月份的期數值
[打印本頁]
作者:
jackson7015
時間:
2013-12-16 16:47
標題:
如何計算當月到指定某月份的期數值
本帖最後由 jackson7015 於 2013-12-16 16:51 編輯
1.假設我要計算
今日
到
104/11/25
的
期數
(每個月算1期)
那以下的公式要如何精簡,或更有效率?
A1:104/11/25
B1=((12-MONTH(TODAY()))+1)+(12*(LEFT(A1,3)-(LEFT(TODAY(),3)-314)-1))+MID(A1,5,2)
ps.當月份也需算進去
2.承上,假設分成只計算單月份或者雙月份的部分
若C1顯示
單月
或
雙月
,則計算該單雙月期數
該如何編寫 ?
ps.當月份也須併入單雙月計算
謝謝~:)
作者:
p212
時間:
2013-12-16 17:20
本帖最後由 p212 於 2013-12-16 17:29 編輯
回復
1#
jackson7015
參與討論「計算今日到104/11/25的期數(每個月算1期)」之另一種算法:
B1=
ROUNDUP(
YEARFRAC(
TODAY(),DATE(LEFT(A1,3)+1911,MID(A1,5,2),RIGHT(A1,2)),0
)
*12
,0)
使用YEARFRAC函數可精準地計算兩個日期相差多少年(計算至小數位)
請參考!
作者:
jackson7015
時間:
2013-12-18 08:33
回復
2#
p212
感謝P大的協助
的確可以使用YEARFRAC來精細計算
目前計算奇數或偶數月份的時候,有些問題
以下是改正後的計算列
B1=IF(OR(AND(LEFT(C1)="雙",ISODD(MONTH(TODAY()))),AND(LEFT(C1)="單",ISEVEN(MONTH(TODAY())))),IF(LEN(A1)>0,ROUNDUP(YEARFRAC(TODAY(),DATE(LEFT(A1,3)+1911,MID(A1,5,2),RIGHT(A1,2)),0)*12,0),"")-1,IF(LEN(A1)>0,ROUNDUP(YEARFRAC(TODAY(),DATE(LEFT(A1,3)+1911,MID(A1,5,2),RIGHT(A1,2)),0)*12,0),""))
但是會有錯誤,因為若是計算後期月份數,無法只計算奇數或偶數月份的加總
不曉得是否也是利用ISODD和ISEVEN來做計算 ?
作者:
jackson7015
時間:
2013-12-24 16:48
新增範例檔案
[attach]17103[/attach]
作者:
jackson7015
時間:
2013-12-27 08:47
想了2.3天,也搜尋過站上一般區的相關寫法
還是想不出該怎麼編寫
不曉得是否有大大能幫忙 ?
謝謝
作者:
softsadwind
時間:
2013-12-27 11:41
本帖最後由 softsadwind 於 2013-12-27 11:43 編輯
回復
5#
jackson7015
[attach]17132[/attach]
我把你的日期格式重新輸入一次,改變格式成為日期,用中華民國曆顯示出來
[attach]17131[/attach]
參考看看.....
[attach]17133[/attach]
作者:
softsadwind
時間:
2013-12-27 12:04
回復
6#
softsadwind
E3 = DATE(YEAR(D3),MONTH(D3)+(F3-1),25)
E3改這樣子比較簡單@@ 他自動會把超過12個月換成年份...
兩個月一期的公司又不一樣
E13 =DATE(YEAR(D13),MONTH(D13)+2*F13-2,25)
作者:
jackson7015
時間:
2013-12-27 16:01
回復
6#
softsadwind
回復
7#
softsadwind
非常感謝softsadwind大大的幫忙解惑
原來可以直接使用DATEDIF直接來做月份的加減判斷
而且還間接地幫忙做了期數倒推的截止日部分(原本已KEYIN)
現在反而還可以做檢算
自己也利用特殊單雙月計算部分的地方做了LEN的判斷
原本要以LEFT做單/雙判斷,不過用LEN比較快捷點
感謝大大的協助~:loveliness:
作者:
softsadwind
時間:
2013-12-27 16:27
用是不是文字格式 來判斷用那一個公式
G3=IF(ISTEXT(B3),IF(A$2<E3,IF(A$2<D3,F3,IF(DAY(A$2)=DAY(D3),INT((DATEDIF(A$2+1,E3,"M")+2)/2),INT((DATEDIF(A$2,E3,"M")+2)/2))),"0"),IF(A$2<E3,IF(A$2<D3,F3,IF(DAY(A$2)=DAY(D3),DATEDIF(A$2,E3,"M"),DATEDIF(A$2,E3,"M")+1)),"0"))
參考看看
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)