excel

【Excel】エクセルで行数をカウントする方法(データが入った行を数える関数)

エクセルでデータ入力済みの行数を数える方法【COUNTA関数】 - COUNTA関数で氏名列を数える手順
当サイトでは記事内に広告を含みます

Excelで名簿や売上表、申込一覧を扱っていると、データが入力された行だけを数えたい場面があります。

単純に最終行を確認するだけでは、途中に空白行がある表や、数式だけが入っている表では正確な件数を把握できないことがあります。

そこで役立つのが、COUNTA関数、COUNTIF関数、SUBTOTAL関数などを使った行数のカウントです。

この記事では、1行目に見出しがあるサンプル表を前提として、データが入った行を目的に合わせて数える方法を詳しく解説します。

この記事で分かるポイント

・空白以外のセルがある行を数える基本式

・条件に合うデータ行だけを集計する式

・フィルターで絞り込んだ行数を数える方法

数式を入力する列を用意しておくと、表のデータが増減しても件数を自動で確認できます。

まずは、用途に応じた結論から確認していきましょう。

 

エクセルでデータ入力済みの行数を数える方法【COUNTA関数】

それではまず、データが入った行をもっとも基本的な方法で数える方法について解説していきます。

A B C
1 氏名 部署
2 田中 営業
3 佐藤 総務
4 鈴木 開発

 

COUNTA関数で氏名列を数える手順

氏名のように、各データ行で必ず入力される列を基準にすると、行数を安定して数えられます。

COUNTA関数は、空白ではないセルの個数を数える関数です。

見出しを含む範囲を指定した場合は、見出しの1行分も数えられるため、データ開始行を2行目にそろえることが重要です。

エクセルでデータ入力済みの行数を数える方法【COUNTA関数】 - COUNTA関数で氏名列を数える手順

=COUNTA(B2:B1000)

この数式では、B列の2行目から1000行目までに入力された氏名の数を集計します。

たとえば田中、佐藤、鈴木の3件が入力されていれば、結果は3です。

セルに文字列、数値、日付、エラー値が入っている場合も、空白でなければ1件として数えられます。

データが将来増える可能性があるなら、現在の最終行だけではなく、余裕を持った範囲を指定しておくと便利です。

【操作のポイント】各行で必ず入力される列を基準列にすると、途中の空白や補助列の有無に影響されにくくなります。

 

見出し行を除外して正確に集計する考え方

表の1行目にヘッダーがある場合、B1から範囲指定すると「氏名」という見出しも1件としてカウントされます。

データの件数だけを知りたいときは、必ず2行目から数式の範囲を開始しましょう。

すでに表全体を範囲指定してしまった場合は、結果から1を引く方法もあります。

エクセルでデータ入力済みの行数を数える方法【COUNTA関数】 - 見出し行を除外して正確に集計する考え方

=COUNTA(B:B)-1

この式はB列全体の空白以外のセル数から、見出し1件を差し引く計算です。

ただし、列内にメモや集計用の文字が入力されていると、それらも数に含まれます。

そのため、実務ではB2:B1000のように対象範囲を明示するほうが、表の構造を把握しやすくなります。

空白に見えるセルでも、スペースだけが入力されている場合はCOUNTA関数では空白ではないと判定されます。

貼り付けたデータに不要なスペースが混在している可能性があるときは、後述する条件付きの数え方も検討しましょう。

【操作のポイント】見出しを除くために2行目から範囲指定し、集計対象以外の文字が混ざらない列を選びます。

 

COUNTA関数を入力して結果を確認する操作

数式を入力するセルは、元データ表の外側や集計専用のセルに配置すると見やすくなります。

たとえばE2セルを選択し、数式バーにCOUNTA関数を入力してEnterキーを押します。

数式の参照範囲は、マウスでB2からB1000までドラッグして指定することもできます。

数式の結果が想定より1件多い場合は、見出しやスペースだけのセルが含まれていないかを確認してください。

データを追加するとCOUNTA関数の結果は自動更新されるため、手作業で件数を修正する必要はありません。

入力漏れを確認する用途にも使えるため、申請者数、社員数、商品数などの一覧管理に向いています。

【操作のポイント】集計セルは表の近くに置き、何を数えている数式なのかをラベルで表示すると確認しやすくなります。

 

エクセルで条件に合う行数を数える方法【COUNTIF関数】

続いては、特定の条件に一致するデータ行だけを数えるCOUNTIF関数を確認していきます。

A B C
1 氏名 部署
2 田中 営業
3 佐藤 総務
4 鈴木 営業

 

空白ではない行だけをCOUNTIF関数で数える方法

COUNTIF関数は、指定した条件に一致するセルの数を集計する関数です。

データが入っているセルだけを数えたい場合は、条件に「<>」を指定します。

この記号は、空白ではないという意味です。

エクセルで条件に合う行数を数える方法【COUNTIF関数】 - 空白ではない行だけをCOUNTIF関数で数える方法

=COUNTIF(B2:B1000,”<>”)

この式では、B2からB1000までの範囲にある空白以外のセル数を数えます。

COUNTA関数と似た結果になりますが、COUNTIF関数では条件を式の中に明示できる点が特徴です。

入力済みのセルだけを条件として示したい場合は、COUNTIF関数が理解しやすい選択肢になります。

数式が入っていて表示結果が空文字列の場合は、見た目と判定が異なるケースがあるため注意が必要です。

【操作のポイント】空白以外を数える条件は「<>」で指定し、条件を二重引用符で囲みます。

 

特定の部署や状態を数える条件指定

営業部だけの人数や、処理済みだけの件数を確認したい場合にもCOUNTIF関数を利用できます。

たとえばC列に部署名が入力されている場合、営業という文字列を条件に指定します。

エクセルで条件に合う行数を数える方法【COUNTIF関数】 - 特定の部署や状態を数える条件指定

=COUNTIF(C2:C1000,”営業”)

サンプル表では営業が2行あるため、数式の結果は2になります。

条件の文字列は、セル参照に置き換えることもできます。

=COUNTIF(C2:C1000,E2)

E2セルに営業と入力しておけば、E2の文字を変更するだけで集計対象を切り替えられます。

集計条件をセルに入力する設計にすると、数式を毎回編集せずに済みます。

状態列に「完了」「未処理」「保留」などを入力している一覧では、進捗管理にも活用できるでしょう。

【操作のポイント】条件を別セルに置くと、担当者や部署を切り替える集計表として再利用できます。

 

複数条件を扱うCOUNTIFS関数の利用

部署が営業で、かつ処理状況が完了である行のように、複数の条件を同時に指定したいことがあります。

その場合はCOUNTIF関数ではなく、COUNTIFS関数を使います。

=COUNTIFS(C2:C1000,”営業”,D2:D1000,”完了”)

COUNTIFS関数では、条件範囲と条件をセットで順番に入力します。

最初のC2:C1000と営業が1つ目の条件で、D2:D1000と完了が2つ目の条件です。

すべての条件を満たす同じ行だけが集計対象になるため、部署別の完了件数や担当者別の案件数を正確に把握できます。

複数の条件範囲は、必ず同じ行数と同じ開始行で指定してください。

範囲の大きさが異なると、正しい集計ができなかったり、エラーになったりすることがあります。

【操作のポイント】複数条件では、すべての条件範囲を2行目から同じ最終行までにそろえます。

 

エクセルでフィルター後の表示行を数える方法【SUBTOTAL関数】

続いては、オートフィルターで絞り込んだあとに表示されている行だけを数える方法を確認していきます。

A B C
1 氏名 部署
2 田中 営業
3 佐藤 総務
4 鈴木 営業

 

SUBTOTAL関数で絞り込み結果を集計する数式

通常のCOUNTA関数やCOUNTIF関数は、フィルターで非表示にした行も含めて数えます。

画面に表示されている行数だけを知りたいときは、SUBTOTAL関数を使います。

=SUBTOTAL(103,B2:B1000)

数式の103は、フィルターで非表示になった行と手動で非表示にした行を除いてCOUNTA集計する番号です。

B列には氏名が必ず入る前提なので、表示中の氏名の数がそのまま表示行数になります。

営業部だけにフィルターをかけた状態で営業が2件なら、結果は2です。

フィルター条件を変更すると、SUBTOTAL関数の結果も自動で変化します。

【操作のポイント】表示されているデータだけを数える場合は、関数番号103と必須入力列を組み合わせます。

 

フィルターを設定して部署別に表示する操作

フィルターを使うには、表内の任意のセルを選択してから、データタブのフィルターをクリックします。

見出し行の右側に表示される矢印から、部署列の営業だけを選択します。

以下は、営業に絞り込んだ状態でSUBTOTAL関数を入力する画面イメージです。

行数カウント.xlsx – Excel● □ ×
ファイル ホーム 挿入 ページ レイアウト 数式 データ 校閲 表示
貼り付けB罫線フィルター← データタブで設定
名前
fx =SUBTOTAL(103,B2:B1000)
A B C D
1 氏名 部署 ▼ 表示件数
2 田中 営業 2
3 佐藤 総務
4 鈴木 営業
営業で絞り込んだ表示行だけを集計 ←

非表示になった総務の行は薄く表示されていますが、SUBTOTAL関数の集計結果には含まれません。

一覧を担当者別、部署別、月別に絞り込んで件数を確認したい場合に、特に便利な方法です。

【操作のポイント】フィルターを設定した表では、通常のCOUNTAではなくSUBTOTALを使うと表示件数を確認できます。

 

関数番号3と103の違い

SUBTOTAL関数では、最初の引数に集計方法を示す番号を入力します。

COUNTAを使う番号は3ですが、3は手動で非表示にした行を集計対象に含めます。

一方の103は、フィルターで非表示の行だけでなく、手動で非表示にした行も除外します。

=SUBTOTAL(3,B2:B1000)

=SUBTOTAL(103,B2:B1000)

普段から行を非表示にして表を整理することがあるなら、非表示行を除外できる103を選ぶほうが集計の意図を保ちやすいでしょう。

ただし、意図的に隠した行も件数に含めたい場合は3を使います。

どちらの番号を使うかは、非表示にした行を件数に含めるかどうかで判断します。

【操作のポイント】フィルターだけでなく手動の非表示行も除外するなら、関数番号は103を指定します。

 

エクセルで複数列を基準に行数を判定する方法【COUNTAとIF関数】

続いては、複数の列に入力がある行だけを数えたい場合の考え方を確認していきます。

A B C
1 氏名 メールアドレス
2 田中 tanaka@example.com
3 佐藤

 

入力済みの基準列を決める考え方

行全体に何らかの入力があれば数えたい場合でも、すべての列を直接数える必要はありません。

各データ行に必ず入力される識別情報を基準列として決めることが、もっともシンプルな方法です。

顧客一覧なら顧客番号、商品一覧なら商品コード、従業員一覧なら社員番号が基準列の候補になります。

重複せず、空欄にならない列を基準に選ぶことで、集計式を短く保てます。

氏名だけでは同姓同名があり得る場合でも、行数を数える目的であれば氏名列が常に入力される限り問題ありません。

ただし、入力途中の行も除外したい場合は、完了判定に必要な列を条件に追加します。

【操作のポイント】行数カウントの基準には、全件で入力されるIDや名称の列を選びます。

 

必須項目がそろった行だけを数える方法

氏名とメールアドレスの両方が入力された行だけを数える場合は、COUNTIFS関数が使えます。

=COUNTIFS(B2:B1000,”<>”,C2:C1000,”<>”)

この式では、B列が空白ではなく、かつC列も空白ではない行だけを数えます。

サンプルでは田中の行だけが両方の条件を満たすため、結果は1です。

入力途中のレコードを件数から外したいときに適しています。

必須項目が3列以上ある場合も、条件範囲と「<>」を追加すれば対応できます。

条件を増やしすぎると数式が長くなるため、入力完了列を別に設ける方法も検討するとよいでしょう。

【操作のポイント】必須項目が複数ある表では、COUNTIFS関数で各列が空白ではない条件を並べます。

 

数式だけが入ったセルを扱う場合

IF関数で空文字列を返す数式が入っているセルは、見た目には空白でもCOUNTA関数で数えられることがあります。

たとえば、=IF(A2=””,””,A2) のような数式は、A2が空欄なら表示を空白にします。

このような表示上の空白を除外したい場合は、COUNTIF関数の「<>」を使うほうが意図に近い結果になることがあります。

実際の表で確認し、セルに数式が存在するか、画面に値が表示されているかを区別して集計方法を決めましょう。

複雑な帳票では、集計専用の判定列を作成し、入力が完了した行にだけ「1」を表示させる方法もあります。

その判定列をSUM関数で合計すれば、完成データの行数を明確に管理できます。

【操作のポイント】空文字列を返す数式がある表では、見た目の空白と関数の判定結果が一致するか確認します。

 

エクセルで行数カウントを自動化するテーブル機能

続いては、データの追加に合わせてカウント範囲を自動で広げるテーブル機能を確認していきます。

A B C
1 社員番号 氏名
2 1001 田中
3 1002 佐藤

 

テーブル化で参照範囲を自動拡張する仕組み

通常の範囲指定では、データが1000行を超えたときに数式の範囲を修正する必要があります。

データ範囲をテーブルに変換すると、新しい行を追加したときにテーブル範囲が自動で広がります。

表内を選択してCtrlキーとTキーを押し、先頭行をテーブルの見出しとして使用する設定を確認します。

継続的に追加入力する一覧は、テーブル化しておくと範囲の指定漏れを防げます。

テーブル名は既定ではTable1などになりますが、テーブルデザインタブから分かりやすい名前に変更できます。

たとえば社員一覧という名前を付けると、数式の意味を読み取りやすくなります。

【操作のポイント】毎月データを追加する一覧は、最初にテーブル化して集計範囲を自動化します。

 

テーブルの列名を使うCOUNTA関数

テーブル化した社員一覧の氏名列を数える場合、構造化参照を利用できます。

=COUNTA(社員一覧[氏名])

この数式は、社員一覧テーブルの氏名列にある空白以外のセルを数えます。

通常のB2:B1000のようなセル番地ではなく、列名で参照できる点が特徴です。

数式を見ただけでどのデータを数えているのか分かりやすいため、複数人で管理するブックにも向いています。

新しい氏名をテーブルの最終行の次に入力すると、その行は自動でテーブルに含まれ、カウント結果も更新されます。

削除した行も自動的に対象から外れるため、範囲を手動で調整する手間が減ります。

【操作のポイント】テーブルの構造化参照では、テーブル名と列見出しを使って集計対象を明確にします。

 

集計結果を見やすく保つ配置

行数の集計結果は、元データと離れた場所に置くと確認しづらくなることがあります。

表の上部や右側に、データ件数というラベルと数式セルを並べて配置するとよいでしょう。

条件別の件数を複数表示する場合は、部署別件数、完了件数、表示件数のように目的を明記します。

数値だけを表示するのではなく、何の件数か分かる見出しを添えることが大切です。

表が大きい場合は、集計セルをウィンドウ枠の固定の範囲に置く方法もあります。

これにより、下の行までスクロールしても件数を確認しやすくなります。

【操作のポイント】件数セルには集計内容が分かるラベルを付け、表を閲覧しながら確認できる位置に置きます。

 

まとめ エクセルでデータが入った行をカウントする方法

エクセルで行数をカウントする方法は、何を1件として数えるかによって使い分けます。

単純に入力済みの行数を求めるなら、必須入力列に対してCOUNTA関数を使う方法が基本です。

空白ではないセルを条件として明示したい場合や、特定の部署だけを集計する場合はCOUNTIF関数が役立ちます。

複数の条件を満たす行を数えるならCOUNTIFS関数を使い、条件範囲の行数をそろえることが重要です。

フィルターで絞り込んだ表示行だけを数えたいときは、SUBTOTAL関数の103を使う方法が適しています。

データを追加し続ける表では、テーブル化して構造化参照を使うと、数式の対象範囲を自動で管理できます。

まずは各行で必ず入力される列を基準に決め、見出しを除外した2行目から数式を指定しましょう。

目的に合う関数を選べば、件数確認が正確になり、日々の集計作業も大きく効率化できます。