Làm thế nào để rút gọn công thức hơn? (1 người xem)

  • Thread starter Thread starter bamemay
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

bamemay

Thành viên chính thức
Tham gia
20/7/07
Bài viết
55
Được thích
4
Em có bài tập tính năm Nhuận Âm Lịch. (Trong File đính kèm em có ghi rõ nội dung cần giúp)
Dùng hàm If thì dài quá, em muốn nó ngắn lại mà không biết phải làm sao? Mong Anh, chị giúp dùm em. Cảm ơn
 

File đính kèm

Lần chỉnh sửa cuối:
Em có bài tập tính năm Nhuận Âm Lịch. (Trong File đính kèm em có ghi rõ nội dung cần giúp)
Dùng hàm If thì dài quá, em muốn nó ngắn lại mà không biết phải làm sao? Mong Anh, chị giúp dùm em.
Cũng phải dùng 1 IF(), kiểm tra thử xem có xài được không, cái vụ ngày Âm này thì tôi không rành lắm.
 

File đính kèm

Em biết cách tính năm nhuận và nhuận vào tháng mấy của Âm Lịch (bằng toán học) nhưng dùng Excel để làm cho đơn giản hơn thì chưa biết.
Anh làm cho ra kết quả đúng hết. Cảm ơn Ba Tê.

Em muốn sử dụng hàm đơn giản hơn như: and hoặc or hoặc not để lồng vào mod, If hoặc countif,choose thì được không anh. Em làm mà nó không ra.
 
Lần chỉnh sửa cuối:
Vậy bạn dùng thử cái này đi.
=IF(MOD(B3,19)=$A$3:$A$9,"nhuận","không nhuận")
 

File đính kèm

Cảm ơn duongdv. Cách này đúng cho một số năm. vd: cho năm 2004 năm 2012 năm 1998... thì không đúng.
Xin cho thêm ý kiến. Cảm ơn
 
Cảm ơn duongdv. Cách này đúng cho một số năm. vd: cho năm 2004 năm 2012 năm 1998... thì không đúng.
Xin cho thêm ý kiến. Cảm ơn

xin lỗi nhé. Mình làm xong nhưng cũng không kiểm tra lại. Nếu bạn muốn áp dụng các hàm đơn giản thì công thức sẽ dài, nếu bạn muốn ngắn gọn thì áp dụng theo công thức của Ba Tê mình thấy công thức đó cũng đơn giản mà, và cũng ngắn gọn đấy chứ.
 
Mình không rành về vấn đề tính lịch lắm nhưng với yêu cầu của bạn có thể dùng công thức sau:

=IF(ISERROR(MATCH(MOD(B3,19),{0,3,6,9,11,14,17},0)),"Năm thường","Năm nhuận")

Ta chỉ đặt ô B3 vào ô cần tính năm của bạn là được
 
Dùng cách của Batê Sealand đều cho kết quả đúng hết. Cảm ơn anh chị.
 
Sẵn có người nói đến Nhuận Dương Lịch. Mong Anh chị giúp dùm em luôn nhé.
1. Nếu năm nhuận dương lịch (với các năm tận cùng không phải là số 00. vd: năm 2004, 2008...) thì lấy năm đó chia cho 4 dư 0 thì là Năm Nhuận.
2. Nếu năm nhuận dương lịch (với các năm tận cùng là số 00. vd: năm 2000, 3000, 1900...) thì lấy năm đó chia cho 4 và 400 dư 0 thì mới là Năm Nhuận.
Ý em muốn hỏi là làm sao mình gộp 2 điều kiện trên vào hàm nào đó để tính trong Excel cho tiện mà vẫn cho kết quả chính xác.
Cảm ơn.
 
Sẵn có người nói đến Nhuận Dương Lịch. Mong Anh chị giúp dùm em luôn nhé.
1. Nếu năm nhuận dương lịch (với các năm tận cùng không phải là số 00. vd: năm 2004, 2008...) thì lấy năm đó chia cho 4 dư 0 thì là Năm Nhuận.
2. Nếu năm nhuận dương lịch (với các năm tận cùng là số 00. vd: năm 2000, 3000, 1900...) thì lấy năm đó chia cho 4 và 400 dư 0 thì mới là Năm Nhuận.
Ý em muốn hỏi là làm sao mình gộp 2 điều kiện trên vào hàm nào đó để tính trong Excel cho tiện mà vẫn cho kết quả chính xác.
Cảm ơn.
Bạn giải thích rõ ý này
. Nếu năm nhuận dương lịch (với các năm tận cùng là số 00. vd: năm 2000, 3000, 1900...) thì lấy năm đó chia cho 4 và 400 dư 0 thì mới là Năm Nhuận là sao vậy?
có phải là 3000/4 => kq và lấy Kq này lại chia tiếp cho 400 hay như thế nào vậy?
 
Mình thấy cách này khá gọn, khỏi cần thuật toán chỉ cần biết tháng 2 năm đó 29 ngày thì là năm nhuận

=IF(DAY(DATE(F5,3,0))=29,"Nhuan","Thuong")
 
Em có bài tập tính năm Nhuận Âm Lịch. (Trong File đính kèm em có ghi rõ nội dung cần giúp)
Dùng hàm If thì dài quá, em muốn nó ngắn lại mà không biết phải làm sao? Mong Anh, chị giúp dùm em.

Nếu nó đúng với yêu cầu của bạn thì chỉ cần như vậy:
=IF(MOD(B3-A3,19)=0,"NĂM NHUẬN","N THƯỜNG")
 
Bạn giải thích rõ ý này
. Nếu năm nhuận dương lịch (với các năm tận cùng là số 00. vd: năm 2000, 3000, 1900...) thì lấy năm đó chia cho 4 và 400 dư 0 thì mới là Năm Nhuận là sao vậy?
có phải là 3000/4 => kq và lấy Kq này lại chia tiếp cho 400 hay như thế nào vậy?

Không phải. Chẳng hạn những năm tận cùng là số 00 như: năm 2000, 3000 thì lấy những năm này đồng thời chia cho 4 và 400 mà dư 0 thì là năm nhuận. ví dụ: năm 2000 chia hết cho 4 và đồng thời cũng chia hết cho 400 :
- Lấy 2000/4 dư 0, vẫn lấy 2000/400 cũng dư 0. Vậy năm 2000 là năm nhuận.
- Năm 3000/4 dư 0, vẫn lấy 3000/400 thì lại dư 200. Vậy năm 3000 không phải là năm nhuận
 
Tại sao không dùng COUNTIF nhỉ?
PHP:
=IF(COUNTIF($A$3:$A$9,MOD(B3,19)),"Nhuận","")
----------------------
Nếu nó đúng với yêu cầu của bạn thì chỉ cần như vậy:
=IF(MOD(B3-A3,19)=0,"NĂM NHUẬN","N THƯỜNG")
Cái này sai à nha!
 
Lần chỉnh sửa cuối:
Mình thấy cách này khá gọn, khỏi cần thuật toán chỉ cần biết tháng 2 năm đó 29 ngày thì là năm nhuận

=IF(DAY(DATE(F5,3,0))=29,"Nhuan","Thuong")

Cảm ơn Sealand đã giúp tìm được đáp án cho Dương lịch. Cảm ơn
 
Lần chỉnh sửa cuối:
Cảmo ơn Sealand. Cách này đúng. Nhưng nếu như mình đã biết một năm nào đó có tháng 2 là 29 ngày rồi thì coi như mình đã biết năm đó Nhuận. Vậy như năm 3100 thì làm sao mình biết tháng 2 có 29 ngày hay không nếu không dùng lịch vạn sự.
Bản thân công thức này sẽ tự động trả về ngày 29 của tháng 2 nếu năm đó tháng 2 có 29 ngày mà.
=IF(DAY(DATE(F5,3,0))=29,"Nhuan","Thuong")
Bạn để ý số 0 trong công thức: bình thường thì công thức =DAY(DATE(F5,3,0)) sẽ trả về số của ngày trong tháng 3 nhưng Trong thực tế sẽ không có ngày 0 bởi vậy công thức sẽ trên sẽ trả về ngày cuối cùng của tháng 2.
 
Sẵn có người nói đến Nhuận Dương Lịch. Mong Anh chị giúp dùm em luôn nhé.
1. Nếu năm nhuận dương lịch (với các năm tận cùng không phải là số 00. vd: năm 2004, 2008...) thì lấy năm đó chia cho 4 dư 0 thì là Năm Nhuận.
2. Nếu năm nhuận dương lịch (với các năm tận cùng là số 00. vd: năm 2000, 3000, 1900...) thì lấy năm đó chia cho 4 và 400 dư 0 thì mới là Năm Nhuận.
Ý em muốn hỏi là làm sao mình gộp 2 điều kiện trên vào hàm nào đó để tính trong Excel cho tiện mà vẫn cho kết quả chính xác.
Cảm ơn.
Như vậy cũng được: Nhập vào C3: =IF(AND(MOD(B3;4)=0;MOD(B3;100)<>0);"Nhuận";"Thường")
 
Lần chỉnh sửa cuối:
Bản thân công thức này sẽ tự động trả về ngày 29 của tháng 2 nếu năm đó tháng 2 có 29 ngày mà.
=IF(DAY(DATE(F5,3,0))=29,"Nhuan","Thuong")
Bạn để ý số 0 trong công thức: bình thường thì công thức =DAY(DATE(F5,3,0)) sẽ trả về số của ngày trong tháng 3 nhưng Trong thực tế sẽ không có ngày 0 bởi vậy công thức sẽ trên sẽ trả về ngày cuối cùng của tháng 2.
Cảm ơn duongdv. Không để ý đến số 0
 
Như vậy cũng được: Nhập vào C3: =IF(AND(MOD(B3;4)=0;MOD(B3;100)<>0);"Nhuận";"Thường")

Nếu muốn làm theo cách của bạn tôi nghĩ phải dùng công thức sau:
=IF(OR(AND(RIGHT(A6,2)<>"00",MOD(A6,4)=0),AND(RIGHT(A6,2)="00",MOD(A6,4)=0,MOD(A6,400)=0)),"nhuận","thường")
 
Điều kiện của anh cho kết quả chưa đúng. Cảm ơn ndu96081631. Chẳng hạn năm 2004 là năm nhuận Âm lịch vào tháng 2. Nhưng kết quả cho ra là năm 2004 không nhuận
Bạn kiểm tra cách gì mà ra SAI vậy? Công thức tôi cho kết quả Nhuận với năm 2004 cơ mà
----------------
Còn cái vụ nhuận DƯƠNG LỊCH, thiết nghĩ các bạn đừng nên mất công tính toán cộng trừ nhân chia gì cả (quá thừa)! Ta đang làm việc trên Excel thì cứ bám vào điều kiện tháng 2 có 29 ngày hay không mà suy ra ---> Như anh sealand (ở bài #13) đã làm là được rồi
 

File đính kèm

Lần chỉnh sửa cuối:
Như vậy cũng được: Nhập vào C3: =IF(AND(MOD(B3;4)=0;MOD(B3;100)<>0);"Nhuận";"Thường")
Công thức của Bạn thì năm 2000 là năm thường?
Công thức của tôi năm 2000 là năm Nhuận, hổng biết cái nào đúng:
PHP:
=IF(MOD(B3;IF(RIGHT(B3;2)="00";400;4))=0;"Nhuận";"Không Nhuận")
 
Bạn kiểm tra cách gì mà ra SAI vậy? Công thức tôi cho kết quả Nhuận với năm 2004 cơ mà
----------------
Còn cái vụ nhuận DƯƠNG LỊCH, thiết nghĩ các bạn đừng nên mất công tính toán cộng trừ nhân chia gì cả (quá thừa)! Ta đang làm việc trên Excel thì cứ bám vào điều kiện tháng 2 có 29 ngày hay không mà suy ra ---> Như anh sealand đã làm là được rồi

Về máy của em thì nó không ra kết kết quả đúng (theo như công thức của anh thì không sai gì cả). Mới kt lại thì đúng. Cảm ơn anh ndu96081631.
- Về vấn đề Nhuận Dương Lịch thì dễ cứ năm nào tháng 2 có 29 ngày là Nhuận.
- Với những ai không dùng Excel thì bắt buộc phải tính toán cộng trừ nhân chia. (điều này không thừa)
- Với người dùng Excel thì ít nhất cũng phải biết chút đỉnh về hàm, cộng thêm cái này nữa thì mới ngắn gọn dễ hiểu: DAY(DATE(X,3,0))=29---> cái này em nghĩ không phải ai cũng biết, trong đó có em (không hiểu con số 0 có mục đích gì, may mắn được anh duongdv giải thích)
Cảm ơn anh, chị đã giải đáp.

Công thức của Bạn thì năm 2000 là năm thường?
Công thức của tôi năm 2000 là năm Nhuận, hổng biết cái nào đúng:
PHP:
=IF(MOD(B3;IF(RIGHT(B3;2)="00";400;4))=0;"Nhuận";"Không Nhuận")
Cái này đúng đấy anh Ba Tê
 
Chỉnh sửa lần cuối bởi điều hành viên:
Công thức của Bạn thì năm 2000 là năm thường?
Công thức của tôi năm 2000 là năm Nhuận, hổng biết cái nào đúng:
PHP:
=IF(MOD(B3;IF(RIGHT(B3;2)="00";400;4))=0;"Nhuận";"Không Nhuận")

Năm 2000 là năm thường đó bạn! Quy luật năm nhuận Dương lịch thế này: Năm nào chia hết cho 4 nhưng không chia hết cho 100 là năm nhuận, còn lại là năm thường.
 
Năm 2000 là năm thường đó bạn! Quy luật năm nhuận Dương lịch thế này: Năm nào chia hết cho 4 nhưng không chia hết cho 100 là năm nhuận, còn lại là năm thường.

Bạn tính sao tôi hổng biết, còn bác Bill thì tính vầy

untitled.JPG
 
Bạn tính sao tôi hổng biết, còn bác Bill thì tính vầy

View attachment 49619

Xin lỗi các bạn, mình có nhầm một chút. Bác Bill tính đúng rồi đó.
Qui luật năm nhuận đúng ra là thế này:
"Lịch Gregory

Theo lịch Gregory - loại lịch tiêu chuẩn hiện nay được dùng trên hầu khắp thế giới thì những năm nào chia hết cho 4 được coi là năm nhuận. Trong năm nhuận, tháng 2 có 29 ngày thay cho 28 ngày. Cứ 4 năm lại thêm 1 ngày vào lịch bởi vì một năm dương lịch dài khoảng 365 ngày và 6 giờ.
Tuy nhiên, vẫn có một số ngoại lệ đối với nguyên tắc này vì một năm dương lịch ngắn hơn 365,25 ngày một chút. Những năm chia hết cho 100 chỉ được coi là năm nhuận nếu chúng cũng chia hết cho 400. Ví dụ, 1600 và 2000 là các năm nhuận nhưng 1700, 1800 và 1900 không phải năm nhuận. Tương tự như vậy, 2100, 2200, 2300, 2500, 2600, 2700, 2900 và 3000 không phải năm nhuận nhưng 2400 và 2800 là các năm nhuận." (Nguồn: Wikipedia tiếng Việt).
Vậy công thức của mình ở bài #21 phải sửa lại thế này:
=IF(MOD(B3;400)=0;"Nhuận";IF(AND(MOD(B3;4)=0;MOD(B3;100)<>0);"Nhuận";"Thường"))
 

Bài viết mới nhất

Back
Top Bottom