excel如何农历转换阳历公式(excel如何将阴历转换成阳历)

您所在的位置:网站首页 excel公历转农历公式 excel如何农历转换阳历公式(excel如何将阴历转换成阳历)

excel如何农历转换阳历公式(excel如何将阴历转换成阳历)

2024-02-08 16:18| 来源: 网络整理| 查看: 265

内容导航:excel如何农历转换阳历公式excel如何将阴历转换成阳历excel中如何能将日期由公历转换为农历一、excel如何农历转换阳历公式

Excel农历转公历公式,网上几乎搜不到,我自己花功夫还是慢慢摸索出来了,如图:

Excel 农历转公历

比如要查找的农历日期为今年的“三月十五”,那就先将A列的格式从“常规”改为“文本”,将B列的格式从“常规”改为“日期”,然后在A2单元格内输入【2022-3-15】,再在B2单元格内输入如下等式:

=IFERROR(SMALL(IF(TEXT(ROW(INDIRECT(DATE(LEFT(A2,4),1,1)&":"&DATE(LEFT(A2,4),12,31))),"[$-130000]YYYY-M-D")=A2,ROW(INDIRECT(DATE(LEFT(A2,4),1,1)&":"&DATE(LEFT(A2,4),12,31))),""),1),SMALL(IF(TEXT(ROW(INDIRECT(DATE(LEFT(A2,4)+1,1,1)&":"&DATE(LEFT(A2,4)+1,12,31))),"[$-130000]YYYY-M-D")=A2,ROW(INDIRECT(DATE(LEFT(A2,4)+1,1,1)&":"&DATE(LEFT(A2,4)+1,12,31))),""),1))

最后三键回车,Excel会自动计算后显示结果为【2022-4-15】,这个就是对应【2022-3-15】的公历日期。

望采纳。

二、excel如何将阴历转换成阳历

结合前人经验,站在巨人肩膀上做出来的版本。主要改善的有如下2点,其次对于公式都做了注解。

1. 农历每个月初一显示为相应的月份,比如六月初一,则显示为六月,符合一般日历上显示农历的习惯。2. 农历十号、二十号、及三十号分别显示为初十、二十、三十,二十一至二十九仍显示为廿一、廿二等,三十一也是卅一,修改了其他回答中“初一日”,“十五日”这样的显示方式,更符合习惯。

=IF(TEXT(A1,"[$-130000]d")="1",* 如果A1格农历日期为1号,则通过下述判断显示为农历月份。"[$-130000]”是用于换算农历,后缀d表示换算出农历日期,下一行中的后缀m则是表示农历月份。IF(TEXT(A1," [$-130000]m")*1-1=12,"腊",* 农历十二月显示为腊月,其中[$-130000]m")*1减去1是因为2020年为农历闰4月,不减去1的话,当年农历12月会显示为十三月。IF(TEXT(A1," [$-130000]m")*1=1," 正",* 农历一月显示为正月,此处不减一,因为农历一月尚不涉及闰月。IF(TEXT(A1," [$-130000]m")*1-1=10,"十",IF(TEXT(A1," [$-130000]m")*1-1=11,"十一",* 阿拉伯数字10及11转汉字会显示为“一十”和“一十一”这里10月和11月特别处理。TEXT(TEXT(A1," [$-130000]m")-1,"[DBNum1]"* 我是2020年8月开始做的日历,所以在解决闰四月这个问题的时候,采取了简单粗暴的办法,就是除了上述正月以外的月份统统都减去1来计算,而没有考虑2、3、4(闰)月份的问题。实际使用中,针对不同年份的农历闰月问题,可以在闰月前采用不减一的公式,即手工去掉上面所有的“-1”,而自闰月后采用减一的公式。因为Excel无法计算农历闰月,所以只能这样曲线救国了。)))))&"月",* 到这里为止,解决了农历初一显示为月份的问题。从第二行开始,也可以单独用于农历月份。

下面开始是解决农历初一以外的日期问题,同时为了解决上面列的第二点改善,也做了简单粗暴的设计。IF(TEXT(A1,"[$-130000]d")-9 2) Then TheDate = TheDate + 1 End If '计算农历天干、地支、月、日 isEnd = 0 m = 0 Do If (NongliData(m) < 4095) Then k = 11 Else k = 12 End If n = k Do If (n < 0) Then Exit Do End If '获取NongliData(m)的第n个二进制位的值 bit = NongliData(m) For i = 1 To n Step 1 bit = Int(bit / 2) Next bit = bit Mod 2 If (TheDate (Int(NongliData(m) / 65536) + 1)) Then curMonth = curMonth - 1 End If End If '生成农历天干、地支、属相 ==> NongliStr NongliStr = "农历" & TianGan(((curYear - 4) Mod 60) Mod 10) & DiZhi(((curYear - 4) Mod 60) Mod 12) & "年" NongliStr = NongliStr & "(" & ShuXiang(((curYear - 4) Mod 60) Mod 12) & ")" '生成农历月、日 ==> NongliDayStr If (curMonth < 1) Then NongliDayStr = "闰" & MonName(-1 * curMonth) Else NongliDayStr = MonName(curMonth) End If NongliDayStr = NongliDayStr & "月" NongliDayStr = NongliDayStr & DayName(curDay)

NongLi = NongliStr & NongliDayStr

End Function

希望能帮助你



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3