F094 名寄後のデータの個数を計算する関数

EXCEL自作関数

Excel自作 VBA 関数 

セル範囲内の値を名寄せして個数を数える関数です。
重複する値の個数等を数える時にご使用ください。

VBEの標準モジュールに下のコードを登録して「Excelマクロ有効フォーム」で保存してください。
関数の登録方法は⇒♯000 ユーザー定義関数を登録する方法

登録されたら、シート上からユーザー関数「CountGI」が使用できます。
使い方は 
ワークシート上で = CountGI (セル範囲) の関数として使用することで、 市区町村を を取得できます。

【例】
CountGI(セル範囲)
セル範囲の値を名寄して個数をカウントする関数
 A B C
1 東京 神奈川 埼玉
2 神奈川 秋田  東京
‘CountGI(A1:C2) →  4

Function CountGI(R As Range)

'CountGI(セル範囲)
'セル範囲の値を名寄して個数をカウントする関数

' A      B      C
'1 東京   神奈川 埼玉
'2 神奈川 秋田  東京

'CountGI(A1:C2) →  4

On Error GoTo EXITFUN
Dim A As Variant

Dim ListA
Dim ListG
Dim i1 As Long
Dim i2 As Long
Dim i3 As Long: i3 = 1
Dim C As Long
A = R

ReDim ListA(1 To UBound(A, 1) * UBound(A, 2))

For i1 = LBound(A, 2) To UBound(A, 2)
For i2 = LBound(A, 1) To UBound(A, 1)
If A(i2, i1) <> "" Then
 ListA(i3) = A(i2, i1)
 i3 = i3 + 1
End If
Next
Next

If ListA(1) = "" Then
 CountGI = 0
 Exit Function
Else
 C = 1
End If

For i1 = 2 To UBound(ListA)
 For i2 = 1 To i1 - 1
  If ListA(i1) = ListA(i2) Or ListA(i1) = "" Then
   GoTo ExitCal
  End If
 Next
 C = C + 1
ExitCal:
Next

CountGI = C

Exit Function
EXITFUN:
CountGI = 0
End Function

 

ここで紹介したコード使用による損害に対しては一切責任は負えません。