在EXCEL中怎样把公历转换成农历

如:2006年11月8日
转换成:狗(丙戊)年九月十八
谢谢 bgjiang

不过这个要怎样才能实现呢?我写在EXCEL的代码编辑器里 可是还是用不起来。。。

在EXCEL中把公历转换成农历的方法及具体操作步骤如下,以WPS中EXCEL为例做演示。

1、在电脑中打开需要操作的EXCEL表格,如需要将A1的日期转成农历,如下图所示。



2、点击上方菜单栏中的开始选项,进入下一页面。



3、点击右侧的求和选项下拉菜单,选择“其他函数”选项,点击进入下一页面。



4、在弹出的对话框中将选择类型选为“文本”,选择函数选择“TEXT”,点击确定进入下一页面。



5、在弹出的对话框中的输入栏中分别输入要转换日期的位置和"[$-130000]YYYY-M-D",如下图所示,点击确定即完成设置。



6、这时在表格中就可以看到原先的日期已经转换成农历了,如下图所示。


温馨提示:内容为网友见解,仅供参考
第1个回答  2019-05-12

Excel小技巧

第2个回答  推荐于2017-10-02

用函数:=TEXT(阳历时间,"[$-130000]YYYY-M-D")

 

注:这个公式只适用于2010以后的版本,以前的版本不行,而且遇到闰年的时候月份可能会多一个月,即可可能出现13月的情况,这个情况要改回12月:

第3个回答  推荐于2017-09-24
Dim WeekName(7), MonthAdd(11), NongliData(99), TianGan(9), DiZhi(11), ShuXiang(11), DayName(30), MonName(12)
Dim curTime, curYear, curMonth, curDay, curWeekday
Dim GongliStr, WeekdayStr, NongliStr, NongliDayStr
Dim i, m, n, k, isEnd, bit, TheDate
Private Sub Form_Load()
'获取当前系统时间
curTime = Now()
'星期名
WeekName(0) = " * "
WeekName(1) = "星期日"
WeekName(2) = "星期一"
WeekName(3) = "星期二"
WeekName(4) = "星期三"
WeekName(5) = "星期四"
WeekName(6) = "星期五"
WeekName(7) = "星期六"
'天干名称
TianGan(0) = "甲"
TianGan(1) = "乙"
TianGan(2) = "丙"
TianGan(3) = "丁"
TianGan(4) = "戊"
TianGan(5) = "己"
TianGan(6) = "庚"
TianGan(7) = "辛"
TianGan(8) = "壬"
TianGan(9) = "癸"
'地支名称
DiZhi(0) = "子"
DiZhi(1) = "丑"
DiZhi(2) = "寅"
DiZhi(3) = "卯"
DiZhi(4) = "辰"
DiZhi(5) = "巳"
DiZhi(6) = "午"
DiZhi(7) = "未"
DiZhi(8) = "申"
DiZhi(9) = "酉"
DiZhi(10) = "戌"
DiZhi(11) = "亥"
'属相名称
ShuXiang(0) = "鼠"
ShuXiang(1) = "牛"
ShuXiang(2) = "虎"
ShuXiang(3) = "兔"
ShuXiang(4) = "龙"
ShuXiang(5) = "蛇"
ShuXiang(6) = "马"
ShuXiang(7) = "羊"
ShuXiang(8) = "猴"
ShuXiang(9) = "鸡"
ShuXiang(10) = "狗"
ShuXiang(11) = "猪"
'农历日期名
DayName(0) = "*"
DayName(1) = "初一"
DayName(2) = "初二"
DayName(3) = "初三"
DayName(4) = "初四"
DayName(5) = "初五"
DayName(6) = "初六"
DayName(7) = "初七"
DayName(8) = "初八"
DayName(9) = "初九"
DayName(10) = "初十"
DayName(11) = "十?quot;"
DayName(12) = "十二"
DayName(13) = "十三"
DayName(14) = "十四"
DayName(15) = "十五"
DayName(16) = "十六"
DayName(17) = "十七"
DayName(18) = "十八"
DayName(19) = "十九"
DayName(20) = "二十"
DayName(21) = "廿一"
DayName(22) = "廿二"
DayName(23) = "廿三"
DayName(24) = "廿四"
DayName(25) = "廿五"
DayName(26) = "廿六"
DayName(27) = "廿七"
DayName(28) = "廿八"
DayName(29) = "廿九"
DayName(30) = "三十"
'农历月份名
MonName(0) = "*"
MonName(1) = "正"
MonName(2) = "二"
MonName(3) = "三"
MonName(4) = "四"
MonName(5) = "五"
MonName(6) = "六"
MonName(7) = "七"
MonName(8) = "八"
MonName(9) = "九"
MonName(10) = "十"
MonName(11) = "十一"
MonName(12) = "腊"
'公历每月前面的天数
MonthAdd(0) = 0
MonthAdd(1) = 31
MonthAdd(2) = 59
MonthAdd(3) = 90
MonthAdd(4) = 120
MonthAdd(5) = 151
MonthAdd(6) = 181
MonthAdd(7) = 212
MonthAdd(8) = 243
MonthAdd(9) = 273
MonthAdd(10) = 304
MonthAdd(11) = 334
'农历数据
NongliData(0) = 2635
NongliData(1) = 333387
NongliData(2) = 1701
NongliData(3) = 1748
NongliData(4) = 267701
NongliData(5) = 694
NongliData(6) = 2391
NongliData(7) = 133423
NongliData(8) = 1175
NongliData(9) = 396438
NongliData(10) = 3402
NongliData(11) = 3749
NongliData(12) = 331177
NongliData(13) = 1453
NongliData(14) = 694
NongliData(15) = 201326
NongliData(16) = 2350
NongliData(17) = 465197
NongliData(18) = 3221
NongliData(19) = 3402
NongliData(20) = 400202
NongliData(21) = 2901
NongliData(22) = 1386
NongliData(23) = 267611
NongliData(24) = 605
NongliData(25) = 2349
NongliData(26) = 137515
NongliData(27) = 2709
NongliData(28) = 464533
NongliData(29) = 1738
NongliData(30) = 2901
NongliData(31) = 330421
NongliData(32) = 1242
NongliData(33) = 2651
NongliData(34) = 199255
NongliData(35) = 1323
NongliData(36) = 529706
NongliData(37) = 3733
NongliData(38) = 1706
NongliData(39) = 398762
NongliData(40) = 2741
NongliData(41) = 1206
NongliData(42) = 267438
NongliData(43) = 2647
NongliData(44) = 1318
NongliData(45) = 204070
NongliData(46) = 3477
NongliData(47) = 461653
NongliData(48) = 1386
NongliData(49) = 2413
NongliData(50) = 330077
NongliData(51) = 1197
NongliData(52) = 2637
NongliData(53) = 268877
NongliData(54) = 3365
NongliData(55) = 531109
NongliData(56) = 2900
NongliData(57) = 2922
NongliData(58) = 398042
NongliData(59) = 2395
NongliData(60) = 1179
NongliData(61) = 267415
NongliData(62) = 2635
NongliData(63) = 661067
NongliData(64) = 1701
NongliData(65) = 1748
NongliData(66) = 398772
NongliData(67) = 2742
NongliData(68) = 2391
NongliData(69) = 330031
NongliData(70) = 1175
NongliData(71) = 1611
NongliData(72) = 200010
NongliData(73) = 3749
NongliData(74) = 527717
NongliData(75) = 1452
NongliData(76) = 2742
NongliData(77) = 332397
NongliData(78) = 2350
NongliData(79) = 3222
NongliData(80) = 268949
NongliData(81) = 3402
NongliData(82) = 3493
NongliData(83) = 133973
NongliData(84) = 1386
NongliData(85) = 464219
NongliData(86) = 605
NongliData(87) = 2349
NongliData(88) = 334123
NongliData(89) = 2709
NongliData(90) = 2890
NongliData(91) = 267946
NongliData(92) = 2773
NongliData(93) = 592565
NongliData(94) = 1210
NongliData(95) = 2651
NongliData(96) = 395863
NongliData(97) = 1323
NongliData(98) = 2707
NongliData(99) = 265877
'生成当前公历年、月、日 ==> GongliStr
curYear = Year(curTime)
curMonth = Month(curTime)
curDay = Day(curTime)
GongliStr = curYear & "年"
If (curMonth < 10) Then
GongliStr = GongliStr & "0" & curMonth & "月"
Else
GongliStr = GongliStr & curMonth & "月"
End If
If (curDay < 10) Then
GongliStr = GongliStr & "0" & curDay & "日"
Else
GongliStr = GongliStr & curDay & "日"
End If
'生成当前公历星期 ==> WeekdayStr
curWeekday = Weekday(curTime)
WeekdayStr = WeekName(curWeekday)
'计算到初始时间1921年2月8日的天数:1921-2-8(正月初一)
TheDate = (curYear - 1921) * 365 + Int((curYear - 1921) / 4) + curDay + MonthAdd(curMonth - 1) - 38
If ((curYear Mod 4) = 0 And curMonth > 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 <= 29 + bit) Then
isEnd = 1
Exit Do
End If
TheDate = TheDate - 29 - bit
n = n - 1
Loop
If (isEnd = 1) Then
Exit Do
End If
m = m + 1
Loop
curYear = 1921 + m
curMonth = k - n + 1
curDay = TheDate
If (k = 12) Then
If (curMonth = (Int(NongliData(m) / 65536) + 1)) Then
curMonth = 1 - curMonth
ElseIf (curMonth > (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)
MsgBox NongliStr & NongliDayStr
End Sub
参考资料:http://www.wangchao.net.cn/bbsshowlist.jsp?area_id=02&board_id=01&parent_id=23361

参考资料:http://zhidao.baidu.com/question/4296846.html?si=2

本回答被提问者采纳
第4个回答  2019-10-10
这个需要用VBA才能解决的

excel公历转农历的四种方法分别通过excel内置函数和自定义函数完成公历...
excel公历转农历方法一:使用text函数 A列是公历日期,我们在B1单元格输入公式:=TEXT(A1,"[$-130000]yyyy年m月"&IF(LEN(--TEXT(A1,"[$-130000]dd"))=1,"初","")&"d"),下拉完成公历转农历。 excel公历转农历方法二:使用text+MID函数 A列仍然是公历,B1输入公式:=MID("甲乙丙丁戊己庚辛壬癸",MOD(...

如何在Excel中公历转农历
一步:双击需要操作的Excel表格,点击需要编辑的单元格:第二步:在农历一栏中,输入=text(需要编辑的单元格,”[$-130000]yyyy-m-d”)(均在英文输入法下进行),然后点击确定:第三步:即可看到效果变化,也可进行自动填充:本教程适用版本:WPS Office 2019 PC版  

excel中阳历日期如何转换成阴历日期?
1. 使用Excel的文本函数:Excel中的一些文本函数,如VLOOKUP、INDEX、MATCH等,可以结合预先设置的农历数据表,实现日期的转换。具体操作是,先创建一个包含阳历日期和对应阴历日期的数据表,然后使用这些文本函数查找并匹配数据。但这种方法需要手动创建数据表,且随着日历的变化,每年的阴历日期都会有所不同...

excel中如何将公历农历转换
打开excel表格进入页面,选中任意一个空白单元格,切换到公式选项栏,单击插入函数 弹出窗口,将类别设置为文本,选择函数为TEXT,点击确定 在Value栏输入需要转换的公历所在单元格,在Format_text栏输入"[$-130000]YYYY-M-D",单击确定即可 以上就是Excel公历与农历的转换方法内容,希望对大家有...

excel怎么设置农历?公历日期转农历日期~
在Excel中设置农历日期,可以使用TEXT函数将公历日期转换为农历日期。TEXT函数格式为:TEXT(value, format_text),value表示需要格式化的数值、日期或时间,format_text表示要应用的格式。将公历日期输入Excel的A列,B列单元格输入公式:=TEXT(A2,"[$-130000]yyyy-m-d"),下拉或双击填充公式,得到农历...

Excel公历转农历的方法
在确定同事生日日期时,若对方使用农历,需将公历日期转换成农历。转换方法分为两部分。对于不需考虑闰月的情况,公式简化为:=TEXT(A2,"[$-130000]yyyy-m-d"),或进一步调整为文字格式:TEXT(A2,"[$-130000][DBNum1]m月d日")。若涉及闰月判断,需考虑到农历2023年有十三个月,闰月的存在导致...

excel表格日期怎么变成农历?
1、打开需要操作的excel表格,在A1单元格输入如下函数:“=TEXT(NOW(),"[$-130000]YYYY-M-D")”。2、单元格中可以观察到出现了一个日期:农历日期为六月初一。3、如果要将农历形式完全显示出来,就可以输入下列公式:=MID(" 甲乙丙丁戊己庚辛壬癸",MOD(TEXT(NOW(),"[$-130000]e")-4,10)...

excel快速生成日历农历excel快速生成日历农历日期
1.首先,打开需要转化为农历日期的excel表格。2.接着,在农历日期下方的空白表格中输入=,然后输入TEXT公式。3.接着,根据公历日期所在的单元格输入大写英文字母,注意这些输入都要切换为英文输入法。4.可以参照输入,如果无法显示请检查一下自己的输入法是否错误。5、输入完成之后,点击Enter键就可以转化为农历...

在excel中如何将公历日期转成农历日期?
1、在电脑中打开需要操作的EXCEL表格,如需要将A1的日期转成农历,如下图所示。2、点击上方菜单栏中的开始选项,进入下一页面。3、点击右侧的求和选项下拉菜单,选择“其他函数”选项,点击进入下一页面。4、在弹出的对话框中将选择类型选为“文本”,选择函数选择“TEXT”,点击确定进入下一页面。5、...

怎么把日期改为农历
1、首先,在自己电脑上打开excel表格,然后可以看到现在的日期都是精确的,现在开始改成月。2、选中需要改变的日期下所有单元格,然后鼠标右键点击。3、在弹出来的设置单元格格式中,选择数字选项,然后在选择自定义选项。4、在自定义选项中直接输入m月份即可。5、然后就可以看到日期直接变成相应的月份了。

相似回答