Tách chuỗi sau dấy phẩy (4 người xem)

Liên hệ QC

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

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

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

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

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

Back
Top Bottom