hophoang
Thành viên tiêu biểu

- Tham gia
- 23/6/11
- Bài viết
- 719
- Được thích
- 628
- Nghề nghiệp
- KToan Kho
NHưng excel 2003 của mình không dùng được công thức này,nhưng mà tại sao chớ ?Sao Ex 2003 của mình vẫn bình thường mà!
NHưng excel 2003 của mình không dùng được công thức này,nhưng mà tại sao chớ ?Sao Ex 2003 của mình vẫn bình thường mà!
Cũng lạ thật file này thì OK, còn file trên thì bị lỗi, thanks bạn nhen, công thức thật khủngAnh xem lại file này, Công thức đâu có quá phức tạp đâu.
(đã rút gọn hết khả năng)
Cái đó không đoán trước được! Nói chung là những công thức mảng như bạn vừa làm luôn có những lỗi kỳ lạ (người xem được còn người ta thì lại không)Anh xem lại file này, Công thức đâu có quá phức tạp đâu.
(đã rút gọn hết khả năng)
Anh ơi!Cái đó không đoán trước được! Nói chung là những công thức mảng như bạn vừa làm luôn có những lỗi kỳ lạ (người xem được còn người ta thì lại không)
Tôi dùng Office 2010, đương nhiên xem được kết quả bình thường rồi
------------------
Ẹc... Ẹc... Bài này mà làm cho dữ liệu 1000 dòng chắc phải đi tò le quá
Mới mở file ra thì thấy kết quả ok, nhưng lật đi lật lại qua màn hình khác qoay lại trở về thì ra kết quả toàn chử "A" không à công thức thì vẩn thế nàyAnh xem lại file này, Công thức đâu có quá phức tạp đâu.
(đã rút gọn hết khả năng)
=IF(OR(H2="";ISERROR(INDEX(DS;--LEFT(RIGHT(rg;4);2);--RIGHT(rg;2))));"";INDEX(DS;--LEFT(RIGHT(rg;4);2);--RIGHT(rg;2)))
=INDEX(DS;--LEFT(RIGHT(rg;4);2);--RIGHT(rg;2))
File của bạn đây
Mã:Sub LocDuyNhat_Bang() On Error Resume Next Range([l9], [l65000]).ClearContents Set Dic = CreateObject("Scripting.Dictionary") For Each cls In Range([d5], [i50]).SpecialCells(2) If Not IsEmpty(cls) Then Dic.Add cls.Value, "" End If Next [l9].Resize(Dic.Count) = Application.Transpose(Dic.keys) [l9].Resize(Dic.Count).Sort [l9], 1 End Sub
Tôi thắc mắc là khi bỏ .Transpose thì kết quả của nó là a, a, a, a nhỉ? Rất mong bác nào biết về hàm Transpose này trong VBA xin chỉ bảo giúp tôi với.
Chào các bạn!Mình thấy Hàm UDF của nmHung49 cũng có thể viết thành:
Mã:Public Function UniqueList(ByVal rng As Range, Id As Long) Dim sArr, Arr(), item, dic, i If rng.Count = 1 Then UniqueList = rng.Value: Exit Function Set dic = CreateObject("Scripting.Dictionary") sArr = rng.Value For Each item In sArr If Not IsEmpty(item) And Not dic.exists(item) Then i = i + 1 If i = Id Then UniqueList = item Exit Function Else dic.Add item, "" End If: End If Next item UniqueList = "" End Function
Khi lấy DS ta nhập công thức rồi chép xuống thoải mái:
=uniquelist($D$5:$I$17,ROW(1:1))
Như vậy, đỡ phải xác định độ dài mảng tránh lỗi trong DS. Mình chỉ mượn dic tìm đến Item mình cần là "biến".