Excel實現公歷農歷轉換的三種方法


【導讀】:

有時候我們在輸入日期數據的時候,往往需要輸入農歷的日期,但已經輸入的日期是公歷的日期,那么該怎么轉換呢?

接下來我們將為大家如何利用excel函數進行將公歷日期轉化為農歷日期!

 

一、簡單版

下表中B2單元格就是第一種情況,“2016-9-17”表示農歷是九月十七日。

該公式是:=TEXT(A2,"[\$-130000]YYYY-M-D")。TEXT()用來轉化文本格式,這個公式的關鍵是:[\$-130000],它是Excel中陽歷轉化農歷的參數,不過它存在一個問題就是沒法計算閏月,估計老外無法理解中國人閏月的概念,凡是閏年,它直接表示一年13個月,道理是一樣的。

  

二、進階版(中文呈現)

上表C2單元格,相比較B2單元格呈現就有了進階,以中文呈現,並且以天干地支表現年份。

公式相對之前肯定復雜:

=MID(" 甲乙丙丁戊己庚辛壬癸",MOD(TEXT(A2,"[\$-130000]e")-4,10)+1,1)&MID("子丑寅卯辰巳午未申酉 戌亥",MOD(TEXT(A2,"[\$-130000]e")-4,12)+1,1)&"年"&TEXT(A2," [\$-130000][DBNum1]m月d日")

 

我們可以分解為兩大部分:

1)計算年份:MID(" 甲乙丙丁戊己庚辛壬癸

",MOD(TEXT(A2,"[\$-130000]e")-4,10)+1,1)&MID("子丑寅卯辰巳午未申酉 戌亥",MOD(TEXT(A2,"[\$-130000]e")-4,12)+1,1)&"年",這里加了MID()文本提取函數來獲取天干地支。

 

2)計算月日:TEXT(A2," [\$-130000][DBNum1]m月d日"),這里增加了參數[DBNum1],表示數值以“一、而二、三......”中文格式顯示。兩者組合一起的就是C列結果。

 

三、完美版

作為中國人,我們知道“一月”不叫“一月”,叫“正月”;“十二月”不叫“十二月”,叫“臘月”;同樣每月前10天,是初一、初二......20日開始是廿、廿一......30日是卅等等。如何更完美地呈現,在這里將進階版公式再度分解,加上判斷,然后再組合就實現了效果,公式:

=MID(" 甲乙丙丁戊己庚辛壬癸",MOD(TEXT(A2,"[\$-130000]e")-4,10)+1,1)&MID("子丑寅卯辰巳午未申酉 戌亥",MOD(TEXT(A2,"[\$-130000]e")-4,12)+1,1)&"年"&IF(TEXT(A2," [\$-130000]m")*1=12," 臘",IF(TEXT(A2," [\$-130000]m")*1=1," 正",TEXT(A2," [\$-130000][DBNum1]m")))&"月"&IF(TEXT(A2," [\$-130000]d")-9<=1,"初",IF(TEXT(A2," [\$-130000]d")-29>=1,"卅",IF(TEXT(A2," [\$-130000]d")-19>=1,"廿","十")))&IF(RIGHT(TEXT(A2," [\$-130000]d"),1)*1=0,"",TEXT(RIGHT(TEXT(A2," [\$-130000]d"),1)*1,"[DBNum1]d"))&"日"

 

1)年份公式:MID(" 甲乙丙丁戊己庚辛壬癸",MOD(TEXT(A2,"[\$-130000]e")-4,10)+1,1)&MID("子丑寅卯辰巳午未申酉 戌亥",MOD(TEXT(A2,"[\$-130000]e")-4,12)+1,1)&"年"

 

2)月份公式:IF(TEXT(A2," [\$-130000]m")*1=12," 臘",IF(TEXT(A2," [\$-130000]m")*1=1," 正",TEXT(A2," [\$-130000][DBNum1]m")))&"月"3)日期公式:IF(TEXT(A2," [\$-130000]d")-9<=1,"初",IF(TEXT(A2," [\$-130000]d")-29>=1,"卅",IF(TEXT(A2," [\$-130000]d")-19>=1,"廿","十")))&IF(RIGHT(TEXT(A2," [\$-130000]d"),1)*1=0,"",TEXT(RIGHT(TEXT(A2," [\$-130000]d"),1)*1,"[DBNum1]d"))&"日"

 

  

這樣的結果是符合我們中國人的習慣的,有興趣的朋友可以試試。

 

 

出處:http://www.officedoyen.com/a/excelyingyong/2018/0303/16544.html


免責聲明!

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



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