PDA

View Full Version : Xóa Khoảng Trắng



heocon
21-12-07, 06:17 PM
Em có 1 file dữ liệu được xuất ra từ 1 ứng dụng, làm sao để có thể xóa khoảng trắng trong Cell được. Em đã dùng hàm Trim() rồi nhưng ko có tác dụng.
Anh chị nào biết cách xin chỉ dùm.

Thanks

Thân!

kongcom
21-12-07, 06:34 PM
Của bạn đây .

Data ----> Text to columns----->fix...

anhtuan1066
21-12-07, 07:25 PM
File này tôi thấy cũng thật kỳ lạ... tại sao hàm TRIM ko có tác dụng gì nhỉ? Khoảng trắng ko hề bị xóa đi, trong khi nếu ta tự gõ vào 1 chuổi nào đó có khoảng trắng 2 đầu thì hàm TRIM làm việc OK... Quả thật là lạ
Có ai biết vụ này là thế nào ko? Ngay cả bạn kingcom hướng dẫn tôi cũng chả làm dc... Hic...

anhtuan1066
21-12-07, 07:35 PM
Tôi phát hiện ra 1 chuyện... lý ra thì khoảng trắng có mã là 32 (khi dùng hàm CODE), nhưng khoảng trắng ở đầu chuổi trong file này lại có mã là 160 ???
Dùng hàm gì đễ hũy bỏ ký tự có mã 160 này nhỉ?
Ai dza!
ANH TUẤN

anhtuan1066
21-12-07, 07:41 PM
Ai cha cha... sau 1 hồi vò đầu bức tai, tôi đã tìm ra 1 công thức cho bạn đây:

=TRIM(SUBSTITUTE(B2,CHAR(160),""))
He... he... hồi đó giờ mới thấy vụ này đấy!
ANH TUẤN

tigertiger
21-12-07, 08:38 PM
Nếu đã phát hiện thế thì thế này cho ngắn gọn atuan ah (thêm TRIM làm gì?)


=SUBSTITUTE(B2,CHAR(160),"")


.

heocon
21-12-07, 09:22 PM
Chào các anh! hihi bài này buồn cười quá phải ko? Em tìmđủ mọi cách ko ra.
Cách làm của Kongcom mình ko làm được, nhưng cũn rất cám ơn bạn đã quan tâm.

Trích Anh Tuấn


Tôi phát hiện ra 1 chuyện... lý ra thì khoảng trắng có mã là 32 (khi dùng hàm CODE), nhưng khoảng trắng ở đầu chuổi trong file này lại có mã là 160 ???

Dựa vào đâu để biết mã 32 hay 160 vậy anh. hàm Code() nghĩa là j vậy anh?

Oh em làm được rồi, cám ơn Anh Tuấn và Anh Tiger nhiều lắm.
2 anh có thể giải thích cấu trúc Hàm SUBSTITUTE() và hàm Char() cho em rõ thêm được ko?

Thanks!
Thân!

BNTT
21-12-07, 09:28 PM
Hàm CHAR (http://www.giaiphapexcel.com/forum/showpost.php?p=46650&postcount=3)()
Hàm SUBSTITUDE (http://www.giaiphapexcel.com/forum/showpost.php?p=47133&postcount=21)()

DOSNET
21-12-07, 10:23 PM
Dùng Text to columns theo hướng dẫn của Kongcom rất hay, chú ý một chút là làm được. Quy trình để loại bỏ khoàng trắng như sau: Bôi đen cột cần sửa và Data\text to columns:
Step1 :Chọn Fixed Width
Step2 : Trong vùng Data preview, click chuột vào ký tự đầu tiên (sẽ xuất hiện mũi tên hướng lên trên) đó chính là vị trí căn lề trái, vậy để loại bỏ khoảng trắng cần chọn mũi tên sát lề bên trái ký tự đầu tiên.
Step3 : bấm next
Step 4: Finish.
Ta được một cột dữ liệu như ý không có khoảng trắng đầu dòng
---------------------------------------------------------------
P/s : Cám ơn Kongcom chia sẻ kinh nghiệm này.

ptm0412
21-12-07, 11:14 PM
Bôi đen cột cần sửa và Data\text to columns:
Step1 :Chọn Fixed Width
Step2 : Trong vùng Data preview, click chuột vào ký tự đầu tiên (sẽ xuất hiện mũi tên hướng lên trên) đó chính là vị trí căn lề trái, vậy để loại bỏ khoảng trắng cần chọn mũi tên sát lề bên trái ký tự đầu tiên.
Step3 : bấm next
Step 4: Finish.
Ta được một cột dữ liệu như ý không có khoảng trắng đầu dòng

Vẫn còn khoảng trắng cuối dòng. Giải quyết khoảng trắng cuối dòng sẽ không triệt để vì các cell có độ dài chuỗi có nghĩa không bằng nhau ( dù độ dài kể cả khoảng trắng là bằng nhau, bằng độ rộng trường dữ liệu quy định bởi phần mềm):
- Nếu tạo mũi tên sau ký tự có nghĩa cuối của 1 cell có độ dài chuỗi có nghĩa lớn nhất, các cell còn lại sẽ còn 1 vài khoảng trắng.
- Nếu tạo mũi tên sau ký tự có nghĩa của cell khác, cell có độ dài lớn hơn bị tách ra 2 cell nằm ở 2 cột.
- Các ký tự trắng cuối chuỗi và đầu chuỗi cũng không mất đi: Các ký tự đầu chuỗi nằm tại chỗ, chuỗi có nghĩa bị đẩy sang cột 2, các ký tự trắng cuối chuỗi bị đẩy sang cột 3. như vậy áp dụng PP này coi chừng bị mất dữ liệu 2 cột sau.
Vậy làm theo anhtuan1066 là đúng nhất.

Mình có xem lại code 160: ký tự có code 160 Font loại nào cũng có, đó là ký tự No - Break Space. Không biết nó dùng để làm gì nữa. Nhưng mình có thể đoán ông Programmer cho 1 lệnh lấp mọi chỗ trống trong trường dữ liệu kiểu Text bằng ký tự này. Để làm gì thì cũng không biết luôn.
Nói thêm: Một số ngôn ngữ lập trình mặc định sẽ làm vậy với trường kiểu text, nhưng với ký tự code 32.

kongcom
21-12-07, 11:47 PM
ký tự No - Break Space có lẽ giống trong tin nhắn điện thoại . Mình để ý khi soạn tin nhắn nhân số 1 có kí tự rỗng không phãi là khoảng cách như khi nhấn phím 0 .

anhtuan1066
22-12-07, 07:18 AM
Nếu đã phát hiện thế thì thế này cho ngắn gọn atuan ah (thêm TRIM làm gì?)

Ê... phải TRIM chứ đồng chí... ko có nó làm sao loại bỏ khoảng trắng có mã 32 dc đây... bạn mở file ra thì biết liền... cuối chuổi vẫn còn khoảng trắng đấy
Với Heocon: Sở dĩ tôi biết dc khoảng trắng đầu có mã là 160 là do khi tôi dùng hàm TRIM ko dc tôi nghĩ ngay cái khoảng trắng đầu này có gì đó rất kỳ lạ... thế là tôi copy khoảng trắng đầu dòng ấy rồi paste vào 1 cell khác, dùng hàm CODE với cell này cho ra kết quả 160, trong khi loại khoảng trắng bình thường do ta gõ phím Space bar lại cho mã 32
-Hàm CODE và CHAR thường đi 1 cặp, đại khái 1 cái đỗi ký tự thành mã số, cái kia đỗi mã số thành ký tự... bạn tham khảo thêm bài viết của BNTT nhé!
Mến
ANH TUẤN

QuocPhong
24-12-07, 10:12 AM
Mình nghĩ là bạn heocon muốn đố các bạn thôi.
Các khoảng trắng đó được tạo ra bằng cách gõ tổ hợp phím Alt+255

tigertiger
24-12-07, 11:21 AM
Mình nghĩ là bạn heocon muốn đố các bạn thôi.
Các khoảng trắng đó được tạo ra bằng cách gõ tổ hợp phím Alt+255


oh chính xác là Alt+0160 bạn ah
Chắc là không vui đâu, có nx CT người viết để ký tự đó vào trang trí

salam
24-12-07, 11:40 AM
Khoảng trắng ở đây chắc là insert symbol rồi => không dùng Trim được.

nguyentuhp
29-12-07, 12:23 AM
Em có 1 file dữ liệu được xuất ra từ 1 ứng dụng, làm sao để có thể xóa khoảng trắng trong Cell được. Em đã dùng hàm Trim() rồi nhưng ko có tác dụng.
Anh chị nào biết cách xin chỉ dùm.

Thanks

Thân!

Tốt nhất bạn chạy Code VBA, bạn thử dùng cái này đảm bảo thực hiện 100%! (RemoveSpaceText)
}}}}}