Bác này không đọc kỹ gì cả. em nói còn 2 cách nữa đó là Vlookup và Evaluate, sẵn tiện em cho nốt tất cả các cách khác vào, kể cả dùng cột phụ để các bạn khác tham khảo và so sánh thôiGửi bởi ndu96081631
Bác này không đọc kỹ gì cả. em nói còn 2 cách nữa đó là Vlookup và Evaluate, sẵn tiện em cho nốt tất cả các cách khác vào, kể cả dùng cột phụ để các bạn khác tham khảo và so sánh thôiGửi bởi ndu96081631
Tôi thấy như vầy:Gửi bởi hoangdanh282vn
Giãi pháp thì có nhiều nhưng thật sự không quan trọng tí nào! Cái chính là thuật toán!
Bạn làm đủ các cách nhưng thuật toán vẩn tập trung ở 1 điểm là: MATCH hoặc COUNTIF mà thôi (hỏng có nó mà làm được mới tài đấy)
Theo tôi hiểu thuật toán mới cái chính, nếu không chúng ta suốt đời cũng chỉ làm công việc copy của người khác về xài mà chẳng hiểu gì
Nếu là tôi hướng dẩn cho người khác làm bài toán này, tôi sẽ chỉ họ điểm quan trọng nhất ở đây là cách đặt điều kiện:
=IF(MATCH(DS,DS,0)=ROW(....
Có nó rồi thì mấy phần sau chỉ là chuyện nhỏ
Giải pháp trích lọc ra danh sách duy nhất đã có nhiều bài giải đáp. Nhưng câu trả lời vẫn chủ yếu dựa vào 2 hàm là INDEX và INDIRECT. Vậy còn cách nào khác để thực hiện việc này không?
Để tìm hiểu thêm về các công thức và mảng, mình có một câu hỏi như sau :
Trích lọc ra danh sách duy nhất, không dùng cột phụ, không sử dụng 2 hàm index và indirect.
Không INDEX hoặc INDIRECT thì dùng LOOKUP vậy! Lo gìGửi bởi hoangdanh282vn
Đặt name
và cuối cùng là công thức:Mã:DS =OFFSET($B$2,,,COUNTA($B$2:$B$1000),) DK_1 =IF(MATCH(DS,DS,0)=ROW($1:$1000),ROW($1:$1000),"") DK =IF(ISNA(DK_1),"",DK_1)
File đính kèm đây!Mã:=IF(ROWS($1:1)>COUNT(DK),"",LOOKUP(SMALL(DK,ROWS($1:1)),DK,DS))
Dùng Advanced Filter cũng được mà !
</div>Gửi bởi ndu96081631
</div>
</div>
</div>
Bác làm hay lắm, tiếc là ko có file để test thử.
Bác nào có ý kiến khác không, vẫn còn vài cách nữa
AF thì nói làm gì nữa, nhanh gọn và chính xácGửi bởi transongngocquan
Theo tôi đoán tác giã muốn các bạn xử lý lọc bằng công thức đấy!
Đúng không bạn hoangdanh282vn
???
Mình muốn bàn về công thức, chứ còn VBA thì hơi nặng tayGửi bởi transongngocquan
Vẫn dùng các name ở trên, nếu không thích LOOKUP thì dùng OFFSET nhé:
Công thức:
Kéo fill công thức xuốngMã:C2 =IF(ROWS($1:1)>COUNT(DK),"",OFFSET($A$2,SMALL(DK,ROWS($1:1))-1,))
Ý Hoangdanh muốn dùng công thức mảng, Mình đang có hướng dùng điều kiện Countif(..)=1 kết hợp công thức mảng...nhưng chưa ra.