chào thầy em có vấn đề xin thầy chỉ thêm ạh
c4 là họ và tên, (d4 là ngày, e4 là tháng, f4 là năm) ngày tháng năm sinh của Nam, (g4 là ngày, h4 là tháng, i4 là năm) ngày tháng năm sinh của Nữ, p4 là Nam hoặc Nữ
em có cấu trúc như vậy:
=C4&CHAR(10)&TEXT(IF(EXACT(P4,"Nữ"),
DATE(I4,H4,G4),DATE(F4,E4,D4)),
IF(OR(AND(D4>0,E4>0),AND(G4>0,H4>0)),"dd/MM/yyyy","yyyy"))
khi liên kết lại với nhau theo cấu trúc ra kết quả nhưng nếu xóa ô d4, e4 hay q4, h4 thì chỉ ra tên và năm sinh lại bị giảm 1 năm vd như sinh năm 2004 thi ra kết quả 2003
Xin thầy giúp dùm
Hàm của bạn có logic khá là rối, mình đọc ko hiểu lắm.
Mục đích của bạn là ghép Tên với ngày tháng năm sinh, sau ghi ghép sẽ có ở dạng Tên kèm theo ngày tháng năm sinh viết ở dạng dd/mm/yyyy, trường hợp không có ngày vầ tháng sinh thì chỉ thể hiện năm sinh thôi đúng không?
Nguyên nhân của việc giảm 1 năm là do hàm DATE:
- nếu ngày bằng 0 thì sẽ tính lùi 1 tháng và tính vào ngày cuối tháng,
- nếu tháng bằng 0 thì sẽ tính lùi 1 năm và tính vào tháng 12
Như vậy khi bạn không có giá trị nào ở ngày và tháng thì sẽ bị tính lùi 1 năm.
Để khắc phục vấn đề này, bạn cần đặt lại logic cho chính xác, bao gồm cả trường hợp không có ngày hay tháng.
=C5&" "&TEXT(
IF(P5="Nam",
DATE(F5, IF(ISBLANK(E5),1,E5), IF(ISBLANK(D5),1,D5)),
DATE(I5, IF(ISBLANK(H5),1,H5), IF(ISBLANK(G5),1,G5))),
IF(OR(AND(D5>0,E5>0),AND(G5>0,H5>0)),"dd/MM/yyyy","yyyy"))