Nhờ giúp dùm em hàm tìm chuỗi số tiến trong dãy số

Liên hệ QC

lala_qn

Thành viên tiêu biểu
Tham gia
2/5/09
Bài viết
598
Được thích
17
Nghề nghiệp
chưa ổn định
Nhờ giúp dùm e hàm tìm chuổi số tiến trong dãy số
trong dãy số 9 số tìm các chuỗi 4 số tiến trong dãy 9 số đó, tìm chuổi số tiến 4 số nằm bất kì vị trí nào trong dãy số,
dãy số tiến gồm 4 số tiến liên tục (vd: 0123, 1234, 2345, ....6789 )
nếu có 5 số tiến thì nhảy lên giá trị thứ 2 để tiện lọc
cảm ơn a/c nhiều !!!
 

File đính kèm

=OR(NOT(ISERROR(FIND(TEXT(123+1111*(ROW($1:$7)-1),"0000"),A2))))
cho vào dữ liệu chạy chưa đc a sửa lại dùm e a nhé

nếu có 5 số tiến thì nhảy lên giá trị thứ 2 để tiện lọc
tức là có phân biệt 4 số tiến liên tục và 5 số tiến liên tục hay 6 số tiến liên tục...... để filter cho nhanh đó a
thanks anh !
 
cho vào dữ liệu chạy chưa đc a sửa lại dùm e a nhé


tức là có phân biệt 4 số tiến liên tục và 5 số tiến liên tục hay 6 số tiến liên tục...... để filter cho nhanh đó a
thanks anh !
Yêu cầu nhiều quá nên dùng hàm tự tạo thử xem.
Nhớ Enable Macros.
 

File đính kèm

Lần chỉnh sửa cuối:
Yêu cầu nhiều quá nên dùng thử hàm tự tạo thử xem.
Nhớ Enable Macros.
e ko rành về Mascros a
e dùng hàm này có gì sai sao nó ko chạy đc, a sứa dùm e nhé,
=COUNT(1/(FIND({6789,5678,4567,3456,2345,1234,0123},$A2)<(LEN(A2)+1-LEN({6789,5678,4567,3456,2345,1234,0123})))/(FIND({6789,5678,4567,3456,2345,1234,0123},$A2)>1))

thanks a!
 
Cho mình hỏi với số 123401234 hoặc 123406789 vậy bạn tính làm sao. Nếu không tính trường hợp đó bạn có thể bỏ bớt công thức bạn vậy là được
=COUNT(1/(FIND({6789,5678,4567,3456,2345,1234,"0123"},$A2)))
 
cho vào dữ liệu chạy chưa đc a sửa lại dùm e a nhé
Bạn phải kết thúc công thức bằng Ctrl+Shift+Enter. Bạn huuthang_bd đã ghi rất rõ mà bạn.
Trích

tức là có phân biệt 4 số tiến liên tục và 5 số tiến liên tục hay 6 số tiến liên tục...... để filter cho nhanh đó a
thanks anh !

Nếu chuỗi có vd. 8 số liên tiếp (không có 9 số liên tiếp vì tôi nghĩ bạn có số đt với chữ số 9 ở đầu) thì dĩ nhiên nó cũng có 7, 6, 5, 4 chữ số liên tiếp.
Giả sử ở những cột D-H bạn "đánh dấu" bằng ký tự "1" những chuỗi có 4-8 chữ số liên tiếp thì bạn có thể viết 5 công thức tách biệt hoặc 1 công thức.

Nếu bạn làm theo gợi ý của bạn huuthang_bd thì nếu tôi không có sai sót thì là:

Công thức cho D2:
Mã:
=IFERROR(1/OR(NOT(ISERROR(FIND(TEXT(CHOOSE(COLUMNS($A:A);123;1234;12345;123456;1234567)+REPT(1;(COLUMNS($A:A)+3))*(ROW($1:$7)-1);REPT(0;(COLUMNS($A:A)+3)));$A2))));"")

kết thúc công thức bằng Ctrl+Shift+Enter
Kéo xuống dưới và kéo sang tới cột H

Nếu bạn chỉ tính chuỗi liên tiếp dài nhất thì trong mỗi dòng kết quả bạn chỉ "nhìn" ô cuối có giá trị 1, các ô khác "không nhìn", coi như chúng không có, coi như là không khí. Thế thôi.
 
Công thức cho D2:
Mã:
=IFERROR(1/OR(NOT(ISERROR(FIND(TEXT(CHOOSE(COLUMNS($A:A);123;1234;12345;123456;1234567)+REPT(1;(COLUMNS($A:A)+3))*(ROW($1:$7)-1);REPT(0;(COLUMNS($A:A)+3)));$A2))));"")

kết thúc công thức bằng Ctrl+Shift+Enter
Kéo xuống dưới và kéo sang tới cột H

Nếu bạn chỉ tính chuỗi liên tiếp dài nhất thì trong mỗi dòng kết quả bạn chỉ "nhìn" ô cuối có giá trị 1, các ô khác "không nhìn", coi như chúng không có, coi như là không khí. Thế thôi.
Theo em công thức này cần sửa lại thành
Mã:
=IFERROR(1/OR(NOT(ISERROR(FIND(TEXT(CHOOSE(COLUMNS($A:A),123,1234,12345,123456,1234567)+REPT(1,(COLUMNS($A:A)+3))*(ROW(OFFSET($A$1,,,8-COLUMN(A1)))-1),REPT(0,(COLUMNS($A:A)+3))),$A2)))),"")
Vì 12345 + 55555 = 67900 nên nếu trong số ĐT có chuỗi số 67900 thì công thức trả về kết quả 1 ở cột thứ 2. Vì vậy nếu 12345 thì chỉ cho cộng đến tối đa là 44444 để số cuối cùng là 9 thì dừng, tương tự 123456 thì chỉ cho cộng đến 333333 thì dừng.

tức là có phân biệt 4 số tiến liên tục và 5 số tiến liên tục hay 6 số tiến liên tục...... để filter cho nhanh đó a
thanks anh !
Bạn thử công thức mảng này
Mã:
=10-MIN(LEN((SUBSTITUTE("0123456789",MID(A2,ROW($1:$9),COLUMN($A:$J)),""))))
Kết quả trả về là độ dài tối đa của chuỗi số tiến trong số điện thoại.

Nhập công thức xong nhớ nhấn Ctrl + Shift + Enter thay vì Enter như thông thường.
 
Theo em công thức này cần sửa lại thành
Mã:
=IFERROR(1/OR(NOT(ISERROR(FIND(TEXT(CHOOSE(COLUMNS($A:A),123,1234,12345,123456,1234567)+REPT(1,(COLUMNS($A:A)+3))*(ROW(OFFSET($A$1,,,8-COLUMN(A1)))-1),REPT(0,(COLUMNS($A:A)+3))),$A2)))),"")

He he. Đúng rồi. Bỏ sót chỗ ROW($1:$7). Không phải luôn là 7 mà là 7, 6, 5, 4, 3. Tức 8-COLUMNS($A:A)
Cám ơn bạn nhé.
 
Cho mình hỏi với số 123401234 hoặc 123406789 vậy bạn tính làm sao. Nếu không tính trường hợp đó bạn có thể bỏ bớt công thức bạn vậy là được
=COUNT(1/(FIND({6789,5678,4567,3456,2345,1234,"0123"},$A2)))
hàm này chạy chuẩn nhất và đúng theo yêu cầu của e, thanks a/c đã quan tâm
 
Web KT

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

Back
Top Bottom