Sao chỉ có thể tối đa 6 hàm IF lồng nhau ?

Liên hệ QC
Đề tài này vui quá! Hàm =TRIM(SUBSTITUTE(A1,C1,"") của ndu96081631 có lẽ cần phải cải tiến thêm.

ndu96081631 đưa ra hàm quá hay!
Để có thể áp dụng được cho những tên như: Phùng Văn Văn, Trịnh Bối Bối...Nên cải tiến lại một chút như sau: Thay {=TRIM(SUBSTITUTE(A1,C1,"")} bởi {=TRIM(SUBSTITUTE(A1,C1,"",1)}
 
Chỉnh sửa lần cuối bởi điều hành viên:
Đề tài này vui quá! Hàm =TRIM(SUBSTITUTE(A1,C1,"") của ndu96081631 có lẽ cần phải cải tiến thêm.

ndu96081631 đưa ra hàm quá hay!
Để có thể áp dụng được cho những tên như: Phùng Văn Văn, Trịnh Bối Bối...Nên cải tiến lại một chút như sau: Thay {=TRIM(SUBSTITUTE(A1,C1,"")} bởi {=TRIM(SUBSTITUTE(A1,C1,"",1)}

Công thức của bạn vẫn chưa chính xác đâu nha!
Tôi có 1 tên viết không gõ dấu (nếu dùng văn bản bằng tiếng Anh) và 1 tên có gõ dấu:
Dùng công thức của bạn để tách họ sẽ có kết quả như sau:

Họ và tên:
TRAN VAN AN
Tách họ
TR VAN AN
Tách tên:
AN

và:
Họ và tên:
LÝ THỤY Ý
Tách họ
L THỤY Ý
Tách tên:
Ý

Vì vậy, tạm thời dùng hàm dưới đây là chính xác nhất!
Mã:
[COLOR=#000000][COLOR=#0000bb][/COLOR][FONT=Courier New][COLOR=#007700]=[/COLOR][COLOR=#0000bb]TRIM[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]LEFT[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]A1[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]LEN[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]A1[/COLOR][COLOR=#007700])-[/COLOR][COLOR=#0000bb]TRIM[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]LEN[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]C1[/COLOR][COLOR=#007700])+[/COLOR][COLOR=#0000bb]1[/COLOR][COLOR=#007700])))[/COLOR][/FONT][/COLOR]
 
Hàm tách họ và tên lót không lệ thuộc tách tên.
Mã:
=[COLOR=#0000bb]TRIM[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]LEFT[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]A1[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]LEN[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]A1[/COLOR][COLOR=#007700])-[/COLOR][COLOR=#0000bb]TRIM[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]LEN[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb][COLOR=#0000bb]TRIM[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]RIGHT[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]SUBSTITUTE[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]A1[/COLOR][COLOR=#007700],[/COLOR][COLOR=#dd0000]" "[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]REPT[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]" "[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]LEN[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]A1[/COLOR][COLOR=#007700]))),[/COLOR][COLOR=#0000bb]LEN[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]A1[/COLOR][COLOR=#007700])))[/COLOR][/COLOR][COLOR=#007700])+[/COLOR][COLOR=#0000bb]1[/COLOR][COLOR=#007700])))[/COLOR]
Thật ra cái này là cách ghép lại giữa tách họ và tách tên tổng hợp lại thôi.
Lưu ý: Hàm này sẽ bị lỗi #Value! nếu Cột họ tên chỉ đặt 1 chữ duy nhất (Không có họ hoặc tên). Ví dụ tại A1 chỉ ghi vỏn vẹn chữ Hoàng thì sẽ báo lỗi. Chính bản thân thôi còn không xác định được đó là họ hay đó là tên thì máy nó điếc cũng là phải!
 
Lần chỉnh sửa cuối:
Công thức của bạn vẫn chưa chính xác đâu nha!
Tôi có 1 tên viết không gõ dấu (nếu dùng văn bản bằng tiếng Anh) và 1 tên có gõ dấu:
Dùng công thức của bạn để tách họ sẽ có kết quả như sau:

Họ và tên:
TRAN VAN AN
Tách họ
TR VAN AN
Tách tên:
AN

và:
Họ và tên:
LÝ THỤY Ý
Tách họ
L THỤY Ý
Tách tên:
Ý

Vì vậy, tạm thời dùng hàm dưới đây là chính xác nhất!
Mã:
[COLOR=#000000][FONT=Courier New][COLOR=#007700]=[/COLOR][COLOR=#0000bb]TRIM[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]LEFT[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]A1[/COLOR][COLOR=#007700],[/COLOR][COLOR=#0000bb]LEN[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]A1[/COLOR][COLOR=#007700])-[/COLOR][COLOR=#0000bb]TRIM[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]LEN[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000bb]C1[/COLOR][COLOR=#007700])+[/COLOR][COLOR=#0000bb]1[/COLOR][COLOR=#007700])))[/COLOR][/FONT][/COLOR]

Cám ơn bạn! Phát hiện của bạn đúng và hàm của bạn cũng đúng rồi. Ở đây tôi đang muốn cải tiến để cái hàm mà ndu96081631 đã đưa ra sao cho nó đúng trong mọi trường hợp. Và đây, bạn thử coi nhé: Thay vì =TRIM(SUBSTITUTE(A1,C1,"",1) là =TRIM(SUBSTITUTE(A1," "&C1,"",1). Đảm bảo đúng luôn trong mọi trường hợp! (Riêng trường hợp bạn nói ở cell A1 chỉ vỏn vẹn một từ Hoàng thì hàm này nó cho ra họ cũng Hoàng mà tên cũng Hoàng. Thì nó cũng chỉ làm được như vầy thôi, biết tánh ý con người thế nào mà chiều bây giờ!)
Thân!
 
Lần chỉnh sửa cuối:
Cám ơn bạn! Phát hiện của bạn đúng và hàm của bạn cũng đúng rồi. Ở đây tôi đang muốn cải tiến để cái hàm mà ndu96081631 đã đưa ra sao cho nó đúng trong mọi trường hợp. Và đây, bạn thử coi nhé: Thay vì =TRIM(SUBSTITUTE(A1,C1,"",1) là:
PHP:
=TRIM(SUBSTITUTE(A1," "&C1,"",1)
Đảm bảo đúng luôn trong mọi trường hợp! (Riêng trường hợp bạn nói ở cell A1 chỉ vỏn vẹn một từ Hoàng thì hàm này nó cho ra họ cũng Hoàng mà tên cũng Hoàng. Thì nó cũng chỉ làm được như vầy thôi, biết tánh ý con người thế nào mà chiều bây giờ!)
Thân!


Quả thật tôi đã thử, vâng, rất chính xác. Như vậy, theo tự nhiên, hàm nào ngắn hơn, hiệu quả hơn, ta chọn nó!

Cám ơn bạn rất nhiều!

PS: Có cần bẫy lỗi nếu ngay cột HỌ TÊN mà viết chỉ một từ không? (Biết đâu người nhập vì gấp quá mà chưa biết họ thì sao?)
Như vậy sẽ tạo ra 3 chữ giống nhau tại cột Họ tên, Tách họ, Tách tên.

PHP:
=IF(LEN(TRIM(SUBSTITUTE(A1," "&C1,"",1)))=LEN(C1),"",TRIM(SUBSTITUTE(A1," "&C1,"",1)))
 
Lần chỉnh sửa cuối:
Quả thật tôi đã thử, vâng, rất chính xác. Như vậy, theo tự nhiên, hàm nào ngắn hơn, hiệu quả hơn, ta chọn nó!

Cám ơn bạn rất nhiều!

PS: Có cần bẫy lỗi nếu ngay cột HỌ TÊN mà viết chỉ một từ không? (Biết đâu người nhập vì gấp quá mà chưa biết họ thì sao?)
Như vậy sẽ tạo ra 3 chữ giống nhau tại cột Họ tên, Tách họ, Tách tên.

PHP:
=IF(LEN(TRIM(SUBSTITUTE(A1," "&C1,"",1)))=LEN(C1),"",TRIM(SUBSTITUTE(A1," "&C1,"",1)))

Cám ơn bạn đã nhắc nhở chuyện bẫy lỗi. Không phải tôi cám ơn bạn theo xã giao đâu nhé! Nhờ bạn gợi ý mà tôi đã phát hiện một vài sơ sót nhỏ của các hàm cũ. Nếu người nhập dữ liệu mà cho thêm các Space ở trước hoặc sau chuỗi họ tên thì kết quả có vấn đề ngay. Vâng, bẫy lỗi thôi! Một công đôi chuyện mà.
Mình đề nghị vầy, bạn xem thế nào:
Ở cell C1 dùng hàm: =IF(LEN(SUBSTITUTE(TRIM(A1)," ",REPT(" ",100)))>100,TRIM(RIGHT(SUBSTITUTE(TRIM(A1)," ",REPT(" ",LEN(A1))),LEN(A1))),"")
Ở cell B1 dùng hàm: =IF(LEN(SUBSTITUTE(TRIM(A1)," ",REPT(" ",100)))>100,TRIM(SUBSTITUTE(A1," "&C1,"",1)),"")
Chào bạn!
 
Cám ơn bạn đã nhắc nhở chuyện bẫy lỗi. Không phải tôi cám ơn bạn theo xã giao đâu nhé! Nhờ bạn gợi ý mà tôi đã phát hiện một vài sơ sót nhỏ của các hàm cũ. Nếu người nhập dữ liệu mà cho thêm các Space ở trước hoặc sau chuỗi họ tên thì kết quả có vấn đề ngay. Vâng, bẫy lỗi thôi! Một công đôi chuyện mà.
Mình đề nghị vầy, bạn xem thế nào:
Ở cell C1 dùng hàm: =IF(LEN(SUBSTITUTE(TRIM(A1)," ",REPT(" ",100)))>100,TRIM(RIGHT(SUBSTITUTE(TRIM(A1)," ",REPT(" ",LEN(A1))),LEN(A1))),"")
Ở cell B1 dùng hàm: =IF(LEN(SUBSTITUTE(TRIM(A1)," ",REPT(" ",100)))>100,TRIM(SUBSTITUTE(A1," "&C1,"",1)),"")
Chào bạn!

Rất tốt, bạn thật có nhiều ý tưởng. Hy vọng những công thức của bạn sẽ đóng góp nhiều hơn nữa trong diễn đàn này!
Cảm ơn bạn.
 
Web KT

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

Back
Top Bottom