- 公開日:
Excelで列数をカウントする方法
この記事では、Excelで列数をカウントする方法をご紹介します。
データ内のすべての列数や、特定の条件のデータの列数がどのくらいあるかを知りたい場合は関数を使うと簡単に求めることができます。
「COUNTIF関数」を使って指定した条件の列数をカウントする方法もあわせてご紹介しています。
Excelで列数をカウントする方法
データ数が多くなると手動で数えるのは大変ですが、関数を使い分けると効率よく作業することができます。
以下では、列数をカウントする方法を4つに分けてご紹介しています。
- COLUMNS関数を使って列数をカウントする方法
- COUNTIF関数を使って指定した文字列の列数をカウントする方法
- VBAを使って列数をカウントする方法
- VBAを使って空白列を避けて列数をカウントする方法
COLUMNS関数を使って列数をカウントする方法
COLUMNS関数を使って指定した範囲のデータの列数をカウントする方法をご紹介します。セルが結合されている場合は、結合していない状態の列数をカウントします。
COLUMN関数は、配列またはセル参照の列数を返します。COLUMN関数の書式は「=COLUMNS(配列)」です。 任意のセル(例:A6セル)を選択して、「=COLUMNS(B1:H1)」を入力し、Enterを押します。
COLUMNS関数を使ってB列からH列の列数をカウントすることができました。
COUNTIF関数を使って指定した文字列が入った列数をカウントする方法
データの中から特定の列だけをカウントしたい場合、COUNTIF関数を使って条件指定したデータの列だけをカウントすることができます。
COUNTIF関数の書式は「=COUNTIF(範囲, 検索条件)」です。引数の詳細や使用例等については、以下の記事をご参照ください。
検索条件には数値、式、セル範囲、または文字列で指定することが可能です。
よく使う検索条件を、以下の記事「第2引数(検索条件)」セクションで紹介してます。
ExcelのCOUNTIF関数の使い方|条件に一致するデータの個数表示
以下では、指定したデータ範囲内にある指定した文字列や数値が入力された列数だけをカウントする方法をご紹介します。
上記の画像のデータから、出勤時間が「17時」になっているデータの列数だけをカウントします。
任意のセル(例:A6セル)を選択して、「=COUNTIF(B2:H2,"17時")」を入力し、Enterを押します。
指定する数値や文字列を変えたい場合は、ダブルクォーテーションの間の文字を変更してください。
A6セルに「2」と表示されました。
COUNTIF関数を使って「出勤時間」が「17時」のデータの列数が2列であることが分かりました。
VBAを使って列数をカウントする方法
以下では、VBAを使って空白列を含むすべての列数をカウントする方法をご紹介します。
今回はVBAを使用するので、上記の画像の赤い矢印で示した「開発タブ」が表示されていない場合は、以下の記事を参考にして表示させてください。
①開発タブ、②Visual Basicの順に選択します。
「Microsoft Visual Basic for Applications」が開きました。
①挿入タブ、②標準モジュールの順に選択します。
標準モジュールが開きました。
以下のコードをコピーしてモジュールに貼り付けます。
Sub 列数をカウントする()
Dim ws As Worksheet
Dim lastColumn As Long
' 現在アクティブなシートを取得
Set ws = ActiveSheet
' 最終列の番号を取得
lastColumn = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
' 最終列の番号をメッセージボックスに表示
MsgBox "列の数: " & lastColumn
End Sub
上記のコードは、空白列を含むデータが入力されている列数をダイアログボックスに表示します。
作成したマクロを保存します。
①ファイルタブ、②上書き保存の順に選択します。
その際に、「次の機能はマクロなしのブックには保存できません」というダイアログボックスが表示された場合は、「いいえ」を選択してください。
「名前を付けて保存」ダイアログボックスが表示されました。
①保存先(例:デスクトップ)を選択し、②ファイル名(例:列数をカウントする)を入力します。③ファイルの種類でExcelマクロ有効ブックを選択し、④保存ボタンを押します。
Excelシートに戻ります。
①開発タブ、②マクロの順に選択します。
「マクロ」ダイアログボックスが表示されました。
①作成したマクロ(例:列数をカウントする)を選択し、②実行ボタンを押します。
「Microsoft Excel」ダイアログボックスが表示されました。
空白列を含む列数が7列だと分かりました。
VBAを使って空白列を避けて列数をカウントする方法
以下では、データが入力されていない空白列を避けてデータが入力された列だけをカウントする方法をご紹介します。
①開発タブ、②Visual Basicの順に選択します。
「Microsoft Visual Basic for Applications」が開きました。
①挿入タブ、②標準モジュールの順に選択します。
標準モジュールが開きました。
以下のコードをコピーしてモジュールに貼り付けます。
Sub 空白列を避けて列数をカウントする()
Dim ws As Worksheet
Dim lastColumn As Long
Dim columnCount As Long
Dim i As Long
' 現在アクティブなシートを取得
Set ws = ActiveSheet
' 最終列の番号を取得
lastColumn = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
' データが入力されている列数をカウント
columnCount = 0
For i = 1 To lastColumn
If Application.WorksheetFunction.CountA(ws.Columns(i)) > 0 Then
columnCount = columnCount + 1
End If
Next i
' データが入力されている列数をメッセージボックスに表示
MsgBox "データが入力されている列の数: " & columnCount
End Sub
上記のコードは、空白列を含まない列数をカウントしてダイアログボックスに表示します。
作成したマクロを保存します。
①ファイルタブ、②上書き保存の順に選択します。
その際に、「次の機能はマクロなしのブックには保存できません」というダイアログボックスが表示された場合は、「いいえ」を選択してください。
「名前を付けて保存」ダイアログボックスが表示されました。
①保存先(例:デスクトップ)を選択し、②ファイル名(例:空白列を避けて列数をカウントする)を入力します。③ファイルの種類でExcelマクロ有効ブックを選択し、④保存ボタンを押します。
Excelシートに戻ります。
①開発タブ、②マクロの順に選択します。
「マクロ」ダイアログボックスが表示されました。
①作成したマクロ(例:空白列を避けて列数をカウントする)を選択し、②実行ボタンを押します。
「Microsoft Excel」ダイアログボックスが表示されました。
空白列を避けてカウントした列数が5列だと分かりました。