minhtungph
None
- Tham gia
- 18/9/13
- Bài viết
- 198
- Được thích
- 78

- Mình có 1 file nhỏ như hình trên
- trong file có tạo 4 Name
1.Data =IF(ISERROR(IF(MATCH(Sheet1!$A$1:$A$13,Sheet1!$A$1:$A$13,0)=ROW(Sheet1!$A$1:$A$13),MATCH(Sheet1!$A$1:$A$13,Sheet1!$A$1:$A$13,0),"")),"",IF(MATCH(Sheet1!$A$1:$A$13,Sheet1!$A$1:$A$13,0)=ROW(Sheet1!$A$1:$A$13),MATCH(Sheet1!$A$1:$A$13,Sheet1!$A$1:$A$13,0),"")
Name này sẽ tạo ra 1 mảng gồm các vị trí của các giá trị không trùng vào các giá trị
1,2,"",4,5,6,7,"","","",11,"",""2. dem=COUNT(data)
Name này mục đích là để đếm các số trong data: 7
3. LaySTT=SMALL(data,ROW(INDIRECT("A1:A"&dem)))
Name này dùng để "xích" các giá trị lại gần nhau hơn: 1,2,4,5,6,7,11
4. Uniquelist=INDEX(Sheet1!$A$1:$A$13,LaySTT)
name dùng để tạo ra một mảng để gán vào validation ( mình nghi ngờ ở bước này bị đụng độ gì đó nên validation chỉ lấy giá trị đầu tiên thôi)
==> nếu chúng ta viết công thức mảng trả về nhiều ô trên range thì kết quả ra đúng như ý, tức là uniquelist vẫn chứa trong nó 1 mảng, nhưng gán vào datavalidation thì nó không chịu
==> Mình nghi ngờ thằng validation này không chịu chơi với mảng ảo mà chỉ chấp nhận range thôi, không biết có đúng không, mong các bạn và các anh chị giải đáp giúp.








