Tách chuỗi dựa theo 4 số trong cặp dấu phẩy (1 người xem)

Liên hệ QC

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

phamvandunghp84

Thành viên thường trực
Tham gia
5/3/20
Bài viết
241
Được thích
12
mình có một dãy số có dạng như sau cần tách thành 2 số:
$12,123,123,1234,123,123 ABC

dấu hiệu duy nhất nhận biết được giữa hai số này đó là ở giữa 2 dấu phẩy thì có xuất hiện tới 4 số liên tục. thì cần phải tách ra làm hai chuỗi:
$123,123,123,123
4,123,123 ABC

Nếu viết bằng công thức không dùng VBA thì phải viết công thức như nào?
Cảm ơn các bạn !
 
dấu hiệu duy nhất nhận biết được giữa hai số này đó là ở giữa 2 dấu phẩy thì có xuất hiện tới 4 số liên tục. thì cần phải tách ra làm hai chuỗi:
$123,123,123,123
4,123,123 ABC
Bạn thêm nhiều trường hợp khác nữa xem thế nào, chứ làm xong một chuỗi rồi lại phát sinh thêm chuỗi khác thì hơi buồn.
 
Bạn thêm nhiều trường hợp khác nữa xem thế nào, chứ làm xong một chuỗi rồi lại phát sinh thêm chuỗi khác thì hơi buồn.

ví dụ chuỗi dạng này cần tách làm hai chuỗi riêng biệt bên dưới
A1= $123,123,123,1234,123,123 ABC

đáp án mong muốn là công thức ô B1, C1 để tách được ra chuỗi
B1=$123,123,123,123
C1=4,123,123 ABC
 
ví dụ chuỗi dạng này cần tách làm hai chuỗi riêng biệt bên dưới
A1= $123,123,123,1234,123,123 ABC

đáp án mong muốn là công thức ô B1, C1 để tách được ra chuỗi
B1=$123,123,123,123
C1=4,123,123 ABC
Một chuỗi thì đơn giản, nhưng thêm các chuỗi khác xem thế nào tránh làm xong lại phát sinh bạn ạ.
 
ví dụ chuỗi dạng này cần tách làm hai chuỗi riêng biệt bên dưới
A1= $123,123,123,1234,123,123 ABC

đáp án mong muốn là công thức ô B1, C1 để tách được ra chuỗi
B1=$123,123,123,123
C1=4,123,123 ABC

Vấn đề dữ liệu gốc là bị ghép hai chuỗi thành một chuỗi nên phát sinh ra hiện tượng giữa hai dấu phẩy có tới 4 số: $x,xxx,xxx,xxxy,yyy,yyy
giờ mình cần tách lại về 2 chuỗi ban đầu bạn giúp mình với:
 
ví dụ chuỗi dạng này cần tách làm hai chuỗi riêng biệt bên dưới
A1= $123,123,123,1234,123,123 ABC

đáp án mong muốn là công thức ô B1, C1 để tách được ra chuỗi
B1=$123,123,123,123
C1=4,123,123 ABC
Nếu có thế này thì left và mid theo số ký tự cần lấy cho xong, đưa thêm ví dụ các chuỗi khác mới có công thức tổng quát được
1604915068464.png
 
Nếu có thế này thì left và mid theo số ký tự cần lấy cho xong, đưa thêm ví dụ các chuỗi khác mới có công thức tổng quát được
Bạn ơi tức là độ dài của chuỗi có thể thay đổi nhưng luôn luôn đặc điểm giữa hai dấu phẩy chỉ có 1 hoặc 2 hoặc 3 số, duy nhất đoạn ghép giữa hai dãy số thì mới phát sinh từ 4 số trở lên ở giữa 2 dấu phẩy. khi đó sẽ tách theo nguyên tắc lấy 3 số bên trái là của số thứ nhất. còn lại là toàn bộ của số thứ hai.

x,xx,xxx,xxx,xxxyy,yyy,yyy cần tách thành hai số:
số thứ nhất là: x,xx,xxx,xxx,xxx
số thứ hai là: yy,yyy,yyy
 
Bạn ơi tức là độ dài của chuỗi có thể thay đổi nhưng luôn luôn đặc điểm giữa hai dấu phẩy chỉ có 1 hoặc 2 hoặc 3 số, duy nhất đoạn ghép giữa hai dãy số thì mới phát sinh từ 4 số trở lên ở giữa 2 dấu phẩy. khi đó sẽ tách theo nguyên tắc lấy 3 số bên trái là của số thứ nhất. còn lại là toàn bộ của số thứ hai.

x,xx,xxx,xxx,xxxyy,yyy,yyy cần tách thành hai số:
số thứ nhất là: x,xx,xxx,xxx,xxx
số thứ hai là: yy,yyy,yyy
Chán bạn nhỉ đăng bao bài rồi mà vẫn không hiểu cách khi hỏi nhỉ, viết ra vài dòng dữ liệu các trường hợp của bạn và kết quả cần có khó thế sao mà cứ x y z nhỉ lúc 1 số lúc 2 số lúc 4 lúc 5 chắc chỉ có bạn hiểu bạn cần gì. Đến 7 bài rồi mà vẫn chưa nêu rõ được đầu bài
 
Mình gửi file cỡ 10 dòng lên đi
 
A1 gõ chuỗi đó:
Mã:
B1=LEFT(A1,SEARCH(",????,",A1)+3)
C1==RIGHT(A1,LEN(A1)-LEN(B1))
 
Chán bạn nhỉ đăng bao bài rồi mà vẫn không hiểu cách khi hỏi nhỉ, viết ra vài dòng dữ liệu các trường hợp của bạn và kết quả cần có khó thế sao mà cứ x y z nhỉ lúc 1 số lúc 2 số lúc 4 lúc 5 chắc chỉ có bạn hiểu bạn cần gì. Đến 7 bài rồi mà vẫn chưa nêu rõ được đầu bài
thành thật xin lỗi. Mình không biết phải diễn đạt sao cho dễ hiểu nữa: Mình cần tách 1 chuỗi thành hai chuỗi, chuỗi gôc gồm số và tex là dấu phẩy , giữa hai dấu phẩy có 1 tới 3 số. duy nhất đoạn ghép nối hai chuỗi có tới 4 số trong cặp dấu ,
Mình làm thế nào để tách chuỗi này ra thành hai chuỗi theo nguyên tắc 3 số bên trái trả về cho chuỗi đầu, còn lại là thuộc về chuỗi sau
chuỗi cần tách: 11,888,888,8882,222,222
làm sao để tách được chuỗi thứ nhất ra: 11,888,888,888
làm sao để tách được chuỗi thứ hai ra: 2,222,222
 
Làm đại:

=LEFT(A1,SEARCH(",????,",A1)+3)

=MID(A1,SEARCH(",????,",A1)+4,255)
 
thành thật xin lỗi. Mình không biết phải diễn đạt sao cho dễ hiểu nữa: Mình cần tách 1 chuỗi thành hai chuỗi, chuỗi gôc gồm số và tex là dấu phẩy , giữa hai dấu phẩy có 1 tới 3 số. duy nhất đoạn ghép nối hai chuỗi có tới 4 số trong cặp dấu ,
Mình làm thế nào để tách chuỗi này ra thành hai chuỗi theo nguyên tắc 3 số bên trái trả về cho chuỗi đầu, còn lại là thuộc về chuỗi sau
chuỗi cần tách: 11,888,888,8882,222,222
làm sao để tách được chuỗi thứ nhất ra: 11,888,888,888
làm sao để tách được chuỗi thứ hai ra: 2,222,222
Bạn tự mò nguyên tắc số của bạn
 

File đính kèm

Bạn ơi tức là độ dài của chuỗi có thể thay đổi nhưng luôn luôn đặc điểm giữa hai dấu phẩy chỉ có 1 hoặc 2 hoặc 3 số, duy nhất đoạn ghép giữa hai dãy số thì mới phát sinh từ 4 số trở lên ở giữa 2 dấu phẩy. khi đó sẽ tách theo nguyên tắc lấy 3 số bên trái là của số thứ nhất. còn lại là toàn bộ của số thứ hai.

x,xx,xxx,xxx,xxxyy,yyy,yyy cần tách thành hai số:
số thứ nhất là: x,xx,xxx,xxx,xxx
số thứ hai là: yy,yyy,yyy
Theo bài #7 thì có vẻ không có công thức nào đúng cả
 
Bạn ơi tức là độ dài của chuỗi có thể thay đổi nhưng luôn luôn đặc điểm giữa hai dấu phẩy chỉ có 1 hoặc 2 hoặc 3 số, duy nhất đoạn ghép giữa hai dãy số thì mới phát sinh từ 4 số trở lên ở giữa 2 dấu phẩy. khi đó sẽ tách theo nguyên tắc lấy 3 số bên trái là của số thứ nhất. còn lại là toàn bộ của số thứ hai.

x,xx,xxx,xxx,xxxyy,yyy,yyy cần tách thành hai số:
số thứ nhất là: x,xx,xxx,xxx,xxx
số thứ hai là: yy,yyy,yyy
Thử công thức này
Mã:
B1=LEFT(A1,FIND("|",SUBSTITUTE(A1,",","|",MATCH(TRUE,INDEX(LEN(TRIM(MID(SUBSTITUTE(A1,",",REPT(" ",100)),(ROW($1:$20)-1)*100+1,100)))>3,),0)-1))+3)
C1=SUBSTITUTE(A1,B1,"")
 
B1=LEFT(A1,FIND(",",A1)+11)
C1=SUBSTITUTE("$"&A1,"$"&B1,"")
 
Công thức mảng cho B1
Mã:
=IFERROR(LEFT(A1,MATCH(TRUE,FIND(",",$A$1,ROW($1:$99))-ROW($1:$99)>3,)+2),A1)
Công thức cho C1
Mã:
=MID(A1,LEN(B1)+1,99)
 
A1 = $1,2,3,4,123,123,123
Công thức te tua

Theo tôi hiểu bài #1 thì chuỗi có thể mang ký tự alpha, và thớt muốn cắt chuỗi sau khi có 4 numeric liên tiếp.

View attachment 249026
View attachment 249025
Em suy luận chủ thớt tách 2 số tiền đô la bị dính vào nhau. :)

Đề bài đầy đủ hơn bài #1 là bài #11.
1604991197837.png

---
Nói chung thớt cứ úp file thật lên đảm bảo 99.99% là có đáp án dùng được.
 
Web KT

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

Back
Top Bottom