• 公開日:

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関数の使い方|条件に一致するデータの個数表示

以下では、指定したデータ範囲内にある指定した文字列や数値が入力された列数だけをカウントする方法をご紹介します。

COUNTIF関数を入力する

上記の画像のデータから、出勤時間が「17時」になっているデータの列数だけをカウントします。

任意のセル(例:A6セル)を選択して、「=COUNTIF(B2:H2,"17時")」を入力し、Enterを押します。

指定する数値や文字列を変えたい場合は、ダブルクォーテーションの間の文字を変更してください。

指定した文字列の列数をカウントできた

A6セルに「2」と表示されました。

COUNTIF関数を使って「出勤時間」が「17時」のデータの列数が2列であることが分かりました。

VBAを使って列数をカウントする方法

以下では、VBAを使って空白列を含むすべての列数をカウントする方法をご紹介します。

開発タブを表示させる

今回はVBAを使用するので、上記の画像の赤い矢印で示した「開発タブ」が表示されていない場合は、以下の記事を参考にして表示させてください。

エクセルの開発タブを表示する方法

Visual Basicを開く

開発タブ、②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を開く

①開発タブ、②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列だと分かりました。