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... Ẹc... Bài này e rằng phải VBA mới xong!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
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 ANhư 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
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.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
Rng2 =Sheet1!$E$4:$E$8
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),"")
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),"")
Pos =IF(Tmp2="",ROW(INDIRECT("1:"&ROWS(Rng2))),"")
=IF(COUNT(Pos),INDEX(Rng2,MIN(Pos)),"")
Dùng cột phụ vậy. Công thức trực tiếp chắc bó tayCô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
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á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ô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
=Sheet1!$E$4:$E$8
Ô 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 à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)
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.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)
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 ....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.