Xử lý cắt ký tự trắng đầu chuỗi ký tự (1 người xem)

Liên hệ QC

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

Vầy thử xem:
Mã:
=MID(A2,FIND(LEFT(TRIM(A2)),A2),255)

Công thức trên tương đương với LTRIM trong VB
Nhân đây xin đố cái chơi: Công thức nào tương đương với RTRIM? Tức cắt bỏ khoảng trắng bên phải chuổi
Ẹc... Ẹc...
 
Vầy thử xem:
Mã:
=MID(A2,FIND(LEFT(TRIM(A2)),A2),255)

Công thức này là vậy, tuy nhiên nếu không phải là tên mà là một đoạn văn bản dài hơn 255 ký tự thì xem như sai rồi (với Excel 2007 1 cell có thể chứa trên 1000 ký tự!)

Vì vậy công thức tổng quát phải như vầy mới ổn:

=MID(A2,FIND(LEFT(TRIM(A2)),A2),LEN(A2))

Phần màu đỏ thay cho 255
 
1 hàm duy nhất hay phối hợp nhiều hàm hả Thầy?

Làm gì tùy thích, miễn là GỌN và HAY. Nếu có khỏi phải Ctrl + Shift + Enter thì.. càng tốt
Ẹc... Ẹc...
Công thức này là vậy, tuy nhiên nếu không phải là tên mà là một đoạn văn bản dài hơn 255 ký tự thì xem như sai rồi (với Excel 2007 1 cell có thể chứa trên 1000 ký tự!)
Mấy cái vụ 255 ấy đâu có quan trọng gì ---> Vấn đề nằm ở GIẢI THUẬT mà chú
 
Mấy cái vụ 255 ấy đâu có quan trọng gì ---> Vấn đề nằm ở GIẢI THUẬT mà chú

Nếu tính 255 thì trong vòng ấy thì OK, còn hơn nữa nó lại gói gọn có 255 ký tự à Thầy ơi, giải thuật thì đẹp rồi, nhưng phải đầy đủ nữa chứ Thầy

Làm gì tùy thích, miễn là GỌN và HAY. Nếu có khỏi phải Ctrl + Shift + Enter thì.. càng tốt
Ẹc... Ẹc...

Cái này khó hơn mình nghĩ nên cắt sửa bị trật chìa tùm lum.... ẹc ... ẹc ...
 
Theo đề bài của sư phụ NDU, cắt chuỗi bên phải.
Củ chuối này không gọn , không hay, phải CSE, gửi tạm trong khi nghĩ cách khác:
Mã:
=LEFT(A2,MAX(IF(CODE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))=32,"",ROW(INDIRECT("1:"&LEN(A2))))))
 
Theo đề bài của sư phụ NDU, cắt chuỗi bên phải.
Củ chuối này không gọn , không hay, phải CSE, gửi tạm trong khi nghĩ cách khác:
Mã:
=LEFT(A2,MAX(IF(CODE(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1))=32,"",ROW(INDIRECT("1:"&LEN(A2))))))

Mục đích chính: Tìm KÝ TỰ CUỐI CÙNG = RIGHT(TRIM("Chuổi")) thôi mà ---> Dùng MID thì đúng rồi nhưng cũng đâu cần phải CODE ---> Dùng LOOKUP(2, 1/(...)) gì gì đó thử xem
Ẹc... Ẹc...
 
Cắt ký tự trắng phía phải chuỗi, em dùng cái này - không phải hàm mảng có được không ạ?
=LEFT(A2,FIND(TRIM(A2),A2)+LEN(TRIM(A2))-1)
Đoạn này FIND(TRIM(A2),A2) đã thấy bị lỗi rồi
Vui lòng đưa file lên để chứng minh công thức của minh là đúng nhé
Hay đơn giản hơn: Bạn ráp công thức của mình vào file ở bài 1 xem nó ra cái gì?
 
Lần chỉnh sửa cuối:
Vâng thầy xem cái File này ạ
 

File đính kèm

Em không đọc được file xlsx. Em chỉ xử lý cắt ký tự trắng phía phải thôi ạ.
 
Em không đọc được file xlsx. Em chỉ xử lý cắt ký tự trắng phía phải thôi ạ.

Không được được file xlsx cũng không sao, cứ làm như tôi mô tả là được rồi:
- Trong file của bạn, cell A2 có giá trị
Mã:
[COLOR=#0000cd][B]"nguyen van a            "[/B][/COLOR]
- Giờ bạn thử sửa A2 thành
Mã:
[COLOR=#0000cd][B]"nguyen         van            a                      "[/B][/COLOR]
- Tức là ngoài khoảng trắng cuối chuổi còn có các khoảng trằng ở giữa nữa
- Xong, xem công thức bạn nó ra cái gì nhé?
Vấn đề là vậy đấy! Chỉ quan tâm đến việc cắt khoảng trắng thừa ở cuối chuổi, không quan tâm ở đầu chuổi hay giữa chuổi có khoảng trắng thừa hay không
 

File đính kèm

Lần chỉnh sửa cuối:
Ngoài cách dùng hàm mảng ra em chưa nghĩ được cách nào khác, híc
=LEFT(A2,LOOKUP(9E+99,IF(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)<>" ",ROW(INDIRECT("1:"&LEN(A2))))))

Loay hoay tìm cách RTrim không sử dụng hàm mảng nhưng khó quá. Thầy và các anh chị có phương pháp nào không?
 
Ngoài cách dùng hàm mảng ra em chưa nghĩ được cách nào khác, híc


Loay hoay tìm cách RTrim không sử dụng hàm mảng nhưng khó quá. Thầy và các anh chị có phương pháp nào không?

LOOKUP thì được rồi. Nhưng nếu bạn dùng LOOKUP kiểu vầy:
Mã:
=LOOKUP(2,1/(MID(A2,ROW($1:$255),1)=RIGHT(TRIM(A2))),ROW($1:$255))
thì sẽ không cần phải Ctrl + Shift + Enter
Tức:
Mã:
=LEFT(A2,LOOKUP(2,1/(MID(A2,ROW($1:$255),1)=RIGHT(TRIM(A2))),ROW($1:$255)))
Ẹc... Ẹc...
 
Web KT

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

Back
Top Bottom