darkzoom99
Thành viên mới

- Tham gia
- 7/10/08
- Bài viết
- 13
- Được thích
- 0
Cũng có phần liên quan đến bài viết, đến file của bạn. Đó làMong các Bác giúp đỡ ạ , Lấy ô trên +1 cũng được nhưng không đúng số ngày trong tháng ạ . Xin trân trọng cảm ơn rất nhiều !!
Chuyển ngày dương sang âm từ năm 1900 tới 2100Cũng có phần liên quan đến bài viết, đến file của bạn. Đó là
Chuyển từ Dương lịch sang Âm lịch có thể dùng hàm này =TEXT(A1;"[$-0011042A]dd/mm/yyyy") với A1 là ngày Dương lịch.
Nhưng với năm nhuận thì ra kết quả không chính xác so với lịch giấy. Ví dụ ngày âm lịch của ngày dương lịch 07/11/2023 là 24/10/2023 trong khi chính xác là 24/9/2023.
Các thành viên GPE có cách nào sửa được lỗi trên để ra kết quả chính xác bằng công thức TEXT() không a?
=IFERROR(IF(TEXT(A3,"[$-0011042A]m")-INDEX({6;11;7;11;8;11;8;7;11;8;11;8;4;2;7;5;4;9;6;4;2;6;5;3;11;6;5;2;7;5;3;8;6;4;3;7;5;4;8;6;4;3;7;5;4;8;6;4;2},MATCH(--TEXT(A3,"[$-0011042A]yyyy"),{1911;1913;1919;1924;1938;1946;1957;1968;1970;1976;1981;1995;2001;2004;2006;2009;2012;2014;2017;2020;2023;2025;2028;2031;2034;2036;2039;2042;2044;2047;2050;2052;2055;2058;2061;2063;2066;2069;2071;2074;2077;2080;2082;2085;2088;2090;2093;2096;2099},0))>0,TEXT(A3,"[$-0011042A]dd/")&TEXT(TEXT(A3,"[$-0011042A]mm")-1,"00")&"/"&TEXT(A3,"[$-0011042A]yyyy")&IF(TEXT(A3,"[$-0011042A]m")-INDEX({6;11;7;11;8;11;8;7;11;8;11;8;4;2;7;5;4;9;6;4;2;6;5;3;11;6;5;2;7;5;3;8;6;4;3;7;5;4;8;6;4;3;7;5;4;8;6;4;2},MATCH(--TEXT(A3,"[$-0011042A]yyyy"),{1911;1913;1919;1924;1938;1946;1957;1968;1970;1976;1981;1995;2001;2004;2006;2009;2012;2014;2017;2020;2023;2025;2028;2031;2034;2036;2039;2042;2044;2047;2050;2052;2055;2058;2061;2063;2066;2069;2071;2074;2077;2080;2082;2085;2088;2090;2093;2096;2099},0))=1," N",""),TEXT(A3,"[$-0011042A]dd/mm/yyyy")),TEXT(A3,"[$-0011042A]dd/mm/yyyy"))
Hú hồn! Công thức dài tận 1,6m luôn. Khó thế mà bác cũng nghĩ ra được, tài quá!Chuyển ngày dương sang âm từ năm 1900 tới 2100Mã:=IFERROR(IF(TEXT(A3,"[$-0011042A]m")-INDEX({6;11;7;11;8;11;8;7;11;8;11;8;4;2;7;5;4;9;6;4;2;6;5;3;11;6;5;2;7;5;3;8;6;4;3;7;5;4;8;6;4;3;7;5;4;8;6;4;2},MATCH(--TEXT(A3,"[$-0011042A]yyyy"),{1911;1913;1919;1924;1938;1946;1957;1968;1970;1976;1981;1995;2001;2004;2006;2009;2012;2014;2017;2020;2023;2025;2028;2031;2034;2036;2039;2042;2044;2047;2050;2052;2055;2058;2061;2063;2066;2069;2071;2074;2077;2080;2082;2085;2088;2090;2093;2096;2099},0))>0,TEXT(A3,"[$-0011042A]dd/")&TEXT(TEXT(A3,"[$-0011042A]mm")-1,"00")&"/"&TEXT(A3,"[$-0011042A]yyyy")&IF(TEXT(A3,"[$-0011042A]m")-INDEX({6;11;7;11;8;11;8;7;11;8;11;8;4;2;7;5;4;9;6;4;2;6;5;3;11;6;5;2;7;5;3;8;6;4;3;7;5;4;8;6;4;3;7;5;4;8;6;4;2},MATCH(--TEXT(A3,"[$-0011042A]yyyy"),{1911;1913;1919;1924;1938;1946;1957;1968;1970;1976;1981;1995;2001;2004;2006;2009;2012;2014;2017;2020;2023;2025;2028;2031;2034;2036;2039;2042;2044;2047;2050;2052;2055;2058;2061;2063;2066;2069;2071;2074;2077;2080;2082;2085;2088;2090;2093;2096;2099},0))=1," N",""),TEXT(A3,"[$-0011042A]dd/mm/yyyy")),TEXT(A3,"[$-0011042A]dd/mm/yyyy"))
Anh HieuCD màHú hồn! Công thức dài tận 1,6m luôn. Khó thế mà bác cũng nghĩ ra được, tài quá!
Thôi, chừ đã dài thì ta cho nó dài tận 4m luôn. Tôi thấy đổi sang ngày âm mà vẫn ghi năm dương 4 chữ số thấy kỳ kỳ nên mạn phép dùng công thức của anh HieuCD để chuyển hẳn sang ghi năm âm bằng chữ luôn, VD ngày hôm nay là 21/04 - Quý MãoAnh HieuCD mà
Em thích phong cách vậy, cái gì có thể đơn giản hóa thì làm trước. Hầm hố tính sau.
Cách ảnh làm chắc là sẽ liệt kê trước, kiểm tra ổn thỏa thì F9. Mét sáu hay mét tám thì cũng vậy à 5 tỷ kéo chân.
p/s: Em nhìn cái hàm NewMoon và SunLongitude thấy công thức trong đó khủng quá.
=LEFT(E3;LEN(E3)-5)&" - "&INDEX({"Canh"\"Tân"\"Nhâm"\"Quý"\"Giáp"\"Ất"\"Bính"\"Đinh"\"Mậu"\"Kỷ"};MATCH(VALUE(RIGHT(IFERROR(IF(TEXT(A3;"[$-0011042A]m")-INDEX({6\11\7\11\8\11\8\7\11\8\11\8\4\2\7\5\4\9\6\4\2\6\5\3\11\6\5\2\7\5\3\8\6\4\3\7\5\4\8\6\4\3\7\5\4\8\6\4\2};MATCH(--TEXT(A3;"[$-0011042A]yyyy");{1911\1913\1919\1924\1938\1946\1957\1968\1970\1976\1981\1995\2001\2004\2006\2009\2012\2014\2017\2020\2023\2025\2028\2031\2034\2036\2039\2042\2044\2047\2050\2052\2055\2058\2061\2063\2066\2069\2071\2074\2077\2080\2082\2085\2088\2090\2093\2096\2099};0))>0;TEXT(A3;"[$-0011042A]dd/")&TEXT(TEXT(A3;"[$-0011042A]mm")-1;"00")&"/"&TEXT(A3;"[$-0011042A]yyyy")&IF(TEXT(A3;"[$-0011042A]m")-INDEX({6\11\7\11\8\11\8\7\11\8\11\8\4\2\7\5\4\9\6\4\2\6\5\3\11\6\5\2\7\5\3\8\6\4\3\7\5\4\8\6\4\3\7\5\4\8\6\4\2};MATCH(--TEXT(A3;"[$-0011042A]yyyy");{1911\1913\1919\1924\1938\1946\1957\1968\1970\1976\1981\1995\2001\2004\2006\2009\2012\2014\2017\2020\2023\2025\2028\2031\2034\2036\2039\2042\2044\2047\2050\2052\2055\2058\2061\2063\2066\2069\2071\2074\2077\2080\2082\2085\2088\2090\2093\2096\2099};0))=1;" N";"");TEXT(A3;"[$-0011042A]dd/mm/yyyy"));TEXT(A3;"[$-0011042A]dd/mm/yyyy"));1));{0\1\2\3\4\5\6\7\8\9};0))&" "&INDEX({"Tý"\"Sửu"\"Dần"\"Mão"\"Thìn"\"Tỵ"\"Ngọ"\"Mùi"\"Thân"\"Dậu"\"Tuất"\"Hợi"};MATCH(MOD(RIGHT(IFERROR(IF(TEXT(A3;"[$-0011042A]m")-INDEX({6\11\7\11\8\11\8\7\11\8\11\8\4\2\7\5\4\9\6\4\2\6\5\3\11\6\5\2\7\5\3\8\6\4\3\7\5\4\8\6\4\3\7\5\4\8\6\4\2};MATCH(--TEXT(A3;"[$-0011042A]yyyy");{1911\1913\1919\1924\1938\1946\1957\1968\1970\1976\1981\1995\2001\2004\2006\2009\2012\2014\2017\2020\2023\2025\2028\2031\2034\2036\2039\2042\2044\2047\2050\2052\2055\2058\2061\2063\2066\2069\2071\2074\2077\2080\2082\2085\2088\2090\2093\2096\2099};0))>0;TEXT(A3;"[$-0011042A]dd/")&TEXT(TEXT(A3;"[$-0011042A]mm")-1;"00")&"/"&TEXT(A3;"[$-0011042A]yyyy")&IF(TEXT(A3;"[$-0011042A]m")-INDEX({6\11\7\11\8\11\8\7\11\8\11\8\4\2\7\5\4\9\6\4\2\6\5\3\11\6\5\2\7\5\3\8\6\4\3\7\5\4\8\6\4\3\7\5\4\8\6\4\2};MATCH(--TEXT(A3;"[$-0011042A]yyyy");{1911\1913\1919\1924\1938\1946\1957\1968\1970\1976\1981\1995\2001\2004\2006\2009\2012\2014\2017\2020\2023\2025\2028\2031\2034\2036\2039\2042\2044\2047\2050\2052\2055\2058\2061\2063\2066\2069\2071\2074\2077\2080\2082\2085\2088\2090\2093\2096\2099};0))=1;" N";"");TEXT(A3;"[$-0011042A]dd/mm/yyyy"));TEXT(A3;"[$-0011042A]dd/mm/yyyy"));4)-4;12);{0\1\2\3\4\5\6\7\8\9\10\11};0))
Cám ơn bạn. Hiện tại Công thức chính xác để chuyển Dương lịch sang Âm lịch. Tôi đã thử cho 1 vài ngày có tháng Nhuận như năm 2001 thì ra ngày Âm lịch chính xác và có thêm chữ N phía sau.Chuyển ngày dương sang âm từ năm 1900 tới 2100Mã:=IFERROR(IF(TEXT(A3,"[$-0011042A]m")-INDEX({6;11;7;11;8;11;8;7;11;8;11;8;4;2;7;5;4;9;6;4;2;6;5;3;11;6;5;2;7;5;3;8;6;4;3;7;5;4;8;6;4;3;7;5;4;8;6;4;2},MATCH(--TEXT(A3,"[$-0011042A]yyyy"),{1911;1913;1919;1924;1938;1946;1957;1968;1970;1976;1981;1995;2001;2004;2006;2009;2012;2014;2017;2020;2023;2025;2028;2031;2034;2036;2039;2042;2044;2047;2050;2052;2055;2058;2061;2063;2066;2069;2071;2074;2077;2080;2082;2085;2088;2090;2093;2096;2099},0))>0,TEXT(A3,"[$-0011042A]dd/")&TEXT(TEXT(A3,"[$-0011042A]mm")-1,"00")&"/"&TEXT(A3,"[$-0011042A]yyyy")&IF(TEXT(A3,"[$-0011042A]m")-INDEX({6;11;7;11;8;11;8;7;11;8;11;8;4;2;7;5;4;9;6;4;2;6;5;3;11;6;5;2;7;5;3;8;6;4;3;7;5;4;8;6;4;3;7;5;4;8;6;4;2},MATCH(--TEXT(A3,"[$-0011042A]yyyy"),{1911;1913;1919;1924;1938;1946;1957;1968;1970;1976;1981;1995;2001;2004;2006;2009;2012;2014;2017;2020;2023;2025;2028;2031;2034;2036;2039;2042;2044;2047;2050;2052;2055;2058;2061;2063;2066;2069;2071;2074;2077;2080;2082;2085;2088;2090;2093;2096;2099},0))=1," N",""),TEXT(A3,"[$-0011042A]dd/mm/yyyy")),TEXT(A3,"[$-0011042A]dd/mm/yyyy"))
Chuyển ngày dương sang âm từ năm 1900 tới 2100Mã:=IFERROR(IF(TEXT(A3,"[$-0011042A]m")-INDEX({6;11;7;11;8;11;8;7;11;8;11;8;4;2;7;5;4;9;6;4;2;6;5;3;11;6;5;2;7;5;3;8;6;4;3;7;5;4;8;6;4;3;7;5;4;8;6;4;2},MATCH(--TEXT(A3,"[$-0011042A]yyyy"),{1911;1913;1919;1924;1938;1946;1957;1968;1970;1976;1981;1995;2001;2004;2006;2009;2012;2014;2017;2020;2023;2025;2028;2031;2034;2036;2039;2042;2044;2047;2050;2052;2055;2058;2061;2063;2066;2069;2071;2074;2077;2080;2082;2085;2088;2090;2093;2096;2099},0))>0,TEXT(A3,"[$-0011042A]dd/")&TEXT(TEXT(A3,"[$-0011042A]mm")-1,"00")&"/"&TEXT(A3,"[$-0011042A]yyyy")&IF(TEXT(A3,"[$-0011042A]m")-INDEX({6;11;7;11;8;11;8;7;11;8;11;8;4;2;7;5;4;9;6;4;2;6;5;3;11;6;5;2;7;5;3;8;6;4;3;7;5;4;8;6;4;3;7;5;4;8;6;4;2},MATCH(--TEXT(A3,"[$-0011042A]yyyy"),{1911;1913;1919;1924;1938;1946;1957;1968;1970;1976;1981;1995;2001;2004;2006;2009;2012;2014;2017;2020;2023;2025;2028;2031;2034;2036;2039;2042;2044;2047;2050;2052;2055;2058;2061;2063;2066;2069;2071;2074;2077;2080;2082;2085;2088;2090;2093;2096;2099},0))=1," N",""),TEXT(A3,"[$-0011042A]dd/mm/yyyy")),TEXT(A3,"[$-0011042A]dd/mm/yyyy"))
Công thức bác chưa đúng trong trường hợp dưới đây nhé bác:Chuyển ngày dương sang âm từ năm 1900 tới 2100Mã:=IFERROR(IF(TEXT(A3,"[$-0011042A]m")-INDEX({6;11;7;11;8;11;8;7;11;8;11;8;4;2;7;5;4;9;6;4;2;6;5;3;11;6;5;2;7;5;3;8;6;4;3;7;5;4;8;6;4;3;7;5;4;8;6;4;2},MATCH(--TEXT(A3,"[$-0011042A]yyyy"),{1911;1913;1919;1924;1938;1946;1957;1968;1970;1976;1981;1995;2001;2004;2006;2009;2012;2014;2017;2020;2023;2025;2028;2031;2034;2036;2039;2042;2044;2047;2050;2052;2055;2058;2061;2063;2066;2069;2071;2074;2077;2080;2082;2085;2088;2090;2093;2096;2099},0))>0,TEXT(A3,"[$-0011042A]dd/")&TEXT(TEXT(A3,"[$-0011042A]mm")-1,"00")&"/"&TEXT(A3,"[$-0011042A]yyyy")&IF(TEXT(A3,"[$-0011042A]m")-INDEX({6;11;7;11;8;11;8;7;11;8;11;8;4;2;7;5;4;9;6;4;2;6;5;3;11;6;5;2;7;5;3;8;6;4;3;7;5;4;8;6;4;3;7;5;4;8;6;4;2},MATCH(--TEXT(A3,"[$-0011042A]yyyy"),{1911;1913;1919;1924;1938;1946;1957;1968;1970;1976;1981;1995;2001;2004;2006;2009;2012;2014;2017;2020;2023;2025;2028;2031;2034;2036;2039;2042;2044;2047;2050;2052;2055;2058;2061;2063;2066;2069;2071;2074;2077;2080;2082;2085;2088;2090;2093;2096;2099},0))=1," N",""),TEXT(A3,"[$-0011042A]dd/mm/yyyy")),TEXT(A3,"[$-0011042A]dd/mm/yyyy"))
Tháng 10 âm lịch có 30 ngày VBA tính chỉ có 29 ngày, có thể VBA tính nhầmCông thức bác chưa đúng trong trường hợp dưới đây nhé bác:
View attachment 291181
Em đã kiểm chứng trước đó rồi bác ạ, nguồn: https://www.informatik.uni-leipzig.de/~duc/amlich/Tháng 10 âm lịch có 30 ngày VBA tính chỉ có 29 ngày, có thể VBA tính nhầm![]()
Bác ngâm cứu nhé.Cái đuôi con khủng long trong INDEX có cách nào thay không? Nhìn oải quá.
Bác nào có nắm quy luật của ngày AL cho mình với, thử mày mò cách đổi ngắn ngắn chút xem sao.
Số ngày trong tháng khá phức tạp, có lẽ cần dùng thuật toán khácEm đã kiểm chứng trước đó rồi bác ạ, nguồn: https://www.informatik.uni-leipzig.de/~duc/amlich/
View attachment 291189
Nguồn đó là trang đầu tiên khi em tìm "Âm lịch" trên google, em nghĩ là đúng
Sau khi xem qua công trình thuật toán của Hồ Ngọc Đức, mình nhớ câu "Người không biết gì thường sống thanh thản"Bác ngâm cứu nhé.
Cũng có phần liên quan đến bài viết, đến file của bạn. Đó là
Chuyển từ Dương lịch sang Âm lịch có thể dùng hàm này =TEXT(A1;"[$-0011042A]dd/mm/yyyy") với A1 là ngày Dương lịch.
Nhưng với năm nhuận thì ra kết quả không chính xác so với lịch giấy. Ví dụ ngày âm lịch của ngày dương lịch 07/11/2023 là 24/10/2023 trong khi chính xác là 24/9/2023.
Các thành viên GPE có cách nào sửa được lỗi trên để ra kết quả chính xác bằng công thức TEXT() không a?
Hàm TEXT(A3,"[$-0011042A]dd/mm/yyyy") có kết quả khác quá nhiều so với Function VBA nên không có cách nào dùng hàm Text để tính âm lịchEm đã kiểm chứng trước đó rồi bác ạ, nguồn: https://www.informatik.uni-leipzig.de/~duc/amlich/
View attachment 291189
Nguồn đó là trang đầu tiên khi em tìm "Âm lịch" trên google, em nghĩ là đúng
Hú hồn! Công thức dài tận 1,6m luôn. Khó thế mà bác cũng nghĩ ra được, tài quá!
Thường thì mấy cái mảng hằng và dài thì người ta cho vào names. Nhìn gọn và dễ kiểm soát hơn.Cái đuôi con khủng long trong INDEX có cách nào thay không? Nhìn oải quá.
Bác nào có nắm quy luật của ngày AL cho mình với, thử mày mò cách đổi ngắn ngắn chút xem sao.
Cell E3 trong công thức ở trên là để làm gì thế bạn? Sao tôi không thấy liên quan gì đến cell A3 chứa ngày Dương lịch?Thôi, chừ đã dài thì ta cho nó dài tận 4m luôn. Tôi thấy đổi sang ngày âm mà vẫn ghi năm dương 4 chữ số thấy kỳ kỳ nên mạn phép dùng công thức của anh HieuCD để chuyển hẳn sang ghi năm âm bằng chữ luôn, VD ngày hôm nay là 21/04 - Quý Mão
Rich (BB code):=LEFT(E3;LEN(E3)-5)&" - "&INDEX({"Canh"\"Tân"\"Nhâm"\"Quý"\"Giáp"\"Ất"\"Bính"\"Đinh"\"Mậu"\"Kỷ"};MATCH(VALUE(RIGHT(IFERROR(IF(TEXT(A3;"[$-0011042A]m")-INDEX({6\11\7\11\8\11\8\7\11\8\11\8\4\2\7\5\4\9\6\4\2\6\5\3\11\6\5\2\7\5\3\8\6\4\3\7\5\4\8\6\4\3\7\5\4\8\6\4\2};MATCH(--TEXT(A3;"[$-0011042A]yyyy");{1911\1913\1919\1924\1938\1946\1957\1968\1970\1976\1981\1995\2001\2004\2006\2009\2012\2014\2017\2020\2023\2025\2028\2031\2034\2036\2039\2042\2044\2047\2050\2052\2055\2058\2061\2063\2066\2069\2071\2074\2077\2080\2082\2085\2088\2090\2093\2096\2099};0))>0;TEXT(A3;"[$-0011042A]dd/")&TEXT(TEXT(A3;"[$-0011042A]mm")-1;"00")&"/"&TEXT(A3;"[$-0011042A]yyyy")&IF(TEXT(A3;"[$-0011042A]m")-INDEX({6\11\7\11\8\11\8\7\11\8\11\8\4\2\7\5\4\9\6\4\2\6\5\3\11\6\5\2\7\5\3\8\6\4\3\7\5\4\8\6\4\3\7\5\4\8\6\4\2};MATCH(--TEXT(A3;"[$-0011042A]yyyy");{1911\1913\1919\1924\1938\1946\1957\1968\1970\1976\1981\1995\2001\2004\2006\2009\2012\2014\2017\2020\2023\2025\2028\2031\2034\2036\2039\2042\2044\2047\2050\2052\2055\2058\2061\2063\2066\2069\2071\2074\2077\2080\2082\2085\2088\2090\2093\2096\2099};0))=1;" N";"");TEXT(A3;"[$-0011042A]dd/mm/yyyy"));TEXT(A3;"[$-0011042A]dd/mm/yyyy"));1));{0\1\2\3\4\5\6\7\8\9};0))&" "&INDEX({"Tý"\"Sửu"\"Dần"\"Mão"\"Thìn"\"Tỵ"\"Ngọ"\"Mùi"\"Thân"\"Dậu"\"Tuất"\"Hợi"};MATCH(MOD(RIGHT(IFERROR(IF(TEXT(A3;"[$-0011042A]m")-INDEX({6\11\7\11\8\11\8\7\11\8\11\8\4\2\7\5\4\9\6\4\2\6\5\3\11\6\5\2\7\5\3\8\6\4\3\7\5\4\8\6\4\3\7\5\4\8\6\4\2};MATCH(--TEXT(A3;"[$-0011042A]yyyy");{1911\1913\1919\1924\1938\1946\1957\1968\1970\1976\1981\1995\2001\2004\2006\2009\2012\2014\2017\2020\2023\2025\2028\2031\2034\2036\2039\2042\2044\2047\2050\2052\2055\2058\2061\2063\2066\2069\2071\2074\2077\2080\2082\2085\2088\2090\2093\2096\2099};0))>0;TEXT(A3;"[$-0011042A]dd/")&TEXT(TEXT(A3;"[$-0011042A]mm")-1;"00")&"/"&TEXT(A3;"[$-0011042A]yyyy")&IF(TEXT(A3;"[$-0011042A]m")-INDEX({6\11\7\11\8\11\8\7\11\8\11\8\4\2\7\5\4\9\6\4\2\6\5\3\11\6\5\2\7\5\3\8\6\4\3\7\5\4\8\6\4\3\7\5\4\8\6\4\2};MATCH(--TEXT(A3;"[$-0011042A]yyyy");{1911\1913\1919\1924\1938\1946\1957\1968\1970\1976\1981\1995\2001\2004\2006\2009\2012\2014\2017\2020\2023\2025\2028\2031\2034\2036\2039\2042\2044\2047\2050\2052\2055\2058\2061\2063\2066\2069\2071\2074\2077\2080\2082\2085\2088\2090\2093\2096\2099};0))=1;" N";"");TEXT(A3;"[$-0011042A]dd/mm/yyyy"));TEXT(A3;"[$-0011042A]dd/mm/yyyy"));4)-4;12);{0\1\2\3\4\5\6\7\8\9\10\11};0))