excel农历?在农历的单元格中填入一下函数公式。=TEXT(A2,[-130000]yyyy-m-d)当中A2表示要转换的公历单元格,yyyy-m-d表示转换日期的格式,而[-130000]就是农历转换的关键。最后回车然后填充即可。若你认为这个农历的格式不好看,那么,excel农历?一起来了解一下吧。
最近小编陆续收到很多关于excel公式操作的提问,于是乎索性把和excel公式相关的操作来一次大整理,好像你在网上还查不到这么全的,嘿嘿!
1批量输入公式
选取要输入的区域,在编辑栏中输入公式,按CTRL+ENTER即可批量填充公式。
2批量修改公式
如果是修改公式中的相同部分,可以直接用替换功能即可。
3快速查找公式
选取表格区域 - 按Ctrl+g打开定位窗口 - 定位条件 - 公式,即可选取表中所有的公式
4显示公式部分计算结果
选取公式中的要显示的部分表达式,按F9键
按F9键后的结果
5保护公式
选取非公式的填写区域,取消单元格锁定。公式区域不必操作。
设置单元格格式后,还需要保护工作表:审阅 - 保护工作表。
6隐藏公式
隐藏公式和保护公式多了一步:选取公式所在单元格区域,设置单元格格式 - 保护 - 勾选“隐藏” - 保护工作表。
隐藏公式效果:
7显示所有公式
需要查看表中都设置了哪些公式时,你只需按alt+~组合键(或 公式选项卡 - 显示公式)
把公式转换为数物禅值
8把公式转换为数值
公式转换数值一般方法,复制 - 右键菜单上点123(值)
9显示另一个单元格的公式
如果想在B列显示A列的公式,可以通过定义名称来实现。
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
结合前人经验,站在巨人肩膀上做出来的版本。主要改善的有如下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(A2,"[$-130000]yyyy年m月"&IF(LEN(--TEXT(A2,"[$-130000]dd"))=1,"初","")&"d")
然乱告后同样虚陪孝回车填充即可。这样就能有几月初几的显示啦。
1、YYYY年MM月DD日转换
如果遇见2018年09月01日,这种日期,我们应该如何转换呢?
YYYY年MM月DD日转YYYYMMDD
公式:「=TEXT(A2,"yyyymmdd")」
YYY年MM月DD日转YYYY/MM/DD
公式:「=TEXT(A2,"yyyy/mm/dd")」
YYYY年MM月DD日转YYYY-MM-DD
公式:「=TEXT(A2,"yyyy-mm-dd")」
YYYY年MM月DD日转YYYY.MM.DD
公式:「=TEXT(A2,"yyyy.mm.dd")」
YYYY年MM月DD日转YYYYMD
公式:「=TEXT(A2,"yyyy.m.d")」
说明:
TEXT:意思是将数值转换为按指定数字格式表示的文本。
yyyymmdd:表示年月日。
2、YYYY/MM/DD转换
如果你的日期是这样的:2018/09/01,该怎么转换成其他样式呢?其实,与第一种谨凯是一样的方法,所以在此,我就不多高晌芦重复了。
3、YYYYMMDD转换
如果输入的日期是20180901,这种类型。转换方法:
YYYYMMDD转YYYY年MM月DD日
公式:「=MID(A2,1,4)&"年"&MID(A2,5,2)&"月"&MID(A2,7,2)&"日"」
YYYYMMDD转YYYY-MM-DD
公式:「=MID(A2,1,4)&"-"&MID(A2,5,2)&"-"&MID(A2,7,2)」
YYYYMMDD转YYYY.MM.DD
公式:「=MID(A2,1,4)&"."&MID(A2,5,2)&"."&MID(A2,7,2)」
说明:
MID(A2,1,4):获取从第一个开始后4位。
以上就是excel农历的全部内容,Excel 农历转公历 比如要查找的农历日期为今年的“三月十五”,那就先将A列的格式从“常规”改为“文本”,将B列的格式从“常规”改为“日期”,然后在A2单元格内输入【2022-3-15】。