Ghéo các ô theo điều kiện cho trước

Liên hệ QC

bebo021999

Thành viên gạo cội
Tham gia
26/1/11
Bài viết
5,950
Được thích
8,742
Giới tính
Nam
Nghề nghiệp
GPE
Công ty mình có yêu cầu sau:

untitled.JPG


Xem file đính kèm nhé.
Mình vẫn chưa nghĩ ra giải pháp, nhờ các ACE cho ý kiến.
Xin cám ơn
 

File đính kèm

Mình thấy tổng của chúng là 36 vậy mình dùng công thức tính tổng số trong 1 ô, bebo thử theo hướng đó xem sau
 
Công ty mình có yêu cầu sau:

View attachment 66899


Xem file đính kèm nhé.
Mình vẫn chưa nghĩ ra giải pháp, nhờ các ACE cho ý kiến.
Xin cám ơn
Ẹc... Ẹc... Bài này e rằng phải VBA mới xong!
Nếu đồng ý thì... ta tiếp tục
Nhớ không lầm thì tôi đã từng làm 1 bài gần tương tự thế này. Giải thuật như sau:
- Lấy 1 số tại vùng 1 nối với từng số ở vùng 2
- Check số vừa ráp được xem nó có phải được tạo bới 8 ký tự 1, 2, 3... 8 hay không? (check không trùng) ---> Nếu đạt điều kiện thì xuất kết quả
 
Như công ty đi đánh xổ số loto vậy,
hoặc là quản lý game online bài nào đó?
Đâu cần dữ liệu E nữa nhỉ,
Sô kết quả là phần bù của dữ liệu thôih - nếu có thêm dữ liệu cột E thêm rắc rối phải so sánh với dữ liệu này nữa
Nế không có cột E thì quá đơn giản; điều kiện của mình là lấy từ cột E để ghép cột A

Mình thấy tổng của chúng là 36 vậy mình dùng công thức tính tổng số trong 1 ô, bebo thử theo hướng đó xem sau
Mình đã thử cộng ký tự tại cột A, ví dụ là 10; tìm trong cột E ô có số ký tự là 36-10 = 26.
Nhưng không đúng đâu, mình kẹt ở chỗ này: côt E có thể có 2 ô tổng số bằng nhau, ví dụ: 5786; 6686 đều có tổng số là 26
 
Nghĩ ra được 1 chiêu hơi củ chuối chút:
1> Đặt name
PHP:
Rng2 =Sheet1!$E$4:$E$8
PHP:
Tmp1=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE("12345678",MID(Sheet1!$A4&Rng2,1,1),""),MID(Sheet1!$A4&Rng2,2,1),""),MID(Sheet1!$A4&Rng2,3,1),""),MID(Sheet1!$A4&Rng2,4,1),"")
PHP:
Tmp2=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(Tmp1,MID(Sheet1!$A4&Rng2,5,1),""),MID(Sheet1!$A4&Rng2,6,1),""),MID(Sheet1!$A4&Rng2,7,1),""),MID(Sheet1!$A4&Rng2,8,1),"")
PHP:
Pos =IF(Tmp2="",ROW(INDIRECT("1:"&ROWS(Rng2))),"")
Lưu ý: Khi đặt name Tmp1 và Tmp2 phải đặt con trỏ chuột tại dòng chứa cell đầu tiên của vùng 1 (trong file này là dòng 4)
2> Công thức tại B4:
PHP:
=IF(COUNT(Pos),INDEX(Rng2,MIN(Pos)),"")
---------------
Kiểm tra lại nhé
 

File đính kèm

File đính kèm

Cám ơn NDU và huuthang đã giúp. Mình đang nghiên cứu áp dụng thử. Có khả năng sẽ phát sinh thêm dãy số >8 số, hoặc ký tự liên tiếp nữa (A...H chẳng hạn)...lúc đó tính tiếp.
 
Cám ơn NDU và huuthang đã giúp. Mình đang nghiên cứu áp dụng thử. Có khả năng sẽ phát sinh thêm dãy số >8 số, hoặc ký tự liên tiếp nữa (A...H chẳng hạn)...lúc đó tính tiếp.
Nếu vậy thì viết hàm tự tạo cho nó khỏe. Sẽ hiệu quả hơn và đỡ đau đầu hơn.
 
Công ty mình có yêu cầu sau:

Xem file đính kèm nhé.
Mình vẫn chưa nghĩ ra giải pháp, nhờ các ACE cho ý kiến.
Xin cám ơn

Mình gửi bạn thêm một cách nữa nè, cách này còn dùng được cho cho dãy số liên tục từ 0-9 (sửa lại công thức xíu)
Name Rng :
PHP:
=Sheet1!$E$4:$E$8
PHP:
Ô B4 =OFFSET($E$1,MAX(((36-SUM(--MID(A4,ROW($1:$4),1)))=(MID(Rng2,1,1)+MID(Rng2,2,1)+MID(Rng2,3,1)+MID(Rng2,4,1)))*ROW(Rng2))-1,0)
 

File đính kèm

Mình gửi bạn thêm một cách nữa nè, cách này còn dùng được cho cho dãy số liên tục từ 0-9 (sửa lại công thức xíu)
Name Rng :
PHP:
=Sheet1!$E$4:$E$8
PHP:
Ô B4 =OFFSET($E$1,MAX(((36-SUM(--MID(A4,ROW($1:$4),1)))=(MID(Rng2,1,1)+MID(Rng2,2,1)+MID(Rng2,3,1)+MID(Rng2,4,1)))*ROW(Rng2))-1,0)
Công thức này không đúng đâu Danh à
Thử thay đổi A4 = 8888 và E4 = 1111 xem
Đâu phải tổng các chữ số = 36 là đúng điều kiện! Cặp số này ráp lại phải là dãy số từ 1 đến 8 (mỗi số xuất hiện 1 lần)
 
Công thức này không đúng đâu Danh à
Thử thay đổi A4 = 8888 và E4 = 1111 xem
Đâu phải tổng các chữ số = 36 là đúng điều kiện! Cặp số này ráp lại phải là dãy số từ 1 đến 8 (mỗi số xuất hiện 1 lần)
Vì em xem trong VD minh họa của tác giả, các cặp số đều không có số lặp lại và ghép lại thì được một dãy số liên tục từ 1-8 nên em mới làm như thế cho nó dễ. Nếu tác giả nói khác, không như em suy nghĩ thì công thức trên bị sai là đúng rồi anh.
 
Vì em xem trong VD minh họa của tác giả, các cặp số đều không có số lặp lại và ghép lại thì được một dãy số liên tục từ 1-8 nên em mới làm như thế cho nó dễ. Nếu tác giả nói khác, không như em suy nghĩ thì công thức trên bị sai là đúng rồi anh.
Sorry vì đưa dữ liệu mẫu chưa tổng quát: Các ký tự trong các ô là ngẫu nhiên. VD: 1234,1111,6632,8888 ....
 
Web KT

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

Back
Top Bottom