Tách chuỗi có điều kiện bằng công thức (1 người xem)

  • Thread starter Thread starter tocxuu
  • Ngày gửi Ngày gửi
Liên hệ QC

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

tocxuu

Thành viên mới
Tham gia
9/12/15
Bài viết
16
Được thích
9
Em chào các anh chị trong diễn đàn,
Em có vấn đề cần tách chuỗi như hình. Em muốn sử dụng công thức - không dùng VBA ạ.
Nhờ các anh chị giúp đỡ.
Em xin chân thành cảm ơn.
Tocxuu,

1585994308245.png
 
Lần chỉnh sửa cuối:
Quy tắc của số 3 và số 2 lại không giống 1 và 4 à bạn?
 
Mình giúp bạn chân tình nek tại ô C2
=REPT(B2,LEN($A$2)-LEN(SUBSTITUTE($A$2,B2,"")))
Cảm ơn bạn. Công thức rất dễ hiểu và dễ nhớ.
Nếu mình bỏ dữ liệu ở cột B, có cách nào truy xuất được dữ liệu như ở cột C bằng công thức không nhỉ?
Giống như kiểu mình dùng REGULAR EXPRESSION tách chuỗi ấy.
Mình chân thành cảm ơn,
 
Cảm ơn bạn. Công thức rất dễ hiểu và dễ nhớ.
Nếu mình bỏ dữ liệu ở cột B, có cách nào truy xuất được dữ liệu như ở cột C bằng công thức không nhỉ?
Giống như kiểu mình dùng REGULAR EXPRESSION tách chuỗi ấy.
Mình chân thành cảm ơn,
Ví dụ bạn muốn xuất kết quả số 1 thì đổi b2 thành 1

=REPT(1,LEN($A$2)-LEN(SUBSTITUTE($A$2,1,"")))
 
Ví dụ bạn muốn xuất kết quả số 1 thì đổi b2 thành 1

=REPT(1,LEN($A$2)-LEN(SUBSTITUTE($A$2,1,"")))
Mình cảm ơn bạn.
Theo công thức bạn hướng dẫn thì phải thay 1 = Row(A1)
Nhưng sẽ có nhưng ô bị rỗng vì khi kéo công thức xuống phải theo thứ tự. ROW(A1), ROW(A2)....
Không biết có cách nào liệt kê mà không bị RỖNG không nhỉ?
Mình chân thành cảm ơn.
 
Mình cảm ơn bạn.
Theo công thức bạn hướng dẫn thì phải thay 1 = Row(A1)
Nhưng sẽ có nhưng ô bị rỗng vì khi kéo công thức xuống phải theo thứ tự. ROW(A1), ROW(A2)....
Không biết có cách nào liệt kê mà không bị RỖNG không nhỉ?
Mình chân thành cảm ơn.
Tại ô C2 kéo xuống
=IF(ROW(A2)<11,REPT(ROW(A2)-1,LEN($A$2)-LEN(SUBSTITUTE($A$2,ROW(A2)-1,""))),"")
 
Mình cảm ơn bạn. Chắc do mình diễn đạt chưa tốt.
Mình muốn kết quả như thế này? Mình dùng công thức hiện tại thì bị trống dữ liệu.

View attachment 234747
Mã:
=IFERROR(REPT(""&SMALL(IFERROR(MATCH("*"&{1,2,3,4,5,6,7,8,9}&"*",$A$2,0)*{1,2,3,4,5,6,7,8,9},""),ROW(A1)),LEN($A$2)-LEN(SUBSTITUTE($A$2,""&SMALL(IFERROR(MATCH("*"&{1,2,3,4,5,6,7,8,9}&"*",$A$2,0)*{1,2,3,4,5,6,7,8,9},""),ROW(A1)),""))),"")
Ctrl+Shift+Enter
 
Mã:
=IFERROR(REPT(""&SMALL(IFERROR(MATCH("*"&{1,2,3,4,5,6,7,8,9}&"*",$A$2,0)*{1,2,3,4,5,6,7,8,9},""),ROW(A1)),LEN($A$2)-LEN(SUBSTITUTE($A$2,""&SMALL(IFERROR(MATCH("*"&{1,2,3,4,5,6,7,8,9}&"*",$A$2,0)*{1,2,3,4,5,6,7,8,9},""),ROW(A1)),""))),"")
Ctrl+Shift+Enter
Em cũng ham vui :P
=IFERROR(MOD(AGGREGATE(15,6,REPT({1,2,3,4,5,6,7,8,9},LEN($A$1)-LEN(SUBSTITUTE($A$1,{1,2,3,4,5,6,7,8,9},"")))+{1,2,3,4,5,6,7,8,9}*10^12,ROW(A1)),10^12),"")
 
Mã:
=IFERROR(REPT(""&SMALL(IFERROR(MATCH("*"&{1,2,3,4,5,6,7,8,9}&"*",$A$2,0)*{1,2,3,4,5,6,7,8,9},""),ROW(A1)),LEN($A$2)-LEN(SUBSTITUTE($A$2,""&SMALL(IFERROR(MATCH("*"&{1,2,3,4,5,6,7,8,9}&"*",$A$2,0)*{1,2,3,4,5,6,7,8,9},""),ROW(A1)),""))),"")
Ctrl+Shift+Enter
Nó chĩ đơn giản vậy thôi. làm chi mà dài để gây khó cho người hỏi vậy
=IF(B2="","",REPT(B2,LEN($A$2)-LEN(SUBSTITUTE($A$2,B2,""))))
Bài đã được tự động gộp:

Em cũng ham vui :p
=IFERROR(MOD(AGGREGATE(15,6,REPT({1,2,3,4,5,6,7,8,9},LEN($A$1)-LEN(SUBSTITUTE($A$1,{1,2,3,4,5,6,7,8,9},"")))+{1,2,3,4,5,6,7,8,9}*10^12,ROW(A1)),10^12),"")
Nó chĩ đơn giản vậy thôi. làm chi mà dài để gây khó cho người hỏi vậy
=IF(B2="","",REPT(B2,LEN($A$2)-LEN(SUBSTITUTE($A$2,B2,""))))
 
Nó chĩ đơn giản vậy thôi. làm chi mà dài để gây khó cho người hỏi vậy
=IF(B2="","",REPT(B2,LEN($A$2)-LEN(SUBSTITUTE($A$2,B2,""))))
Bài đã được tự động gộp:


Nó chĩ đơn giản vậy thôi. làm chi mà dài để gây khó cho người hỏi vậy
=IF(B2="","",REPT(B2,LEN($A$2)-LEN(SUBSTITUTE($A$2,B2,""))))
Cột B trống trơn mờ, bài #9
 
Em cảm ơn bạn @HieuCD và @ dazkangel
Thuật toán rất hay ạ.
Mục đích chủ yếu của em là muốn học về thuật xử lý ạ. Đúng là 2 công thức em cần.
Còn thực tế nếu vấp phải tình huống này em sẽ chọn cách của bạn @minhtuan55 ạ vì người làm không phải ai cũng hiểu được thuật toán của 2 công thức kia nhưng em nghĩ nếu mình là người học nên học những cái khó.
Em cảm ơn mọi người rất nhiều ạ.
 
nhưng em nghĩ nếu mình là người học nên học những cái khó.
Vậy góp thêm cho bạn thêm 1 công thức nữa cho đủ bộ "tam sên". :)
Mã:
=IFERROR(INDEX(REPT(ROW($1:$10)-1,FREQUENCY(--MID($A$2,ROW(INDIRECT("1:"&LEN($A$2))),1),ROW($1:$10)-1)),AGGREGATE(15,6,ROW($1:$10)/(FIND(ROW($1:$10)-1,$A$2)>0),ROWS($1:1))),"")
Chỉ Enter, fill xuống.

Thân
 

File đính kèm

Vậy góp thêm cho bạn thêm 1 công thức nữa cho đủ bộ "tam sên". :)
Mã:
=IFERROR(INDEX(REPT(ROW($1:$10)-1,FREQUENCY(--MID($A$2,ROW(INDIRECT("1:"&LEN($A$2))),1),ROW($1:$10)-1)),AGGREGATE(15,6,ROW($1:$10)/(FIND(ROW($1:$10)-1,$A$2)>0),ROWS($1:1))),"")
Chỉ Enter, fill xuống.

Thân
vẫn chưa được
1586064529971.png
 
Dễ ờm mà!
Mã:
=IFERROR(INDEX(REPT(ROW($1:$10)-1,FREQUENCY(IFERROR(--MID($A$2,ROW(INDIRECT("1:"&LEN($A$2))),1),""),ROW($1:$10)-1)),AGGREGATE(15,6,ROW($1:$10)/(FIND(ROW($1:$10)-1,$A$2)>0),ROWS($1:1))),"")
Kết thúc bằng Ctrl+Shift+Enter.
Nếu bạn muốn nhào vô, hỏi lắt léo để học ké, thì tôi cũng không tiếc chi dạy cho bạn thêm 1 công thức nữa:
Mã:
=IFERROR(INDEX(REPT(ROW($1:$10)-1,LEN($A$2)-LEN(SUBSTITUTE($A$2,ROW($1:$10)-1,""))),AGGREGATE(15,6,ROW($1:$10)/(FIND(ROW($1:$10)-1,$A$2)>0),ROWS($1:1))),"")
Chỉ Enter, fill xuống.

Thân
 

File đính kèm

Dễ ờm mà!
Mã:
=IFERROR(INDEX(REPT(ROW($1:$10)-1,FREQUENCY(IFERROR(--MID($A$2,ROW(INDIRECT("1:"&LEN($A$2))),1),""),ROW($1:$10)-1)),AGGREGATE(15,6,ROW($1:$10)/(FIND(ROW($1:$10)-1,$A$2)>0),ROWS($1:1))),"")
Kết thúc bằng Ctrl+Shift+Enter.
Nếu bạn muốn nhào vô, hỏi lắt léo để học ké, thì tôi cũng không tiếc chi dạy cho bạn thêm 1 công thức nữa:
Mã:
=IFERROR(INDEX(REPT(ROW($1:$10)-1,LEN($A$2)-LEN(SUBSTITUTE($A$2,ROW($1:$10)-1,""))),AGGREGATE(15,6,ROW($1:$10)/(FIND(ROW($1:$10)-1,$A$2)>0),ROWS($1:1))),"")
Chỉ Enter, fill xuống.

Thân
Đừng vội vàng .vẫn chưa chuẩn nha anh

1586066856083.png

ô A3 có 9 ký tự số 3, mà sao cột F lại ra 15 ký tự A
1586067769720.png
 
Lần chỉnh sửa cuối:
Đừng vội vàng .vẫn chưa chuẩn nha anh

View attachment 234790
Công nhận chú em mày ngoài việc chỉ biết lái "xe hơi" con nít ra, còn các việc khác "chả biết cái con cóc khô" gì cả, nên đưa cái "bằng chứng" bằng hình, lại lòi ra cái dốt khác nữa. Anh lại phải tốn hơi dạy cho chú em mày nữa rồi, thật là....

Thế chú em mày không biết ngày 01/03/2020 có giá trị là 43,891 à!

Nghe đồn chú em mày giỏi C++ lắm mà sao còn ngu ngơ về chuyện đó vậy!?

Ôi! thời buổi vàng thau lẫn lộn cả lên.

Thế nhé! có cần anh mày dạy gì thêm cứ bảo nhé, đừng ngại.
 
Công nhận chú em mày ngoài việc chỉ biết lái "xe hơi" con nít ra, còn các việc khác "chả biết cái con cóc khô" gì cả, nên đưa cái "bằng chứng" bằng hình, lại lòi ra cái dốt khác nữa. Anh lại phải tốn hơi dạy cho chú em mày nữa rồi, thật là....

Thế chú em mày không biết ngày 01/03/2020 có giá trị là 43,891 à!

Nghe đồn chú em mày giỏi C++ lắm mà sao còn ngu ngơ về chuyện đó vậy!?

Ôi! thời buổi vàng thau lẫn lộn cả lên.

Thế nhé! có cần anh mày dạy gì thêm cứ bảo nhé, đừng ngại.
Nè Nói chuyện cho đàng hoàng nhé. Tôi không cần bạn dạy cho tôi. Núi cao có núi cao hơn. Đừng tưởng mình là giỏi muốn nói sao nói nhé
Thế còn cái này ô A3 9 ký tự A, mà công thức của Chú em 15 ký tự số 3. Chú em dạy em thử tại sao vậy

1586068510493.png
 
Lần chỉnh sửa cuối:
Nghe đồn chú em mày giỏi C++ lắm mà sao còn ngu ngơ về chuyện đó vậy!?
Chắc bị lủng bài thế nào là "chuỗi", thế nào là "DateTime", thế nào là "number" anh ơi.

Thông cảm đi anh. Đến giờ này còn chưa biết thế nào là Number kìa anh. :D :D

Chủ thớt dù chưa tìm ra công thức nhưng gõ đề bài rất chuẩn chỉ:

1586068212224.png
 
Chắc bị lủng bài thế nào là "chuỗi", thế nào là "DateTime", thế nào là "number" anh ơi.

Thông cảm đi anh. Đến giờ này còn chưa biết thế nào là Number kìa anh. :D :D

Chủ thớt dù chưa tìm ra công thức nhưng gõ đề bài rất chuẩn chỉ:

View attachment 234795
Ôi em ơi!

Anh đã dạy bảo rồi, mà sao cứ vẫn ngu ngơ: "Biết thì thưa thốt, không biết thì dựa cột mà nghe".
Càng nói thì càng lòi cái "cán mai" ra.

Chúc em ngày vui.
/-*+//-*+//-*+/
 
Chắc bị lủng bài thế nào là "chuỗi", thế nào là "DateTime", thế nào là "number" anh ơi.

Thông cảm đi anh. Đến giờ này còn chưa biết thế nào là Number kìa anh. :D :D

Chủ thớt dù chưa tìm ra công thức nhưng gõ đề bài rất chuẩn chỉ:

View attachment 234795
thế tạo sao mấy công thức của HiecCd, Dankanzel lại đúng. Tôi dừng tại đây. Vì nói chuyện với người không liên quan, và không hiểu biết, không xem hình ảnh
Bài đã được tự động gộp:

Ôi em ơi!

Anh đã dạy bảo rồi, mà sao cứ vẫn ngu ngơ: "Biết thì thưa thốt, không biết thì dựa cột mà nghe".
Càng nói thì càng lòi cái "cán mai" ra.

Chúc em ngày vui.
/-*+//-*+//-*+/
Xem hình ảnh chưa. CÔng thức sai rồi cần xem lại, tưởng mình giỏi ai ngờ test ra trật lất
 
thế tạo sao mấy công thức của HiecCd, Dankanzel lại đúng. Tôi dừng tại đây. Vì nói chuyện với người không liên quan, và không hiểu biết, không xem hình ảnh
Vui lòng bạn không trích dẫn bài của mình là được.
Mình cũng không trích dẫn bài của bạn nhé. Nhìn kỹ lại xem.

Bật mí bí kíp của 1 ngàn năm trước / sau này:
Gõ hai hàm này xem ra cái giống gì thì sẽ biết mình đang cách 1 ngàn năm trước hay sau nhá.

=ISNUMBER(A2)
=ISTEXT(A2)

Và muốn A2 là "chuỗi" (kiểu ngọng líu ngọng lô - "chuổi") thì gõ dấu nháy vào trước ấy.

Nhiều người động viên lắm. Cố gắng lên, tiến lên trước ấy, chứ tụt lại sau thì buồn lắm ha.
 
Xem hình ảnh chưa. CÔng thức sai rồi cần xem lại, tưởng mình giỏi ai ngờ test ra trật lất
Công nhận chú em mày điêu nhỉ! tức là "gian" mà không "ngoan".

Anh dạy cho chú em mày này: hai công thức anh làm @PTH_2 và "lắt léo!???" về cơ bản giống nhau hoàn toàn chỉ khác nhau ô lấy giá trị, thế mà chú em mày điêu ngoa đem cái bằng chứng bằng "hình" giả dối lên đây, lại bảo anh của mày "tét" với chả "tét"!

Thôi! thì lo liệu học "ngoan" đi.
 
Em cảm ơn bạn @Phan Thế Hiệp đã đưa thêm 1 giải pháp ạ.
Hy vọng không phải vì topic của em mà làm hỏng không khí cuối tuần vui vẻ của mọi người.
Em đã có được giải pháp như ý - em xin phép được dừng chủ đề này ở đây.
Em chúc mọi người cuối tuần vui vẻ ạ.
 
Em cảm ơn bạn @Phan Thế Hiệp đã đưa thêm 1 giải pháp ạ.
Hy vọng không phải vì topic của em mà làm hỏng không khí cuối tuần vui vẻ của mọi người.
Em đã có được giải pháp như ý - em xin phép được dừng chủ đề này ở đây.
Em chúc mọi người cuối tuần vui vẻ ạ.
Không sao đâu bạn! Tôi rất mến tinh thần ham học hỏi của bạn, nên tôi sẽ trãi lòng chia sẻ với bạn trong khả năng hiểu biết của mình. Tôi thì thẳng tính và luôn ghét cay ghét đắng những thứ điêu ngoa, giả dối, khoe mẽ, kệch cỡm, cái lọai "xấu hay làm tốt, dốt hay nói chữ" hay "thùng rỗng kêu to".

Tôi tin rằng bạn cũng ghét giống vậy! phải
không!?

Chúc bạn học vui cùng GPE.
Thân
 

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

Back
Top Bottom