Xin chỉ dẫn về việc tách dữ liệu trong 1 cell thành 2 cell riêng (1 người xem)

Liên hệ QC

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

chickenlove258

Thành viên mới
Tham gia
8/1/12
Bài viết
18
Được thích
2
Chào các bạn,
Mình Xin các bạn hường dẫn cách tách dữ liệu trong 1 cell thành 2 cell kế bên nhau ( xin xem trong file đính kèm). Ví dụ 1 cell đầu tiên như sau:

" CẦU VỒNG KHUYẾT
Ai đã yêu một lần đều hạnh phúc với người mình yêu… "

Kết quả mong muốn của mình là thành 2 cell kề nhau:

" CẦU VỒNG KHUYẾT " "Ai đã yêu một lần đều ...."

Mình đã muốn dùng Hàm TRIM hoặc TEXT to COLUMN để tách nhưng không biết kí tự để xuống hàng trong cell trên là gì ??( Vì dữ liệu gốc như thế )
MOng các bạn giúp mình, dù thành công hay không Mình cũng Xin chân thành cám ơn tất cả sự quan tâm vì đã xem qua bài viết này
Thân ái.....
 

File đính kèm

Ký tự xuống hàng như bạn nói trong excel là char(10) --> chỉ cần tìm ra vị trí xuống hàng: find(char(10),TEXT,1)) ==> Tiếp đó kết hợp với hàm Left và hàm Right là ok thôi
 
Chào các bạn,
Mình Xin các bạn hường dẫn cách tách dữ liệu trong 1 cell thành 2 cell kế bên nhau ( xin xem trong file đính kèm). Ví dụ 1 cell đầu tiên như sau:

" CẦU VỒNG KHUYẾT
Ai đã yêu một lần đều hạnh phúc với người mình yêu… "

Kết quả mong muốn của mình là thành 2 cell kề nhau:

" CẦU VỒNG KHUYẾT " "Ai đã yêu một lần đều ...."

Mình đã muốn dùng Hàm TRIM hoặc TEXT to COLUMN để tách nhưng không biết kí tự để xuống hàng trong cell trên là gì ??( Vì dữ liệu gốc như thế )
MOng các bạn giúp mình, dù thành công hay không Mình cũng Xin chân thành cám ơn tất cả sự quan tâm vì đã xem qua bài viết này
Thân ái.....

Tại D2 nhập =LEFT(B2,SEARCH(CHAR(10),B2))
Tại C2 nhập =RIGHT(B2,LEN(B2)-LEN(D2))
 
Cám ơn hai bạn đã nhanh chóng trả lời, đồng thời cũng đã giúp minh thành công...
 
Tại D2 nhập =LEFT(B2,SEARCH(CHAR(10),B2))
Tại C2 nhập =RIGHT(B2,LEN(B2)-LEN(D2))
... Nhưng còn 1 lỗi nhỏ là còn kí tự char(10)... nên D2 có tên bài hát bị xuống dòng, không thể canh chỉnh chính giữa hàng được. Bác Quang Hải có thể thêm thắt chút để xóa cái kí tự char(10) sau khi tách được không ạ....Em mò hoài mà ko được ( do cai kiến thức Excel rất hạn chế của em)
Một lần nữa xin cám ơn sự quan tâm của các Bạn
 
D2 nhập =LEFT(B2,SEARCH(CHAR(10)-1,B2))
C2 nhập =RIGHT(B2,LEN(B2)-LEN(D2)-1)
 
... Nhưng còn 1 lỗi nhỏ là còn kí tự char(10)... nên D2 có tên bài hát bị xuống dòng, không thể canh chỉnh chính giữa hàng được. Bác Quang Hải có thể thêm thắt chút để xóa cái kí tự char(10) sau khi tách được không ạ....Em mò hoài mà ko được ( do cai kiến thức Excel rất hạn chế của em)
Một lần nữa xin cám ơn sự quan tâm của các Bạn

Sau khi tách ra rồi, bạn chọn cột nào bị xuống dòng vì còn cái ký tự không mong muốn đó. Bấm Ctrl + H, trong hộp thoại Find bạn nhập: 010 ( nhớ ấn phím Alt trong khi nhập nhé. Bạn sẽ không nhìn thấy gì hiển thị khi nhập) tiếp theo chọn Replace All

Thêm 1 cách nữa là copy cột dữ liệu ra thêm 2 cột mới. Chọn 1 cột mới và thao tác thế này
Bấm Ctrl H, trong hộp Find nhập *010 ( nhớ đè phím Alt khi nhập 010 nhé) rồi bấm Replace All
Cột còn lại thì làm ngược lại 010*
Bạn nghiên cứu nhé
 
Lần chỉnh sửa cuối:
Cám ơn các bạn đã giúp đỡ Mình tận tình... Mình thử nhập hàm này để test nhưng kết quả #Value....
Mình định dạng Merge Cell thì OK rồi...
Xin lỗi vì công thức trên sai. Công thức đúng là
D2 =LEFT(B2,SEARCH(CHAR(10),B2)-1)
E2 như cũ
 
Chân thành cám ơn các Bạn đã hỗ trợ....Mình đã thành công trong việc tach dữ liệu từ kí tự CHAR(10)...
Nhân tiện Các Bạn có thể giúp thêm 1 chút xíu nữa để bản in Karaoke được hoàn chỉnh...
Vì lời bài hát quá dài nên khi in ra chiếm rất nhiều trang...Nay mình muốn xóa bớt.
Ví dụ: "Nuốt nước mắt khẽ ôm em ấm lòng trong phút giây biệt ly…"
Mình sẽ lấy 5 từ tính từ bên trái sang: "Nuốt nước mắt khẽ ôm" ---> kết quả.
Mình chỉ biết làm thủ công dùng TEXT to COLUMN tach ra thanh các từ riêng biệt(cột) qua khoang trắng SPACE, rồi dùng Column to TEXT trong Word để nối 5 cột lại. tuy ra kết quả mong muốn nhưng không chuyên tí nào... Bác nào có cao kiến giúp em cho trót để có vol Karaoke nhỏ gọn hat ở nhà.
Cám ơn tất cả...
 
Giả sử dữ liệu tại ô A1, bạn dùng công thức sau kết thúc bằng Ctrl + Shift +Enter nhé
=LEFT(A1,SMALL(IF(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)=" ",ROW(INDIRECT("1:"&LEN(A1))),""),5))
 
Chân thành cám ơn các Bạn đã hỗ trợ....Mình đã thành công trong việc tach dữ liệu từ kí tự CHAR(10)... Nhân tiện Các Bạn có thể giúp thêm 1 chút xíu nữa để bản in Karaoke được hoàn chỉnh... Vì lời bài hát quá dài nên khi in ra chiếm rất nhiều trang...Nay mình muốn xóa bớt. Ví dụ: "Nuốt nước mắt khẽ ôm em ấm lòng trong phút giây biệt ly…" Mình sẽ lấy 5 từ tính từ bên trái sang: "Nuốt nước mắt khẽ ôm" ---> kết quả. Mình chỉ biết làm thủ công dùng TEXT to COLUMN tach ra thanh các từ riêng biệt(cột) qua khoang trắng SPACE, rồi dùng Column to TEXT trong Word để nối 5 cột lại. tuy ra kết quả mong muốn nhưng không chuyên tí nào... Bác nào có cao kiến giúp em cho trót để có vol Karaoke nhỏ gọn hat ở nhà. Cám ơn tất cả...
Nếu muốn đủ 5 từ thì làm tạm thế này =LEFT(A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1)) & "…"
Hoặc thế này sẽ đẹp hơn tí khi in ra sẽ đều các hàng hơn =LEFT(A1,FIND(" ",A1,25)) & "…"
Muốn xài sang tí nữa thì code nhé
PHP:
Function tach(cell As Range, sotu As Byte)
Dim tam As Variant, kq As Variant, i As Long 
tam = Split(cell, " ") 
   For i = 0 To sotu    
     kq = kq & tam(i) & " " 
  Next 
tach = kq & "..."
End Function
 
Lần chỉnh sửa cuối:
Nếu muốn đủ 5 từ thì làm tạm thế này =LEFT(A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1)) & "…"
Hoặc thế này sẽ đẹp hơn tí khi in ra sẽ đều các hàng hơn =LEFT(A1,FIND(" ",A1,25)) & "…"
Muốn xài sang tí nữa thì code nhé
PHP:
Function tach(cell As Range, sotu As Byte)
Dim tam As Variant, kq As Variant, i As Long 
tam = Split(cell, " ") 
   For i = 0 To sotu    
     kq = kq & tam(i) & " " 
  Next 
tach = kq & "..."
End Function
Híc, muốn nói nhưng không nói nên lời
Sau khi tách ra rồi, bạn chọn cột nào bị xuống dòng vì còn cái ký tự không mong muốn đó. Bấm Ctrl + H, trong hộp thoại Find bạn nhập: 010 ( nhớ ấn phím Alt trong khi nhập nhé. Bạn sẽ không nhìn thấy gì hiển thị khi nhập) tiếp theo chọn Replace All

Thêm 1 cách nữa là copy cột dữ liệu ra thêm 2 cột mới. Chọn 1 cột mới và thao tác thế này
Bấm Ctrl H, trong hộp Find nhập *010 ( nhớ đè phím Alt khi nhập 010 nhé) rồi bấm Replace All
Cột còn lại thì làm ngược lại 010*
Bạn nghiên cứu nhé
Cái này dân nhậu người ta nói rằng: "anh bạn này ở không quá hé, cái thằng Char(10) thịt nó ngay lúc tách ô cho nhẹ nhàng ( cứ làm như Thầy Ptm cho xong)
quanghai1969;445979]Nếu muốn đủ 5 từ thì làm tạm thế này =LEFT(A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1,FIND(" ",A1)+1)+1)+1)+1)) & "…"
Hoặc thế này sẽ đẹp hơn tí khi in ra sẽ đều các hàng hơn =LEFT(A1,FIND(" ",A1,25)) & "…"
Tới cái này, dân nhậu người ta cũng nói rằng: "anh bạn này ở không quá hé"
Muốn lấy 5 từ tính từ trái sang thì cứ phang nó một cái thế này xem sao, ( thí dụ dữ liệu ở [A1], nhập chuẩn, không có khoảng trắng vô nghĩa)
=LEFT(A1,FIND("*",SUBSTITUTE(A1," ","*",5)))
Cái "*" thay thế bằng ký tự quái nào cũng được, miễn biết chắc em í không có trong dữ liệu
Híc +-+-+-++-+-+-++-+-+-+, muốn tỉnh luôn, chắc phí chục lon từ chiều tới giờ quá
 
Lần chỉnh sửa cuối:
BÁc Con cò già phân tích thật hay, Tuy nhiên em vẫn thử tất cả các cách mà các bạn khác đưa ra vì đó là sự sáng tạo cá nhân để giải quyết bài toán.
Và Kết quả là:
1. Hàm của Bác CON CÒ GIÀ là chính xác nhất ( KQ đúng 5 từ ).
2. Hàm của Bác QuangHai69 đơn giản nhất, nhìn vào hàm là hiểu ngay vấn đề, dễ tùy chỉnh. Tuy kết quả không chính xác như yêu cầu là 5 từ, nhưng lại rất đẹp với bản in của mình ( chỉ lấy 25 kí tự hoac bao nhieu tuy thích miễn đúng với chiều dài Cell mình muốn đinh dạng ).
Cảm ơn tất cả các Quý Thầy CÔ, Các Anh CHị, bạn bè gần xa trên diễn đàn đã giúp đỡ Mình..
 
Web KT

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

Back
Top Bottom