Giúp đỡ tách text trong cell

Liên hệ QC

adult

Thành viên hoạt động
Tham gia
2/12/07
Bài viết
193
Được thích
30
Chào các bạn,
Mình đang gặp trục trặc về mặt công thức tách sau

VD:
Ô A1 có nội dung sau D:\Tong hop file\Nam 2011\Thang 1\22.08.12\
Ô A2 có nội dung sau D:\Tong hop file\Nam 2012\Thang 2\TUAN 1\12.07.12

Mình muốn lập công thức cho ô B1 để tách text từ "Thang 1" ra, từ dấu "\" sau Thang 1 trở về sau sẽ không lấy thì làm sao ah. Tương tự ô B2 tách từ A2 lấy từ "thang 2" cũng thế luôn.
Các bạn giúp đỡ mình nhé. Thanks mọi người nhiều
 
Lần chỉnh sửa cuối:
Chào các bạn,
Mình đang gặp trục trặc về mặt công thức tách sau

VD:
Ô A1 có nội dung sau D:\Tong hop file\Nam 2011\Thang 1\22.08.12\
Ô A2 có nội dung sau D:\Tong hop file\Nam 2012\Thang 2\TUAN 1\12.07.12

Mình muốn lập công thức cho ô B1 để tách text từ "Thang 1" ra, từ dấu "\" sau Thang 1 trở về sau sẽ không lấy thì làm sao ah. Tương tự ô B2 tách từ A2 lấy từ "thang 2" cũng thế luôn.
Các bạn giúp đỡ mình nhé. Thanks mọi người nhiều
Việc tách chuỗi có rất nhiều trên diễn đàn
công thức khá quen thuộc
Mã:
=TRIM(MID(SUBSTITUTE(A1,"\",REPT(" ",255)),255*3,255))
 
Chào các bạn,
Mình đang gặp trục trặc về mặt công thức tách sau

VD:
Ô A1 có nội dung sau D:\Tong hop file\Nam 2011\Thang 1\22.08.12\
Ô A2 có nội dung sau D:\Tong hop file\Nam 2012\Thang 2\TUAN 1\12.07.12

Mình muốn lập công thức cho ô B1 để tách text từ "Thang 1" ra, từ dấu "\" sau Thang 1 trở về sau sẽ không lấy thì làm sao ah. Tương tự ô B2 tách từ A2 lấy từ "thang 2" cũng thế luôn.
Các bạn giúp đỡ mình nhé. Thanks mọi người nhiều
Thay vì nói dài dòng thì mình sẽ nói
Tôi có
D:\Tong hop file\Nam 2011\Thang 1\22.08.12\
D:\Tong hop file\Nam 2012\Thang 2\TUAN 1\12.07.12
Tôi muốn kết quả
D:\Tong hop file\Nam 2011\Thang 1
D:\Tong hop file\Nam 2012\Thang 2

Đại loại vậy phải dễ hiểu hơn không
 
Thay vì nói dài dòng thì mình sẽ nói
Tôi có
D:\Tong hop file\Nam 2011\Thang 1\22.08.12\
D:\Tong hop file\Nam 2012\Thang 2\TUAN 1\12.07.12
Tôi muốn kết quả
D:\Tong hop file\Nam 2011\Thang 1
D:\Tong hop file\Nam 2012\Thang 2

Đại loại vậy phải dễ hiểu hơn không
Cảm ơn bạn đã rút gọn giúp mình. Để mình trình bày lại ý nhé:
Tôi có
D:\Tong hop file\Nam 2011\Thang 1\22.08.12\
D:\Tong hop file\Nam 2012\Thang 2\TUAN 1\12.07.12
Tôi muốn kết quả
Thang 1
Thang 2
Nếu chỉ đơn thuần là lấy như ý của bạn thì mình nghĩ chỉ cần dùng hàm left là ra kết quả. Nhưng vì trong folder của mình không phải lúc nào nó cũng là thang 1, thang 2 mà có những cái nó text khác nên mình mới muốn tách theo dấu "\" cho nó đồng bộ đấy.
 
Lần chỉnh sửa cuối:
Cảm ơn bạn đã rút gọn giúp mình. Để mình trình bày lại ý nhé:
Tôi có
D:\Tong hop file\Nam 2011\Thang 1\22.08.12\
D:\Tong hop file\Nam 2012\Thang 2\TUAN 1\12.07.12
Tôi muốn kết quả
Thang 1
Thang 2
Nếu chỉ đơn thuần là lấy như ý của bạn thì mình nghĩ chỉ cần dùng hàm left là ra kết quả. Nhưng vì trong folder của mình không phải lúc nào nó cũng là thang 1, thang 2 mà có những cái nó text khác nên mình mới muốn tách theo dấu "\" cho nó đồng bộ đấy.
Đưa file nên đây để tôi xem mặt mũi dữ liệu của bạn ra sao?
 
Việc tách chuỗi có rất nhiều trên diễn đàn
công thức khá quen thuộc
Mã:
=TRIM(MID(SUBSTITUTE(A1,"\",REPT(" ",255)),255*3,255))
Cảm ơn bạn, công thức bạn rất độc đáo và đúng ý mình cần, do mình chưa gặp hàm REPT bao giờ nên bạn có thể cho mình hỏi ý nghĩa của nó là gì không? Và 255 là gì?
Thanks so much
 
Lần chỉnh sửa cuối:
Cảm ơn bạn, công thức bạn rất độc đáo và đúng ý mình cần, do mình chưa gặp hàm REPT bao giờ nên bạn có thể cho mình hỏi ý nghĩa của nó là gì không? Và 255 là gì?
Thanks so much
Tặng bạn 1 địa chỉ để nghiên cứu khi muốn biết sử dụng hàm nào đó của Excel
http://www.giaiphapexcel.com/forum/showthread.php?7971-Tra-Cứu-Hàm-Excel&p=54708#post54708
Thanks mọi người nhiều.
Thanks so much
Đừng viết những từ mà nhiều người hổng biết rõ nghĩa nó là gì vì không ai cũng "giỏi" ngoại ngữ. Viết tiếng Việt có dấu đàng hoàng có thể còn trân trọng hơn.
 
Đưa file nên đây để tôi xem mặt mũi dữ liệu của bạn ra sao?
Xin lỗi bạn, mình chỉ mới hình thành ý tưởng chứ chưa làm file. Phần đầu có bạn đã giải quyết đúng ý mình rồi.

Phần 2: Vì mình công tác trong mảng đầu tư tài chính, muốn nhờ các phòng ban khác hỗ trợ gọi điện thoại cho các cổ đông, không thể gửi toàn bộ thông tin cho họ được. Mình đã tách ra mỗi người một file riêng để họ gọi và ghi theo dinh dang sau

Vd: file name ban đầu la tên họ_ số điện thoại.prc. Sau khi gọi điện xong, các phòng ban sẽ note lại cho mình theo cấu trúc sau
Nguyen Van A 18.08.2012 (Dong y tham du).prc
Nguyen Van Anh B 17.08.2012 (Dong y tham du nhung den tre 10 phut).prc
Tran Thi C 16.08.2012 (Khong tham du duoc).prc
Ngo Van D 16.08.2012 (Muon gui email thu moi tham du).prc

Mình đã tìm trên diễn đàn và có code lấy toàn bộ filename trong folder bỏ vào trong cột A nên mình minh mong muon trong file excel sẽ tách các text như trong file đính kèm
Cảm ơn các bạn nhiều
 

File đính kèm

  • Book1.xlsx
    10.5 KB · Đọc: 7
Lần chỉnh sửa cuối:
Tặng bạn 1 địa chỉ để nghiên cứu khi muốn biết sử dụng hàm nào đó của Excel
http://www.giaiphapexcel.com/forum/showthread.php?7971-Tra-Cứu-Hàm-Excel&p=54708#post54708

Đừng viết những từ mà nhiều người hổng biết rõ nghĩa nó là gì vì không ai cũng "giỏi" ngoại ngữ. Viết tiếng Việt có dấu đàng hoàng có thể còn trân trọng hơn.

Cảm ơn bạn đã hỗ trợ. Bạn hơi khó tính nhưng mình sẽ tiếp thu và ghi thuần việt vậy ^_^
 
Lần chỉnh sửa cuối:
Cảm ơn bạn, công thức bạn rất độc đáo và đúng ý mình cần, do mình chưa gặp hàm REPT bao giờ nên bạn có thể cho mình hỏi ý nghĩa của nó là gì không? Và 255 là gì?
Thanks so much

Trả lời luôn cho bạn nhé,
Hàm REPT là hàm lặp, ở đây bác VMH0307 muốn lặp lại khoảng trắng 255 lần, sau đó lấy từ vị trí 255*3 do trong chuỗi của bạn, trước dữ liệu cần lấy có 3 ký tự "\" đã được thay thế bằng khoảng trắng.
Số 255 bạn có thể thay bằng 01 số bất kỳ khác cũng được (Điều kiện phải lớn hơn số ký tự lớn nhất của các chuỗi liền kề "\"
 
Xin lỗi bạn, mình chỉ mới hình thành ý tưởng chứ chưa làm file. Phần đầu có bạn đã giải quyết đúng ý mình rồi.

Phần 2: Vì mình công tác trong mảng đầu tư tài chính, muốn nhờ các phòng ban khác hỗ trợ gọi điện thoại cho các cổ đông, không thể gửi toàn bộ thông tin cho họ được. Mình đã tách ra mỗi người một file riêng để họ gọi và ghi theo dinh dang sau

Vd: file name ban đầu la tên họ_ số điện thoại.prc. Sau khi gọi điện xong, các phòng ban sẽ note lại cho mình theo cấu trúc sau
Nguyen Van A 18.08.2012 (Dong y tham du).prc
Nguyen Van Anh B 17.08.2012 (Dong y tham du nhung den tre 10 phut).prc
Tran Thi C 16.08.2012 (Khong tham du duoc).prc
Ngo Van D 16.08.2012 (Muon gui email thu moi tham du).prc

Mình đã tìm trên diễn đàn và có code lấy toàn bộ filename trong folder bỏ vào trong cột A nên mình minh mong muon trong file excel sẽ tách các text như trong file đính kèm
Cảm ơn các bạn nhiều
Bạn thử xem nhé:
Ô B2: =LEFT(A2,FIND("_",A2)-1)
Ô C2: =MID(A2,FIND("_",A2)+1,FIND("(",A2)-FIND("_",A2)-2)
Ô D2: =MID(A2,FIND("(",A2)+1,FIND(")",A2)-FIND("(",A2)-1)
Ô C2 nếu muốn đổi thành ngày tháng đối với máy của mình phải thay "." bằng "/" và nhân với một. Bạn thử trên máy bạn xem sao nhé.
=SUBSTITUTE(MID(A2,FIND("_",A2)+1,FIND("(",A2)-FIND("_",A2)-2),".","/")*1
 
Lần chỉnh sửa cuối:
(Điều kiện phải lớn hơn số ký tự lớn nhất của các chuỗi liền kề "\"
Mình đính chính là: 255 là viết do lười thôi vì nghĩ chuỗi của bạn chắc cũng không dài hơn 255 ký tự (nếu làm trong excel 2003 thì là giới hạn ký tự trong ô).
Ở đây 255 có thể thay thế bằng tối thiếu chiều dài của toàn bộ chuỗi nhé (tức len(A1)) vì khi đó với công thức trên việc bạn dùng hàm Mid để lấy 255 ký tự tại từng vị trí n x 255 (n=1-x, với x là số "\") thì từng thành phần của chuỗi (được phân tách bởi "/") sẽ nằm trọn trong kết quả nhận về từ ham Mid này.
ví dụ:
PHP:
A1=abc/cdeh/dsrgghhy/d (1)
substitute("/" & A1,"/",rept(" ",255))=[255 lần dấu cách]abc[255 lần dấu cách]cdeh[255 lần dấu cách]dsrgghhy[255 lần dấu cách]d (2)
mid(chuỗi (2),255,255)=abc[252 lần dấu cách] (3)
trim(chuỗi (3))=abc
 
Xin lỗi bạn, mình chỉ mới hình thành ý tưởng chứ chưa làm file. Phần đầu có bạn đã giải quyết đúng ý mình rồi.

Phần 2: Vì mình công tác trong mảng đầu tư tài chính, muốn nhờ các phòng ban khác hỗ trợ gọi điện thoại cho các cổ đông, không thể gửi toàn bộ thông tin cho họ được. Mình đã tách ra mỗi người một file riêng để họ gọi và ghi theo dinh dang sau

Vd: file name ban đầu la tên họ_ số điện thoại.prc. Sau khi gọi điện xong, các phòng ban sẽ note lại cho mình theo cấu trúc sau
Nguyen Van A 18.08.2012 (Dong y tham du).prc
Nguyen Van Anh B 17.08.2012 (Dong y tham du nhung den tre 10 phut).prc
Tran Thi C 16.08.2012 (Khong tham du duoc).prc
Ngo Van D 16.08.2012 (Muon gui email thu moi tham du).prc

Mình đã tìm trên diễn đàn và có code lấy toàn bộ filename trong folder bỏ vào trong cột A nên mình minh mong muon trong file excel sẽ tách các text như trong file đính kèm
Cảm ơn các bạn nhiều

Bài này có thể dùng công cụ Text to Columns kết hợp với Find and Replace ra kết quả trong vòng 15s
 
Bạn thử xem nhé:
Ô B2: =LEFT(A2,FIND("_",A2)-1)
Ô C2: =MID(A2,FIND("_",A2) 1,FIND("(",A2)-FIND("_",A2)-2)
Ô D2: =MID(A2,FIND("(",A2) 1,FIND(")",A2)-FIND("(",A2)-1)
Ô C2 nếu muốn đổi thành ngày tháng đối với máy của mình phải thay "." bằng "/" và nhân với một. Bạn thử trên máy bạn xem sao nhé.
=SUBSTITUTE(MID(A2,FIND("_",A2) 1,FIND("(",A2)-FIND("_",A2)-2),".","/")*1
Mình đã làm thành công nhưng có 1 trục trặc nho nhỏ ở cột C2 khi có những người họ không ghi theo định dạng mình cần
VD: Nguyen Van A_18.08.2012 (Dong y tham du).prc thì sẽ trả ra đúng kết quả là 18/08/2012. Tuy nhiên, trong trường hợp khác thì ra kết quả không đúng
Nguyen Van A_18.08.12 (Dong y tham du).prc thì kết quả trả ra là 18/08/2001 chứ không phải là 18/08/2012.
Bạn xem thử có cách nào giải quyết không nhé.
Cảm ơn nhiều lắm
Mình đã tìm được cách khắc phục rồi
Ô C2: =SUBSTITUTE(MID(A2,FIND("_",A2) 1,FIND("(",A2)-FIND("_",A2)-1),".","/")*1 là kết quả chính xác
 
Lần chỉnh sửa cuối:
Anh Ndu có thể hướng dẫn mình được không? Dù sao có thêm 1 cách mới cũng học hỏi thêm.

Tôi tưởng gợi ý vậy bạn tự làm được rồi chứ:
- Quét chọn dữ liệu, bấm Ctrl + H, khung Find What)*, khung Replace With để trống rồi bấm Replace All. Tiếp theo gõ dấu ( vào khung Find What, gõ dấu _ khung Replace With rồi bấm Replace All
- Bây giờ dùng công cụ Text to columns tách dữ liệu với dấu phân cách là dấu _
Xong
 
Web KT
Back
Top Bottom