Hàm Excel Chuyển Đổi Dương Lịch Âm Lịch
Có thể bạn quan tâm
BÀI XEM NHIỀU
- Cách Paste Trong Excel Khi Filter Nếu như khi bạn lọc hoặc ẩn hàng excel, mà bạn dán dữ liệu vào thì mặc định excel sẽ dán luôn dữ liệu vào những ô ẩn, vậy làm thể nào để ...
- Tự Động Kẻ Ô Khi Có Dữ Liệu Trong Excel Tiếp tục với công cụ Conditional Formatting trong excel, lần này mình sẽ hướng dẫn các bạn cách tự động kẻ ô khi có dữ liệu được nhập vào.
- Hướng Dẫn Sử Dụng Dấu Phân Cách Hàng Ngàn Trong Mail Merge Lúc trước mình có viết hướng dẫn mail merge trong word , nhưng lúc đó mình chỉ hướng dẫn cách làm, không đề cập đến một lỗi cơ bản nhất ai c...
- Ẩn Hiện Toàn Bộ Sheet Trong Excel Việc ẩn hoặc hiện một sheet trong excel chắc nhiều bạn đều biết rồi, nhưng ẩn toàn bộ hoặc hiện toàn bộ sheet 1 lúc thì chắc hẳn không ...
- Hướng Dẫn Hiện Thanh Cuộn Kéo Ngang Kéo Dọc Trong Excel Mặc định trong excel sẽ hiển thị thanh kéo ngang, kéo dọc hay còn gọi là thanh Scroll , nhưng vì một lý do nào đó mà bạn vô tình làm nó...
Chuyên Mục
Excel Cơ Bản (109) Excel Nâng Cao (61) VBA Excel (41) Word (38) Software (35) Hàm Excel (29) Văn Phòng (21) PDF (13) Powerpoint (13) Sheets (13) Tài Liệu (13) Power BI (8) Excel Ứng Dụng (5) Hàm Ngày Tháng Năm (5) Hàm Xử Lý Dữ Liệu (5) Affiliate (4) Hàm Thống Kê (4) Hàm Toán Học (4) Hàm Tìm Kiếm (4) Power Query (4) Hàm Luận Lý (3) Hàm Lấy Thông Tin (3) Python (3) Forms (1) Power Automate (1) THUTHUATEXCEL.COM - THỦ THUẬT EXCEL, THỦ THUẬT WORD, TIN HỌC VĂN PHÒNG Facebook THUTHUATEXCEL.COM - THỦ THUẬT EXCEL, THỦ THUẬT WORD, TIN HỌC VĂN PHÒNG 2019-10-15T15:48:00+07:00 2019-10-15T08:48:34Z Có rất nhiều ứng dụng lịch âm dương , nhưng bạn muốn xây dựng lịch âm dương bằng excel , sẽ có một vài viết hướng dẫn chi tiết sau, còn... Hàm Excel Chuyển Đổi Dương Lịch Âm Lịch Có rất nhiều ứng dụng lịch âm dương, nhưng bạn muốn xây dựng lịch âm dương bằng excel, sẽ có một vài viết hướng dẫn chi tiết sau, còn ở bài viết này sẽ hướng dẫn các bạn xây dựng hàm để chuyển đổi từ dương lịch sang âm lịch và ngược lại. Mặc định trong excel không có hàm để chuyển đổi từ dương lịch sang âm lịch và ngược lại, chúng ta sẽ xây dựng hàm tự tạo bằng VBA, đầu tiên các bạn mở file excel bất kỳ lên, sau đó nhấn phím tắt Alt + F11 để gọi chương trình VBA, sau đó vào Insert - Module Copy đoạn code bên dưới và dán vào khung soạn thảo Option Explicit Public Lday, Lmonth As Byte, Lyear As Integer, isLeap, LunarInfo 'Ho ngoc Duc, truongphu chú thích Sub lunar(d, m, y) Dim DiffADate, Counter, i, Temp, Leap ' tính sô ngày tù môc 1/31/1900 'ghi chú: d se Ðuoc xem nhu month DiffADate = DateDiff("d", #1/31/1900#, CDate(m & "-" & d & "-" & y)) Counter = -1 'ngày 31/1/1900 có DateDiff = 0 tuong úng ÂL là ngày 1 'nên counter = -1 vì ngày ÂL = DateDiff - counter Lyear = 1900 'nam bat Ðâu tính, Lyear là nam ÂL tuong Ðuong DL For i = Lyear To 2199 ' Ðêm trong 300 nam kê tiêp Temp = YearDays(i) 'goi Function YearDays nam Ðang Ðêm = sô ngày/nam Counter = Counter + Temp 'cong sô ngày dôn If Counter >= DiffADate Then 'nêu sô ngày dôn >= DiffADate Counter = Counter - Temp ' tru` sô ngày dôn 1 nam Ðang tính Exit For 'và thoát vòng lap, = Ðã có giá tri Lyear End If Lyear = Lyear + 1 'nam Ðang Ðêm thêm 1 don vi Next 'so' di phai tính nhu thê Ðê tìm chính xác nhung ngày cuôi nam ÂL mà Ðã sang nam mo'i DL 'trong truong hop nây, xem nhu vân nam cu Leap = LeapMonth(Lyear) ' goi hàm LeapMonth, tháng nhuân là tháng mây? isLeap = "" ' set giá tri xác Ðinh cua tháng nhuân = "" Lmonth = 1 For i = 1 To 12 If Leap > 0 And i = Leap + 1 And isLeap = "" Then isLeap = "(N)" 'nêu tháng nhuân có và I lo'n hon 1 thì Nhuân Lmonth = Lmonth - 1 'tháng lùi 1 i = i - 1 'Ðêm lùi 1 Temp = LeapDay(Lyear) ' goi hàm leapday, tính sô ngày nhuân Else Temp = MonthDays(Lyear, i) 'goi hàm monthdays tính sô ngày thuong End If If isLeap = "(N)" And i <> Leap Then isLeap = "" ' Nêu xác dinh Nhuân và I khác tháng nhuân thì Xác Ðinh không phai Nhuan Counter = Counter + Temp ' cong dôn ngày tù vi trí Exit For khi xác Ðinh Lyear If Counter >= DiffADate Then 'nêu sô ngày dôn >= DiffADate Counter = Counter - Temp ' tru` sô ngày dôn 1 tháng Ðang tính Exit For 'và thoát vòng lap, = Ðã có giá tri Lmonth End If Lmonth = Lmonth + 1 'tháng Ðang Ðêm thêm 1 don vi Next Lday = DiffADate - Counter 'Ngày Ðuoc xác Ðinh End Sub Function LeapMonth(y) '''''''''''' If y >= 1900 Then LeapMonth = LunarInfo(y - 1900) And &HF Else LeapMonth = 0 'Tháng nhuân = LunarInfo(nam Ðang chuyên) And &HF = ( tu 0 - 12) ngoài ra thì = 0 End Function Function LeapDay(y) '''''''''' If LunarInfo(y - 1900) And &HF Then 'nêu có tháng nhuân thì If LunarInfo(y - 1900) And &H10000 Then LeapDay = 30 Else LeapDay = 29 ' Nêu LunarInfo(nam Ðang chuyên) And &H10000 > 0 thì 30 không thì 29 ngày Else LeapDay = 0 End If End Function Function MonthDays(y, m) ''''''''''''''' Dim MonthMask MonthMask = Array(32768, 16384, 8192, 4096, 2048, 1024, 512, 256, 128, 64, 32, 16) ' Mang loc tháng(1-12) = MonthMask(0-11) ' Nêu LunarInfo(nam Ðang chuyên) And Mang loc tháng(tháng Ðang chuyên) > 0 thì 30 ngoài ra thì 29 If LunarInfo(y - 1900) And MonthMask(m - 1) Then MonthDays = 30 Else MonthDays = 29 End Function Function YearDays(y) ''''''''''''' Dim i, MonthMask MonthMask = Array(32768, 16384, 8192, 4096, 2048, 1024, 512, 256, 128, 64, 32, 16) YearDays = 348 '12 tháng x 29 ngày For i = 0 To 11 'tháng nào có 30 ngày thì thêm 1 If LunarInfo(y - 1900) And MonthMask(i) Then YearDays = YearDays + 1 Next YearDays = YearDays + LeapDay(y) ' cong thêm sô ngày nhuân nêu có End Function 'Ham so chuyen doi tu Duong lich sang Am lich dang ngay,thang,nam Public Function TransLu(d, m, y) Call Goi ' cau trúc cua hàm lunar là (d, m, y), VB6 dùng (m, d, y) nên function TransLu ' se doi vi tri câu trúc khi goi hàm lunar Call lunar(m, d, y) TransLu = Lday & "/" & Lmonth & isLeap & "/" & Lyear End Function 'Ham so chuyen doi tu Duong lich sang Am lich dang tu mot o Public Function TransLu1(NT As Date) ' NT = ngày tháng Call lunar(Day(NT), Month(NT), Year(NT)) 'goi hàm Lunar theo câu trúc nây ? ' Ðê nghi nhu' hàm TransLu làm: Call lunar(Month(NT), Day(NT), Year(NT)) 'TransLu1 = Lday & "-" & Lmonth & isLeap & "-" & CanchiV(Lyear - 0) 'Hàm CanchiV bi thiêu! End Function Public Function TransSolar(d, m, y) As Date 'Ngay thang nam am lich sang duong lich Dim iSd As Date iSd = DateSerial(y, m, d) - 70 Do iSd = iSd + 1 Loop Until TransLu(Day(iSd), Month(iSd), Year(iSd)) = d & "/" & m & "/" & y TransSolar = iSd End Function 'Cach su dung: Private Sub Command1_Click() If Days = "" Or Months = "" Or Years = "" Then Exit Sub NgayAL = TransLu(Days, Months, Years) End Sub Private Sub Command2_Click() If Years = "" Then Exit Sub ThangNhuan = LeapMonth(Years) End Sub Private Sub Command3_Click() If Years = "" Then Exit Sub SoNgayNhuan = LeapDay(Years) End Sub Private Sub Command4_Click() If Years = "" Or Months = "" Then Exit Sub SoNgayThangT = MonthDays(Years, Months) End Sub Private Sub Command5_Click() If Years = "" Then Exit Sub SoNgayNam = YearDays(Years) End Sub Sub Goi() 'Mang do HoNgocDuc tu xây dung, chu'a thông tin nam ÂL tu 1900-2199 'nam Ðó tháng mây nhuân? gôm mây ngày? Môi tháng còn lai có mây ngày? nam Ðó có mây ngày? LunarInfo = Array( _ &H3C4BD8, &H624AE0, &H4CA570, &H3854D5, &H5CD260, &H44D950, &H315554, &H5656A0, &H409AD0, &H2A55D2, &H504AE0, &H3AA5B6, &H60A4D0, &H48D250, &H33D255, &H58B540, &H42D6A0, &H2CADA2, &H5295B0, &H3F4977, _ &H644970, &H4CA4B0, &H36B4B5, &H5C6A50, &H466D40, &H2FAB54, &H562B60, &H409570, &H2C52F2, &H504970, &H3A6566, &H5ED4A0, &H48EA50, &H336A95, &H585AD0, &H442B60, &H2F86E3, &H5292E0, &H3DC8D7, &H62C950, _ &H4CD4A0, &H35D8A6, &H5AB550, &H4656A0, &H31A5B4, &H5625D0, &H4092D0, &H2AD2B2, &H50A950, &H38B557, &H5E6CA0, &H48B550, &H355355, &H584DA0, &H42A5B0, &H2F4573, &H5452B0, &H3CA9A8, &H60E950, &H4C6AA0, _ &H36AEA6, &H5AAB50, &H464B60, &H30AAE4, &H56A570, &H405260, &H28F263, &H4ED940, &H38DB47, &H5CD6A0, &H4896D0, &H344DD5, &H5A4AD0, &H42A4D0, &H2CD4B4, &H52B250, &H3CD558, &H60B540, &H4AB5A0, &H3755A6, _ &H5C95B0, &H4649B0, &H30A974, &H56A4B0, &H40AA50, &H29AA52, &H4E6D20, &H39AD47, &H5EAB60, &H489370, &H344AF5, &H5A4970, &H4464B0, &H2C74A3, &H50EA50, &H3D6A58, &H6256A0, &H4AAAD0, &H3696D5, &H5C92E0, _ &H46C960, &H2ED954, &H54D4A0, &H3EDA50, &H2A7552, &H4E56A0, &H38A7A7, &H5EA5D0, &H4A92B0, &H32AAB5, &H58A950, &H42B4A0, &H2CBAA4, &H50AD50, &H3C55D9, &H624BA0, &H4CA5B0, &H375176, &H5C5270, &H466930, _ &H307934, &H546AA0, &H3EAD50, &H2A5B52, &H504B60, &H38A6E6, &H5EA4E0, &H48D260, &H32EA65, &H56D520, &H40DAA0, &H2D56A3, &H5256D0, &H3C4AFB, &H6249D0, &H4CA4D0, &H37D0B6, &H5AB250, &H44B520, &H2EDD25, _ &H54B5A0, &H3E55D0, &H2A55B2, &H5049B0, &H3AA577, &H5EA4B0, &H48AA50, &H33B255, &H586D20, &H40AD60, &H2D4B63, &H525370, &H3E49E8, &H60C970, &H4C54B0, &H3768A6, &H5ADA50, &H445AA0, &H2FA6A4, &H54AAD0, _ &H4052E0, &H28D2E3, &H4EC950, &H38D557, &H5ED4A0, &H46D950, &H325D55, &H5856A0, &H42A6D0, &H2C55D4, &H5252B0, &H3CA9B8, &H62A930, &H4AB490, &H34B6A6, &H5AAD50, &H4655A0, &H2EAB64, &H54A570, &H4052B0, _ &H2AB173, &H4E6930, &H386B37, &H5E6AA0, &H48AD50, &H332AD5, &H582B60, &H42A570, &H2E52E4, &H50D160, &H3AE958, &H60D520, &H4ADA90, &H355AA6, &H5A56D0, &H462AE0, &H30A9D4, &H54A2D0, &H3ED150, &H28E952, _ &H4EB520, &H38D727, &H5EADA0, &H4A55B0, &H362DB5, &H5A45B0, &H44A2B0, &H2EB2B4, &H54A950, &H3CB559, &H626B20, &H4CAD50, &H385766, &H5C5370, &H484570, &H326574, &H5852B0, &H406950, &H2A7953, &H505AA0, _ &H3BAAA7, &H5EA6D0, &H4A4AE0, &H35A2E5, &H5AA550, &H42D2A0, &H2DE2A4, &H52D550, &H3E5ABB, &H6256A0, &H4C96D0, &H3949B6, &H5E4AB0, &H46A8D0, &H30D4B5, &H56B290, &H40B550, &H2A6D52, &H504DA0, &H3B9567, _ &H609570, &H4A49B0, &H34A975, &H5A64B0, &H446A90, &H2CBA94, &H526B50, &H3E2B60, &H28AB61, &H4C9570, &H384AE6, &H5CD160, &H46E4A0, &H2EED25, &H54DA90, &H405B50, &H2C36D3, &H502AE0, &H3A93D7, &H6092D0, _ &H4AC950, &H32D556, &H58B4A0, &H42B690, &H2E5D94, &H5255B0, &H3E25FA, &H6425B0, &H4E92B0, &H36AAB6, &H5C6950, &H4674A0, &H31B2A5, &H54AD50, &H4055A0, &H2AAB73, &H522570, &H3A5377, &H6052B0, &H4A6950, _ &H346D56, &H585AA0, &H42AB50, &H2E56D4, &H544AE0, &H3CA570, &H2864D2, &H4CD260, &H36EAA6, &H5AD550, &H465AA0, &H30ADA5, &H5695D0, &H404AD0, &H2AA9B3, &H50A4D0, &H3AD2B7, &H5EB250, &H48B540, &H33D556) '' /* Years 2100-2199 */ End Sub Như hình Quay trở lại file excel của bạn, bây giờ chúng ta sẽ chuyển ngày tháng từ dương lịch sang âm lịch và ngược lại.1. Chuyển Ngày Tháng Từ Dương Lịch Sang Âm Lịch.
Để chuyển ngày tháng từ dương lịch sang âm lịch các bạn sử dụng hàm translu trong excel với cú pháp như sau: =Translu(DAY(B2);MONTH(B2);YEAR(B2)) Kết quả Nhưng nếu bạn muốn định dạng lại theo kiểu DD/MM/YYYY thì hãy kết hợp hàm DATEVALUE với chú pháp như sau: =DATEVALUE(Translu(DAY(B2);MONTH(B2);YEAR(B2))) Kết quả2. Chuyển Ngày Tháng Từ Âm Lịch Sang Dương Lịch.
Để chuyển từ âm lịch sang dương lịch các bạn sử dụng hàm TRANSSOLAR với cú pháp: =TRANSSOLAR(DAY(B8);MONTH(B8);YEAR(B8)) Kết quả Các bạn có thể tải file excel trên về tham khảo cũng như tìm hiểu thêm ở đây, chú ý bật macro lên trước theo hướng dẫn bật macro trong excel này. Như vậy là chúng ta vừa đi tìm hiểu cách xây dựng hàm excel chuyển đổi dương lịch âm lịch rồi, và nhân đây xin gửi lời cảm ơn đến tác giả Hồ Ngọc Đức và Trường Phú về bộ code này, chúc các bạn thành công. Cao CuongĐã từng rất sợ excel dẫn đến ghét excel và rồi công việc chủ yếu sử dụng excel thế là yêu excel, những gì mình biết về excel mình muốn chia sẻ lại cho cộng đồng, đó là lý do các bạn thấy mình ở đây. Nếu thấy nội dung bài viết hữu ích hãy giúp mình chia sẻ đến mọi người nhiều hơn để cùng nhau tiến bộ nhé. Cảm ơn rất nhiều.
THUTHUATEXCEL.COM - THỦ THUẬT EXCEL, THỦ THUẬT WORD, TIN HỌC VĂN PHÒNG Label : VBA Excel 5 THUTHUATEXCEL.COM - THỦ THUẬT EXCEL, THỦ THUẬT WORD, TIN HỌC VĂN PHÒNG: Hàm Excel Chuyển Đổi Dương Lịch Âm Lịch Có rất nhiều ứng dụng lịch âm dương , nhưng bạn muốn xây dựng lịch âm dương bằng excel , sẽ có một vài viết hướng dẫn chi tiết sau, còn... Chuyên Mục: VBA ExcelBài Mới Nhất:
TopTừ khóa » Excel Lịch âm Dương
-
Lịch Vạn Niên Trong Excel - Lịch Âm Dương Trong File Excel
-
Lịch Âm Dương Vạn Niên Trong Excel Không Dùng VBA
-
Hàm Excel đổi Lịch Dương Sang Lịch Âm Và ... - Blog Chia Sẻ Kiến Thức
-
Tự Làm Lịch Vạn Niên (Lịch Âm Dương) Bằng Excel Cực Dễ - No VBA
-
Lịch âm Dương Excel Mới Nhất Cho Tất Cả Các Năm 2022 2023
-
Hàm Excel đổi Lịch Dương Sang Lịch Âm Và ... - Học Viện CanBoxd
-
Lịch âm Dương Các Năm Bằng Excel - Ứng Dụng
-
Hướng Dẫn Cách Tính Lịch Âm Trên Excel Ll Dwchannel, Chuyển ...
-
Tự Làm Lịch Vạn Niên (Lịch Âm Dương) Bằng Excel Cực Dễ
-
LỊCH ÂM DƯƠNG | TỰ HỌC EXCEL
-
Hàm Excel đổi Lịch Dương Sang Lịch Âm Và Ngược Lại - Thủ Thuật EDU
-
Chuyển Đổi Dương Lịch Sang Âm Lịch Trong Excel
-
TẢI LỊCH VẠN NIÊN NĂM 2020 ÂM DƯƠNG EXCEL - BiBon.xyz
-
NEW Cách Tra Cứu Lịch âm Trong Excel - Duy Pets