エクセルで合計や平均を計算するとき、一部のセルが空白だったり文字列だったりする場合に計算結果が崩れてしまうことがあります。
数字がある時のみ計算する条件付きの操作を知っていれば、空白や文字列の影響を受けずに正確な集計が実現します。
本記事では、IF関数やISNUMBER関数を使った数字がある時のみ計算する方法から、空白を除外した集計、条件不一致データの抽出まで、実務に直結するテクニックを解説していきます。
目次
エクセルで数字がある時のみ計算するIF・ISNUMBER関数の活用法
それではまず、セルに数字が入力されている場合のみ計算を実行するための関数の使い方について解説していきます。
数字の有無を判定して計算を切り替えるには、IF関数とISNUMBER関数の組み合わせが基本のアプローチです。
数字がある時のみ計算する主な方法
①IF+ISNUMBER関数:数値かどうかを判定して計算を分岐する
②IF+空白判定:空白の場合に空白を返し、値がある場合のみ計算する
③SUMIF・AVERAGEIF関数:条件を指定して数値のみを集計する
④IFERROR関数:エラーが出た場合に代替値を返す
ISNUMBER関数は対象が数値かどうかをTRUE/FALSEで返す判定関数であり、IFと組み合わせることで数値のみを対象にした計算が実現します。
IF+ISNUMBER関数で数字がある時のみ計算する方法
ISNUMBER関数の構文は=ISNUMBER(値)であり、値が数値の場合はTRUE、そうでない場合はFALSEを返します。
これをIF関数と組み合わせて、数値がある場合のみ計算を行うようにします。
=IF(ISNUMBER(A1), A1*1.1, “”)
→ A1が数値の場合は1.1倍を計算し、そうでなければ空白を返す
=IF(ISNUMBER(A1), A1+B1, “未入力”)
→ A1が数値の場合はA1+B1を計算し、数値でなければ「未入力」と表示する
この数式を使うことで、文字列や空白が入力されているセルでも#VALUEエラーが出ることなく、適切な代替表示ができます。
ISNUMBER関数は数値のみを判定するため、文字列として保存された「123」はFALSEになる点に注意が必要です。
空白セルがある場合にIF関数でエラーを回避する
空白セルが含まれる範囲で計算するときに最もよく使われるのが、空白判定によるIF関数の分岐です。
=IF(A1=””, “”, A1*2)
→ A1が空白の場合は空白を返し、値がある場合はA1の2倍を計算する
=IF(A1″”, A1*B1, “”)
→ A1が空白でない場合のみA1×B1を計算する(「」は「等しくない」の意)
空白セルに対する計算でよくあるミスが、空白を0として計算してしまうことです。
IF関数で空白を除外することで、0として扱われることなく正確な集計が維持されます。
入力途中の表や徐々にデータが埋まっていくシートでは、この空白除外のIF式が非常に有効でしょう。
IFERROR関数でエラーを非表示にして計算を継続する
数式の結果がエラーになる場合に備えて、IFERRORで代替値を設定する方法も重要です。
=IFERROR(A1/B1, “エラー”)
→ A1÷B1が正常な場合はその結果を、エラーの場合は「エラー」と表示する
=IFERROR(VLOOKUP(A1, D:E, 2, 0), “該当なし”)
→ VLOOKUP検索で見つからない場合に「該当なし」と表示する
IFERRORはDIV/0エラー(ゼロ除算)やN/Aエラーなど、計算式でよく発生するエラーを一括して処理できます。
エラーセルが見た目に残ると集計表が見づらくなるため、IFERRORを使って整然とした表を保つことが大切でしょう。
空白を除外して数値のみを集計するSUMIF・AVERAGEIF関数
続いては、特定の条件を指定して数値のみを合計・平均するSUMIF・AVERAGEIF関数の使い方を確認していきます。
これらの関数は単なる条件付き集計にとどまらず、空白除外・数値のみ集計にも活用できます。
SUMIF関数で数値のみを合計する方法
SUMIF関数は「条件を満たすセルのみを合計する」関数ですが、数値のみを合計する用途にも応用できます。
=SUMIF(A1:A10, “”, B1:B10)
→ A列が空白でない行のB列の値を合計する
=SUMIF(B1:B10, “>”&0)
→ B列の0より大きい値のみを合計する
=SUMPRODUCT((ISNUMBER(A1:A10))*A1:A10)
→ A列で数値が入っているセルのみを合計する
最後のSUMPRODUCT+ISNUMBER関数の組み合わせは、文字列混在データから数値のみを正確に合計する強力な方法です。
SUMPRODUCT+ISNUMBERは文字列と数値が混在したセル範囲の集計に最も適した方法のひとつです。
AVERAGEIF関数で空白・エラーを除外した平均を求める
AVERAGEIF関数を使うと、条件を満たすデータのみで平均を計算できます。
=AVERAGEIF(A1:A10, “”)
→ A列の空白を除外した数値の平均を求める
=AVERAGEIF(A1:A10, “>0”)
→ A列の0より大きい値のみで平均を計算する
AVERAGE関数はエラーセルがあると結果がエラーになりますが、AVERAGEIFであれば条件に合うセルのみを対象にするため、エラーを含む行を自動的に除外できます。
空白や入力ミスが混在するアンケートデータや調査結果の集計に特に有効でしょう。
COUNTIF・COUNTIFSで数値の個数を条件付きでカウントする
数値が何件あるかをカウントしたい場合は、COUNTIF・COUNTA・COUNT関数を目的に合わせて使います。
| 関数 | カウント対象 | 例 |
|---|---|---|
| COUNT | 数値のみ | =COUNT(A1:A10) |
| COUNTA | 空白以外すべて | =COUNTA(A1:A10) |
| COUNTBLANK | 空白セルのみ | =COUNTBLANK(A1:A10) |
| COUNTIF | 条件一致 | =COUNTIF(A1:A10,”>”&100) |
COUNT関数は数値のみを数えるため、文字列や空白は自動的に除外されます。
「数値が入力されているセルの個数」を知りたいときはCOUNT関数が最もシンプルな選択肢です。
不一致のみを抽出する条件設定と実用的な活用方法
続いては、条件と一致しないデータのみを抽出・表示する方法を確認していきます。
不一致データの抽出は、データ照合・エラーチェック・差異分析などの場面で非常に重要です。
IF関数の「」演算子で不一致のみを抽出する
「」は「等しくない」を意味する比較演算子であり、不一致の判定に使います。
=IF(A1B1, “不一致”, “”)
→ A1とB1が異なる場合に「不一致」と表示し、一致する場合は空白にする
=IF(A1″対応済み”, “未対応”, “”)
→ A1が「対応済み」でない場合に「未対応」と表示する
この数式を一覧表に適用すると、一致しているセルは空白、不一致のセルのみに「不一致」と表示される状態になります。
条件付き書式と組み合わせて不一致行を色付けすることで、視覚的にも確認しやすくなるでしょう。
フィルターと不一致判定を組み合わせて不一致データを絞り込む
不一致を判定した列にフィルターをかけることで、不一致のデータのみを絞り込んで表示できます。
「不一致」という文字が入っているセルのみ表示するようにフィルターを設定すれば、一致しているデータを非表示にした状態でチェック作業が行えます。
データ照合の作業では、この一致・不一致判定+フィルターの組み合わせが非常に実用的でしょう。
大量データの照合作業では、不一致判定列を設けてフィルターで絞り込む手順が最も効率的です。
COUNTIFS・SUMIFSで複数条件の不一致を集計する
複数条件で不一致を集計したい場合は、COUNTIFSやSUMIFSが役立ちます。
=COUNTIFS(A1:A100, “対応済み”, B1:B100, “”)
→ A列が「対応済み」でなく、かつB列が空白でない行の件数を返す
=SUMIFS(C1:C100, A1:A100, “完了”, B1:B100, “>0”)
→ A列が「完了」でなく、かつB列が0より大きい行のC列の合計を返す
複数の条件を組み合わせることで、より精密な不一致データの集計が可能になります。
進捗管理や案件一覧などの実務データでは、このような複合条件の集計が頻繁に必要となるでしょう。
まとめ
本記事では、エクセルで数字がある時のみ計算する方法について、IF+ISNUMBER関数の基本から、空白除外の集計関数、不一致データの抽出まで幅広く解説してきました。
IF+ISNUMBERの組み合わせで数値判定→計算という基本パターンをまず習得しましょう。
空白セルを除外した集計にはSUMIF・AVERAGEIF・SUMPRODUCT+ISNUMBERが有効です。
不一致データの抽出では「」演算子とフィルターの組み合わせが実務での照合作業に直結するテクニックです。
IFERRORでエラー表示を適切に処理することも、見やすい集計表を作るために欠かせない操作でしょう。
これらの関数と条件設定を使いこなすことで、エクセルでの集計・分析の精度が大幅に高まります。