Tách chuỗi ký tự trong 1 ô ra thành nhiều ô khác cùng hàng với điều kiện ! (2 người xem)

Liên hệ QC

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

phuongla83

Thành viên hoạt động
Tham gia
21/9/11
Bài viết
131
Được thích
8
Chào anh chị,

Nhờ anh chị giúp tách chuỗi trong 1 ô ra thành nhiều ô cùng hàng với điều kiện như sau:

Nếu ô trong cột L ( L3 ) có ký tự đầu tiên là "f2 " thì ô B3 sẽ là 2 và các ô tiếp theo cụ thể là L4 .... không bắt đầu là ký tự số 0 1 2 3 4 5 6 7 8 9 thì ô B4 ..... sẽ bằng 2

Nếu các ô trong cột L có ký tự đầu tiên là số ( 0 1 2 3 4 5 6 7 8 9 ) thì các ô trong cột B sẽ là rỗng

Các ô trong cột L không bắt đầu là ký tự số mà trước ô đó ở trên ko có ô có ký tự bắt đầu là " f2 " thì các ô tương ứng bên cột C củng là rỗng

Anh chị biết hàm nào nhờ giúp dùm, Cám ơn !
 

File đính kèm

Chào anh chị,

Nhờ anh chị giúp tách chuỗi trong 1 ô ra thành nhiều ô cùng hàng với điều kiện như sau:

Nếu ô trong cột L ( L3 ) có ký tự đầu tiên là "f2 " thì ô B3 sẽ là 2 và các ô tiếp theo cụ thể là L4 .... không bắt đầu là ký tự số 0 1 2 3 4 5 6 7 8 9 thì ô B4 ..... sẽ bằng 2

Nếu các ô trong cột L có ký tự đầu tiên là số ( 0 1 2 3 4 5 6 7 8 9 ) thì các ô trong cột B sẽ là rỗng

Các ô trong cột L không bắt đầu là ký tự số mà trước ô đó ở trên ko có ô có ký tự bắt đầu là " f2 " thì các ô tương ứng bên cột C củng là rỗng

Anh chị biết hàm nào nhờ giúp dùm, Cám ơn !

Cho tôi hỏi, vì sao số 19 (hàng tô vàng) F lại bằng 2 vậy bạn?

1631724494084.png
 
Lần chỉnh sửa cuối:
Mình nhập kết quả bằng tay bị nhầm bạn ơi
Vậy nó là rỗng luôn phải không?

Để tính cột F, bạn có thể dùng công thức dưới đây:
Mã:
=IF(LEFT(L3,2)="f2",2,IF(B2="","",IF(ISNUMBER(LEFT(L3)*1),"",IF(AND(B2=2,ISNUMBER(LEFT(L3)*1)),"",IF(AND(ISNUMBER(LEFT(L2)*1),NOT(ISNUMBER(LEFT(L3)*1))),"",2)))))
Còn tách tên hàng thì tính sau nhé.
 
Lần chỉnh sửa cuối:
Cột Tên, công thức tách hàng hóa sẽ như thế này:
Mã:
=LEFT(IF(LEFT(L3,2)="f2",SUBSTITUTE(L3,"f2 ",""),IF(ISNUMBER(LEFT(L3)*1),RIGHT(L3,LEN(L3)-FIND(" ",L3)),L3)),MIN(FIND({0,1,2,3,4,5,6,7,8,9},Q3&"0123456789"))-2)
 
Chào anh chị,

Nhờ anh chị giúp tách chuỗi trong 1 ô ra thành nhiều ô cùng hàng với điều kiện như sau:

Nếu ô trong cột L ( L3 ) có ký tự đầu tiên là "f2 " thì ô B3 sẽ là 2 và các ô tiếp theo cụ thể là L4 .... không bắt đầu là ký tự số 0 1 2 3 4 5 6 7 8 9 thì ô B4 ..... sẽ bằng 2

Nếu các ô trong cột L có ký tự đầu tiên là số ( 0 1 2 3 4 5 6 7 8 9 ) thì các ô trong cột B sẽ là rỗng

Các ô trong cột L không bắt đầu là ký tự số mà trước ô đó ở trên ko có ô có ký tự bắt đầu là " f2 " thì các ô tương ứng bên cột C củng là rỗng

Anh chị biết hàm nào nhờ giúp dùm, Cám ơn !
Mã:
B3 =IF(OR(LEFT(L3,2)="f2",AND(B2=2,ISERR(--LEFT(L3,1)))),2,"")
Mã:
C3 =TRIM(MID(SUBSTITUTE(L3," ",REPT(" ",20)),1+20*OR(LEFT(L3,2)="f2",ISNUMBER(--LEFT(L3,1))),20*(LEN(L3)-LEN(SUBSTITUTE(L3," ",""))-1-OR(LEFT(L3,2)="f2",ISNUMBER(--LEFT(L3,1))))))
Copyxuống
 
Cột Tên, công thức tách hàng hóa sẽ như thế này:
Mã:
=LEFT(IF(LEFT(L3,2)="f2",SUBSTITUTE(L3,"f2 ",""),IF(ISNUMBER(LEFT(L3)*1),RIGHT(L3,LEN(L3)-FIND(" ",L3)),L3)),MIN(FIND({0,1,2,3,4,5,6,7,8,9},Q3&"0123456789"))-2)
ra #VALUE! bạn ơi
Bài đã được tự động gộp:

Mã:
B3 =IF(OR(LEFT(L3,2)="f2",AND(B2=2,ISERR(--LEFT(L3,1)))),2,"")
Mã:
C3 =TRIM(MID(SUBSTITUTE(L3," ",REPT(" ",20)),1+20*OR(LEFT(L3,2)="f2",ISNUMBER(--LEFT(L3,1))),20*(LEN(L3)-LEN(SUBSTITUTE(L3," ",""))-1-OR(LEFT(L3,2)="f2",ISNUMBER(--LEFT(L3,1))))))
Copyxuống
Ra kết quả đúng rồi bạn ơi, cám ơn bạn nhiều !
Bài đã được tự động gộp:

Vậy nó là rỗng luôn phải không?

Để tính cột F, bạn có thể dùng công thức dưới đây:
Mã:
=IF(LEFT(L3,2)="f2",2,IF(B2="","",IF(ISNUMBER(LEFT(L3)*1),"",IF(AND(B2=2,ISNUMBER(LEFT(L3)*1)),"",IF(AND(ISNUMBER(LEFT(L2)*1),NOT(ISNUMBER(LEFT(L3)*1))),"",2)))))
Còn tách tên hàng thì tính sau nhé.
Cột F kết quả ra đúng bạn ơi, cám ơn bạn nhiều
 
Mã:
B3 =IF(OR(LEFT(L3,2)="f2",AND(B2=2,ISERR(--LEFT(L3,1)))),2,"")
Mã:
C3 =TRIM(MID(SUBSTITUTE(L3," ",REPT(" ",20)),1+20*OR(LEFT(L3,2)="f2",ISNUMBER(--LEFT(L3,1))),20*(LEN(L3)-LEN(SUBSTITUTE(L3," ",""))-1-OR(LEFT(L3,2)="f2",ISNUMBER(--LEFT(L3,1))))))
Copyxuống
Chào bạn HieuCD,
Cám ơn bạn rất nhiều, bạn hướng dẫn mình về giải thuật công thức bạn với, mình có nhu cầu sửa dử liệu 1 chút nhưng bị ảnh hưởng công thức,
Tại ô L3, dữ liệu đang là " f2 Cam To 119 t " mình muốn đổi lại là " f2 Cam To 1 1/9 t " lúc này công thức chạy tại ô B3 hiện ra tên dư số " 1 ", cụ thể hiện là " Cam To 1 "

Mình cố tìm hiểu công thức của bạn nhưng không hiểu hết nổi, mong bạn hướng dẫn lại giúp mình,
STTFTênNhập Thô
12Cam To 1f2 Cam To 1 1/9 t
22Xoai thai lanXoai thai lan 01 1 t
32Coc 1Coc 1 1/6 t
42ManMan 2 t
 
Chào bạn HieuCD,
Cám ơn bạn rất nhiều, bạn hướng dẫn mình về giải thuật công thức bạn với, mình có nhu cầu sửa dử liệu 1 chút nhưng bị ảnh hưởng công thức,
Tại ô L3, dữ liệu đang là " f2 Cam To 119 t " mình muốn đổi lại là " f2 Cam To 1 1/9 t " lúc này công thức chạy tại ô B3 hiện ra tên dư số " 1 ", cụ thể hiện là " Cam To 1 "

Mình cố tìm hiểu công thức của bạn nhưng không hiểu hết nổi, mong bạn hướng dẫn lại giúp mình,
STTFTênNhập Thô
12Cam To 1f2 Cam To 1 1/9 t
22Xoai thai lanXoai thai lan 01 1 t
32Coc 1Coc 1 1/6 t
42ManMan 2 t
Mã:
C3 =IF(OR(LEFT(L3,2)="f2",ISNUMBER(--LEFT(L3,1))),MID(L3,FIND(" ",L3)+1,MIN(IFERROR(FIND({0,1,2,3,4,5,6,7,8,9},MID(L3,FIND(" ",L3),90)),90)-3)),MID(L3,1,MIN(IFERROR(FIND({0,1,2,3,4,5,6,7,8,9},L3),90)-2)))
Nhấn Ctrl+Shift+Enter
 
Mã:
C3 =IF(OR(LEFT(L3,2)="f2",ISNUMBER(--LEFT(L3,1))),MID(L3,FIND(" ",L3)+1,MIN(IFERROR(FIND({0,1,2,3,4,5,6,7,8,9},MID(L3,FIND(" ",L3),90)),90)-3)),MID(L3,1,MIN(IFERROR(FIND({0,1,2,3,4,5,6,7,8,9},L3),90)-2)))
Nhấn Ctrl+Shift+Enter
Hi Bạn,

cột L3, dữ liệu gốc là "f2 Cam To 1 1/9 t" sau khi chạy công thức bạn ở cột C ( Tên ), C3 = kết quả cho ra là "Cam To 1 1/9 t", dữ liệu cho kết quả đúng phải là" C3 = "Cam To"

bạn xem lại giúp nhe ! Cám ơn !
Bài đã được tự động gộp:

Hi Bạn,

cột L3, dữ liệu gốc là "f2 Cam To 1 1/9 t" sau khi chạy công thức bạn ở cột C ( Tên ), C3 = kết quả cho ra là "Cam To 1 1/9 t", dữ liệu cho kết quả đúng phải là" C3 = "Cam To"

bạn xem lại giúp nhe ! Cám ơn !
Bạn làm đúng rồi, do tại mình không Ctrl Shift Enter nên ko ra kết quả đúng, cám ơn bạn nhiều
 
Lần chỉnh sửa cuối:
Hi Bạn,

cột L3, dữ liệu gốc là "f2 Cam To 1 1/9 t" sau khi chạy công thức bạn ở cột C ( Tên ), C3 = kết quả cho ra là "Cam To 1 1/9 t", dữ liệu cho kết quả đúng phải là" C3 = "Cam To"

bạn xem lại giúp nhe ! Cám ơn !
Bài đã được tự động gộp:


Bạn làm đúng rồi, do tại mình không Ctrl Shift Enter nên ko ra kết quả đúng, cám ơn bạn nhiều
Chào bạn,
Mình dùng công thức như sau:

IF(LEN(I3)-LEN(SUBSTITUTE(I3," ",""))=1,LEFT(I3,FIND(" ",I3)-1),LEFT(I3,FIND(" ",I3,FIND(" ",I3)+1)-1))

để tách chuổi còn lại ra các ô tương ứng, đã thành công, nhưng gặp 1 vấn đề phát sinh là: Excel lại hiểu 1 1/9 là TEXT chứ không phải số, mình đã định dạng lại mà ko được,
Nhưng mình đổi dữ liệu nhập liệu ban đầu là 1.111 (thay thế cho 1 1/9) thì Excel lại hiểu là dạng số,

có cách nào dùng được dạng phân số cho nhập liệu ban đầu mà sau khi tách chuổi từ 1 ô ra thành nhiều ô mà vẫn được định dạng là số ( phân số)

Cám ơn !

P/s: Số nguyên vẫn được hiểu là số chỉ trừ dạng phân số sau khi tách chuỗi bị hiểu là TEXT,

Ô "Man 2 t" sau khi được tách ra thì ô chứa giá trị 2 dc hiểu là số.

Ô " f2 Cam To 1 1/9 t" sau khi được tách ra thì ô chứa giá trị ( 1 1/9 ) bị hiểu là TEXT

STTFTênNhập Thô
12Cam To 1f2 Cam To 1 1/9 t
22Xoai thai lanXoai thai lan 01 1 t
32Coc 1Coc 1 1/6 t
42ManMan 2 t
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom