Không hiểu ý bạn cho lắm, nhưng thấy VD nên làm đại hy vọng đúng.Mong các anh, chị giúp đỡ vì số lượng ký tự của mình rất nhiều, dùng bằng tay vừa lâu mà không chính xác.
Option Explicit
Function DSach(D_Sach As Range)
Dim Dict, Arr(): Dim Tmp As String
Dim J As Long, W As Long
Arr() = D_Sach.Value
ReDim dArr(1 To UBound(Arr()), 1 To 1) As String
Set Dict = CreateObject("Scripting.Dictionary")
For J = 1 To UBound(Arr())
Tmp = Arr(J, 1)
With Dict
If Not .exists(Tmp) Then
W = W + 1: .Add Tmp, W
dArr(W, 1) = Tmp
End If
End With
Next J
DSach = dArr()
End Function
Bạn hpkhuong cho mình hỏi 1 tí, tại sao lồng countif vào trong hàm index thì công thức này trở thành công thức bình thường? trong khi nếu bỏ hàm index trước hàm countif ra thì nó lại trở thành hàm mảng? mình suy nghĩ mãi mà không ra.Mã:b2 =iferror(index($a$2:$a$17,match(0,[COLOR=#0000ff]index(countif($b$1:b1,$a$2:$a$17),0)[/COLOR],0)),"")
Theo suy nghĩ của mình thì 1 tập hợp phải có từ 2 phần thử trở nên mới được coi là Mảng. Nếu ta đặt Index bên ngoài Countif , hàm Index sẽ thực hiện lấy 1 phần tử duy nhất của mảng được tạo ra từ hàm Countif. Tâp hợp mới do chỉ có duy nhất 1 phần tử được lấy ra nên đã không còn là mảng nữaBạn hpkhuong cho mình hỏi 1 tí, tại sao lồng countif vào trong hàm index thì công thức này trở thành công thức bình thường? trong khi nếu bỏ hàm index trước hàm countif ra thì nó lại trở thành hàm mảng? mình suy nghĩ mãi mà không ra.
Giải thích mà hỏi cha này khác gì rủ cha nhậuBạn hpkhuong cho mình hỏi 1 tí, tại sao lồng countif vào trong hàm index thì công thức này trở thành công thức bình thường? trong khi nếu bỏ hàm index trước hàm countif ra thì nó lại trở thành hàm mảng? mình suy nghĩ mãi mà không ra.
giangleloi thân mến, đáng lẽ hôm bữa có dịp diện kiến hpkhuong ngoài quán rồi, hôm đó anh be09 gọi đt nói rằng be09 và hpkhuong định xuống SG làm vài ve nhưng hôm đó mình lại đi công tác mất rồi, tiếc quá. Thôi để hôm nào mình lên BH gặp lại vậy, hy vọng là có bạn giangleloi luôn hén.Giải thích mà hỏi cha này khác gì rủ cha nhậu![]()