Giải thích hàm giúp!

Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

hamhochoi66

Thành viên chính thức
Tham gia
17/4/12
Bài viết
80
Được thích
-12
Giới tính
Nam
Anh chị có thể giải thích giúp em:
1. Tại sao ở cột A chuỗi bị thừa 2 khoảng trắng, nhưng công thức ở các cột C, E, G không bỏ được khoảng trắng?
2. Có công thức nào khác cột I để lấy chuỗi mà không bị dính khoảng trắng?
3. Đếm chuỗi không trùng nhau ở công thức tại cột S làm từng bước thì k bị lỗi nhưng gộp công thức lại tại cột T thì báo lỗi?

Xin chân thành cảm ơn!
 

File đính kèm

Em xin trả lời:
1. Vì khoảng trắng trong cột A là char(160), không phải char(32) như khoảng trắng thông thường.
2. Dùng hàm:
Mã:
=TEXTJOIN("",,"CC",IFERROR(--MID(A2,SEQUENCE(LEN(A2)),1),""))
3. Em chưa học sâu để trả lời nhưng có giải pháp thay thế:
Mã:
=SUM(IF(LEN(UNIQUE(O1:O65))>1,1,0))
 
Em xin trả lời:
1. Vì khoảng trắng trong cột A là char(160), không phải char(32) như khoảng trắng thông thường.
2. Dùng hàm:
Mã:
=TEXTJOIN("",,"CC",IFERROR(--MID(A2,SEQUENCE(LEN(A2)),1),""))
3. Em chưa học sâu để trả lời nhưng có giải pháp thay thế:
Mã:
=SUM(IF(LEN(UNIQUE(O1:O65))>1,1,0))
1/ Làm sao để biết đó là Char(32) hay là Char(160) vậy anh?
2/ Cách làm của anh có phải là lấy từng ký tự là số, chuỗi thì bị iferror chuyển về rỗng, sau đó anh dùng textjoin để nối lại đúng không anh ?
Cám ơn anh đã quan tâm bài của em!
 
1/ Làm sao để biết đó là Char(32) hay là Char(160) vậy anh?
2/ Cách làm của anh có phải là lấy từng ký tự là số, chuỗi thì bị iferror chuyển về rỗng, sau đó anh dùng textjoin để nối lại đúng không anh ?
Cám ơn anh đã quan tâm bài của em!
1/ Em dùng hàm CODE(khoảng trống) để xác định.
2/ Đúng là như vậy.
 
Không ai test chuỗi như bạn cả.
=Code(Right($A2, Column(A1))
Kéo ngang ra, một hồi sẽ được code của từng ký tự trong chuỗi.

Biết được nó nằm ở đâu rồi thì chỉ việc copy nó rồi dùng Ctrl+H thay thế nó
Find > Ctrl+V để paste kys tự ấy vào
Replace with > gõ bất cứ cái gì muốn tháy thế nó.
Replace All
Hết

code 160 là ký tự dấu trắng không ngắt hàng (non breaking space), dữ liệu lấy từ mạng về gặp dấu này là thường
 
Không ai test chuỗi như bạn cả.
=Code(Right($A2, Column(A1))
Kéo ngang ra, một hồi sẽ được code của từng ký tự trong chuỗi.

Biết được nó nằm ở đâu rồi thì chỉ việc copy nó rồi dùng Ctrl+H thay thế nó
Find > Ctrl+V để paste kys tự ấy vào
Replace with > gõ bất cứ cái gì muốn tháy thế nó.
Replace All
Hết

code 160 là ký tự dấu trắng không ngắt hàng (non breaking space), dữ liệu lấy từ mạng về gặp dấu này là thường
Dạ, cám ơn anh! Sẵn tiện anh chỉ giáo giúp em câu hỏi số 3 trong #1 được không ạ?
 
Khi bạn gõ các hàm, bạn để ý đối số của nó, nếu là array thì có thể lấy mảng, hoặc range tùy ý. Nhưng nếu là range thì chỉ lấy được range, tức là phải có địa chỉ ô.
Dạ, cám ơn anh! Sẵn tiện anh chỉ giáo giúp em câu hỏi số 3 trong #1 được không ạ?
Khi bạn làm từng bước, kết quả trung gian là mảng nó trả kết quả ở các ô, bạn lấy nó làm đối số được. Nhưng kết hợp lại thì sẽ không được.
 
=Code(Right($A2, Column(A1)))
Kéo ngang ra (1)
Công thức này dựa vào lẽ rằng hàm Code của Excel chỉ lấy ra code cho ký tự đầu tiên bên trái. Với chuỗi gốc bài #1 thì sẽ có 160 ở ô có Column(B1) tức là vị trí 2 tính ngược từ phải qua.
Nếu dùng công thức sau sẽ được vị trí tính từ bên trái qua:
=Mid($A$2,Row(A1),1), kéo xuống (2)
Nếu dùng Column(A1) thì kéo ngang (3)

(Kết quả 8)

TB:
- Câu chữ đỏ không phải ai cũng biết
- Nếu kết quả công thức (1) nằm ở ô chứa Column N1 thì chắc phải đếm nhẩm từ A đến N là bao nhiêu, rồi lại phải tính vị trí bằng Len(A2) - số đó + 1. Tương tự công thức (3) cũng phải đếm nhẩm.
- Công thức (2) dùng Mid và Row nhìn biết ngay vị trí mấy: Row(A bao nhiêu) thì vị trí bấy nhiêu.
 
Lần chỉnh sửa cuối:
Kéo ngang sẽ dùng được nhiều dòng, nhưng nếu không có biên khống chế (If(len) thì không biết 160 nó có bao nhiêu ký tự bác ạ.
Đặt câu hỏi sai. muốn biết bao nhiêu thì đếm (hoặc dùng công thức).
Khống chế bằng Len thì không nhìn thấy lỗi khi column vượt quá len, không phải không lỗi.

Tuy nhiên dùng Code là nhằm phát hiện ký tự đặc biệt và/ hoặc tìm vị trí ký tự đó, không cần biết bao nhiêu.

TB ghi cuối bài (đúng ra là cuối thư thời viết thư tay) là gì thì cần học lại tiếng Việt.
 
TB là tái bút (viết thêm). Tương đương với tiếng Anh PS là Postscript (written after). Tiếng Việt sử dụng từ Hán cũng gần như tiếng Anh dùng từ Latin (postscript Latin là post scriptum, post có nghĩa là sau, qua rồi)

Về mức độ sử dụng, tất cả những người từ lớp nhỏ hơn tôi 10 tuổi, tức học Tiểu học ở miền Nam trước đây đều biết cách sử dụng từ này. Nó là ngôn ngữ hành văn chứ không phải loại ngôn ngữ mạng hay học lóm ngoại quốc (như đa tạ).

Tiếng mẽo nhập vào VN qua 3 cách:
1. cách du nhập do tiếp xúc lâu ngày - oẳn tù tì.
2. cách do lính Mẽo hồi xưa truyền lại - nâm bờ oanh.
Cách này thất truyền lâu rồi
3. cách học lóm qua mạng hoặc phim ảnh - sorry bạn

Cách học lóm phần lớn được cải sửa cho nên phần lớn đi xa chính ý. Thêm nữa là nó được dùng phổ biến đến nổi ảnh hưởng đến khả năng học tiếng Anh của lớp trẻ.
Ví dụ, từ ok được dùng đến mức độ mà thói quen làm mờ đi các từ khác (alright, righto,...)
 
Web KT

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

Back
Top Bottom