donhungtin2013
Thành viên mới
- Tham gia
- 14/8/14
- Bài viết
- 171
- Được thích
- 4
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ácTrong 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: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.
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.
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)
=--SUBSTITUTE(UPPER(MID(SUBSTITUTE(B4,",",REPT(" ",200)),400,200)),"CLASS ","")
Góp thêm 1 cách nữa ở cột D:
Fill xuống!!!PHP:D4=LOOKUP(10^6,--MID(B4,SEARCH("class",B4)+5,ROW($1:$10)))
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!!!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!
Góp thêm 1 cách nữa ở cột D:
Fill xuống!!!PHP:D4=LOOKUP(10^6,--MID(B4,SEARCH("class",B4)+5,ROW($1:$10)))
Vậy số 11 bạn lấy class nào?BẠn ơi công thức này ở No. số 2 và 15 chưa chuẩn, đúng ra phải là 3000 và 150 bạn xem lại giúp.
sau dấu phẩy class 150Vậy số 11 bạn lấy class nào?
Bạn sữa vầy xem:sau dấu phẩy class 150
=LOOKUP(10^6,--MID(B4,SEARCH(", class",B4)+7,ROW($1:$10)))