Tách chuỗi sau dấy phẩy

Liên hệ QC

donhungtin2013

Thành viên mới
Tham gia
14/8/14
Bài viết
171
Được thích
4
Trong file đính kèm em muốn tách dữ liệu từ cột B sang cột C và D với kết quả như trong file. Nhờ mọi người giúp em công thức với, em cảm ơn nhiều.
 

File đính kèm

  • tach sau dau phay.xlsx
    11.8 KB · Đọc: 26
Trong file đính kèm em muốn tách dữ liệu từ cột B sang cột C và D với kết quả như trong file. Nhờ mọi người giúp em công thức với, em cảm ơn nhiều.
theo dữ liệu hiện tại thì như vầy, những dữ liệu kiểu khác thì tính cách khác
C4=LEFT(B4,FIND(",",B4)-1)
D4=MID(B4,SEARCH(", Class ",B4)+8,SEARCH(",",B4,SEARCH(", Class ",B4)+8)-SEARCH(", Class ",B4)-8)
 

File đính kèm

  • tach sau dau phay.xlsx
    11.7 KB · Đọc: 12
Lần chỉnh sửa cuối:
Mã:
C4=TRIM(LEFT(SUBSTITUTE(B4,",",REPT(" ",200)),150))
D4=1*TRIM(LEFT(SUBSTITUTE(RIGHT(RIGHT(B4,LEN(B4)-SEARCH(", class",B4)+1),LEN(RIGHT(B4,LEN(B4)-SEARCH(", class",B4)+1))-8),",",REPT(" ",200)),150))
Copy xuống.
 
Trong file đính kèm em muốn tách dữ liệu từ cột B sang cột C và D với kết quả như trong file. Nhờ mọi người giúp em công thức với, em cảm ơn nhiều.
Có 1 cách khác, không phải công thức, bạn tham khảo:
PHP:
Sub abc()
    Dim a As Range, i As Long
    For i = 4 To Range("A" & Rows.Count).End(3).Row
        Set a = Range("B" & i)
        If a = "" Then Exit Sub
        Range("C" & i) = Split(a, ", ")(0)
        Range("D" & i) = Split(a, ", ")(2)
    Next i
    Columns(4).Replace "Class", ""
End Sub
 
trong file đính kèm em muốn tách dữ liệu từ cột b sang cột c và d với kết quả như trong file. Nhờ mọi người giúp em công thức với, em cảm ơn nhiều.
Mã:
c4=left(b4,find(",",b4)-1)
d4=left(right(b4,len(b4)-find($d$2,b4)-len($d$2)),find(",",right(b4,len(b4)-find($d$2,b4)-len($d$2)))-1)
 
Góp công thức khác cho cột D:
Mã:
=--SUBSTITUTE(UPPER(MID(SUBSTITUTE(B4,",",REPT(" ",200)),400,200)),"CLASS ","")
 
Góp thêm 1 cách nữa ở cột D:
PHP:
D4=LOOKUP(10^6,--MID(B4,SEARCH("class",B4)+5,ROW($1:$10)))
Fill xuống!!!
 
Lần chỉnh sửa cuối:
Góp thêm 1 cách nữa ở cột D:
PHP:
D4=LOOKUP(10^6,--MID(B4,SEARCH("class",B4)+5,ROW($1:$10)))
Fill xuống!!!

Phía đuôi là ROW($1:$10) thì phía trước phải là 10^10 mới đúng chứ
???
Mỗi cell là mảng 10 phần tử, nên dữ liệu nhiều cũng không phải là giải pháp hay!
 
Phía đuôi là ROW($1:$10) thì phía trước phải là 10^10 mới đúng chứ
???
Mỗi cell là mảng 10 phần tử, nên dữ liệu nhiều cũng không phải là giải pháp hay!
vì em thấy dữ liệu ra cũng nhỏ nên để 10^6, để 10^10 cũng được, 10 phần tử trong 1 excel cũng không quá nặng, em đã thử với 1 triệu dòng excel với các CT ở bài, độ trễ của các công thức là không đáng kể , CT bài #3,5 là chậm nhất, có lẽ do dùng Find nhiều lần, đều đạt ngưỡng<30s!!!
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom