
有了之前的基本資料後,便可以開始建立一個日曆表了。
Google Sheet本身內建西曆日期的功能。建立一個表格之後,第一行是表格的heading,第一列就是西曆的日期。A1是西曆日期這個heading,所以在A2先打上寫這個日記簿的第一日──2025年1月11日,之後A3就可以打上=A2+1,再直接用滑鼠按住A3的右下角向下拉,就可以把formula複製下去。
之後就利用YEAR(A2)、MONTH(A2)、DAY(A2)來抽出西曆的年、月、日,再用VLOOKUP來把年、月、日的阿拉伯數目字轉換成中文數目字。最後,再把中文數目字的年、月、日用&來組合成我想要的模樣。
=C3&"年"&E3&"月"&G3&"日"
陰曆日期也是先把日記簿的第一日──甲辰年十二月十二日,以甲子和阿拉伯數目字的方式打上。年份的操作是如果本行跟上一行的月份比較,本行的月份較大或相等於上行的月份,年份則相等於上一行的年份;否則,即如果本行的月份小於上一行的月份──由12月跳到1月,便會在六十甲子中找尋上一行年份在那一行,找到後再以+1去得出下一個干支的年份,好像甲辰是在第41行,到了正月,formula會自動把行數由41+1,即第42行的乙巳。如+1後等於61,便跳回1,因為甲子只有60個,數完第六十個癸亥之後,便會從回第一個甲子。
=if(I3>=I2,H2,index('干支'!$C$1:$C$60,if(match(H2,'干支'!$C$1:$C$60,0)+1=61,1,match(H2,'干支'!$C$1:$C$60,0)+1)))
月份的操作也跟年份大同小異,但formula會更簡單。如果本行日期比上一行日期大,則月份與上行月份相同,如果本行日期小於上一行日期──29日跳到1日,則上行月份+1;如+1後等於13,便跳回1,因為沒有13月。不過今年有閏月,暫時閏月也只能手動操作,還未想到如何可以靠formula來顯示閏月。
=if(K3>K2,I2,if(I2+1=13,1,I2+1))
陰曆日期有時有29日,有時有30日,我也不知道如何用formula來處理,所以這列資訊唯有靠手動來處理。
最後就和西曆一樣,以VLOOKUP()來將阿拉伯數目字轉換成中文數目字,再以formula把年、月、日組合就可以了。
=H3&"年"&J3&"月"&L3&"日"
19Please respect copyright.PENANACE2zONeRWr
英國:
二零二五年二月廿三日十七時
乙巳年正月廿六日酉時
乙巳年戊寅月癸亥日辛酉時
19Please respect copyright.PENANA092NyFzRzm
香港:
二零二五年二月廿四日一時
乙巳年正月廿七日丑時
乙巳年戊寅月甲子日乙丑時
ns 15.158.61.19da2