動的配列数式なるものが実現する前に配列とカスタム関数/自作関数に慣れておきましょう。
myUniqe関数を改造して、2列目に出現回数を入れるようにしました。
'ユニーク、一意のデータを1列目、出現回数を2列名に出力
Function myUniqe2(r As Range)
Dim col As New Collection 'コレクションオブジェクト
Dim colAll As New Collection
Dim x
For Each x In r '引数のRangeオブジェクトを個々にxに入れる
colAll.Add VBA.CStr(x)
On Error GoTo myErr 'エラーの罠
col.Add VBA.CStr(x), VBA.CStr(x)
On Error GoTo 0 'エラートラップのリセット
Next
ReDim ar(10000, 1) 'NA大作のため大きめの配列にした。1は0と1で2列
Dim i As Integer, cnt As Integer
Dim xx
For Each x In col '一意なコレクション
cnt = 0 '個数の初期化
For Each xx In colAll '全データ
If xx = x Then cnt = cnt + 1 '全データを順番にxxに入れてxと比較
Next
ar(i, 0) = x '値
ar(i, 1) = cnt '個数
i = i + 1
Next
myUniqe2 = ar
Exit Function
myErr: 'ラベル:を付ける
Resume Next
End Function
(Visited 29 times, 1 visits today)