Excel でゼロやエラー値を無視して中央値を求めるにはどうすればよいですか?
Excel でデータ分析を行う際、データセットの中心傾向を正確に把握するには、中央値を適切に計算することが不可欠です。しかし、データにゼロやエラー値(例:#DIV/0!、#N/Aなど)が含まれていると、通常の中央値計算がうまく機能しないことがあります。たとえば、標準的な数式 =MEDIAN(範囲)を使うと、ゼロがそのまま計算に含まれてしまい、さらに範囲内に無効なセルがあるとエラーが返され、誤解を招く結果や計算の失敗につながる可能性があります(下図参照)。
これを解決するには、ゼロやエラー値を除外しつつ中央値を計算するさまざまな手法があり、分析の正確性と堅牢性を確保できます。これらの手法は、ゼロやエラーを除いて意味のある結果を得る必要があるアンケートデータ、財務報告書、科学的測定など、多様なシナリオに最適です。以下では、Excel で利用可能な各手法について、シンプルな数式から高度な自動化テクニックまで、実践的なステップ・バイ・ステップガイドをご紹介します。
Power Query:ゼロやエラーをフィルターした後の中央値
ゼロを無視した中央値
中央値を計算する際に、範囲内に含まれるゼロ(たとえば、欠損値を表す「0」など)を除外したい場合は、配列数式を使ってゼロを無視できます。これは特に、ゼロが実際の測定値ではなく、利用不可なデータのプレースホルダーとして使われているデータセットで効果的です。
中央値を表示したいセル(例:C2)を選択し、次の数式を入力します:
=MEDIAN(IF(A2:A17<>0,A2:A17)) 数式を入力したら、Enter キーを押す代わりに、Ctrl + Shift + Enter を押して配列数式として確定してください(数式バーに数式の前後に波かっこ { } が表示されます)。これにより、A2:A17 内のゼロ以外の値のみが中央値の計算に使用されます。スクリーンショットを参照してください:
ヒント:
- Excel 365 または Excel 2021 以降をご利用の場合、動的配列がサポートされているため、Enter キーを押すだけで十分です。
- 範囲内にゼロ以外の数値が少なくとも1 つ含まれていることをご確認ください。そうでない場合、数式は#NUM!エラーを返します。
- この方法は、アンケート回答や経費報告書、売上データのクリーニングにおいて、分析からゼロを除外すべきケースに最適です。
エラーを無視した中央値
#N/A、#DIV/0!、または#VALUE!などのエラー値が含まれていると、標準的な中央値関数がエラーを返し、データ分析が中断されてしまうことがあります。こうしたエラーを安全に除外しながら中央値を正確に計算するには、次の配列数式をご活用ください。
結果を表示したい任意のセルを選択し、以下の数式を入力します:
=MEDIAN(IF(ISNUMBER(F2:F17),F2:F17)) 数式を入力したら、Ctrl + Shift + Enterを押してください(ただし、Excel 365/Excel 2021 以降をご利用の場合は、動的配列がサポートされているため不要です)。この数式はF2:F17 内の実際の数値のみを対象とし、エラーを完全に無視します。
ヒントと注意点:
- すべてのセルがエラー値の場合、結果として#NUM!エラーが返されます。データに少なくとも1 つの有効な数値が含まれていることをご確認ください。
- 条件をネストすれば、ゼロとエラーの両方を除外するなど、複数の除外条件を組み合わせることが可能です。
- この数式は、インポートデータやアンケート結果、財務諸表など、部分的または失敗した計算を含む可能性のあるデータを扱う際に特に役立ちます。
VBA:ゼロとエラーを無視する中央値(ユーザー定義関数)
ゼロとエラーの両方を頻繁に無視して中央値を計算する必要がある場合や、配列数式を手動で入力したくない場合は、カスタム VBA 関数(ユーザー定義関数、UDF)をご利用いただけます。このアプローチは柔軟性に優れ、すべての除外条件をカスタム関数内にカプセル化できるため、組み込み関数と同様に簡単に使え、大規模データや頻繁に更新されるデータセットにも最適です。
UDF の設定方法:
- Excel の開発タブをクリックしてください。表示されていない場合は、ファイル > オプション > リボンのユーザー設定から有効化できます。
- Visual Basicをクリックして、VBA エディターを開きましょう。
- VBA エディターで、挿入 > 標準モジュールをクリックして、新しいモジュールを作成しましょう。
- 次のコードをモジュールにコピーして貼り付けてください:
Function MedianIgnoreZeroError(rng As Range) As Variant
Dim cell As Range
Dim tempList() As Double
Dim count As Integer
count = 0
On Error Resume Next
xTitleId = "KutoolsforExcel"
For Each cell In rng
If IsNumeric(cell.Value) Then
If cell.Value <> 0 And Not IsError(cell.Value) Then
count = count + 1
ReDim Preserve tempList(1 To count)
tempList(count) = cell.Value
End If
End If
Next cell
On Error GoTo 0
If count = 0 Then
MedianIgnoreZeroError = CVErr(xlErrNum)
Else
MedianIgnoreZeroError = Application.WorksheetFunction.Median(tempList)
End If
End Function UDF の使用方法:
Excel に戻った後、任意のセルに数式 =MedianIgnoreZeroError(A2:A17)を入力してください()A2:A17はご自身の対象範囲に置き換えてください)。配列数式とは異なり、Enter キーを押すだけで OK!Ctrl + Shift + Enterは不要です。
- この方法は非常に大規模なデータセットに最適で、配列数式に特有の問題を回避でき、さらにコードを編集することで、他の不要な値も無視するようカスタマイズできます。
- 範囲内にゼロまたはエラーしか含まれていない場合、結果として#NUM!
- #NAME?エラーが表示された場合は、VBA マクロが正しくインストールされており、かつExcel の設定でマクロが有効になっていることをご確認ください。
Power Query:ゼロやエラーをフィルターした後の中央値
Power Query は、Excel でデータをインポート・変換・分析するための強力なツールです。特に、中央値などの計算を行う前に大規模なデータセットをクリーニングおよび前処理したい場合に最適です。Power Query を使えば、ゼロやエラー値を簡単にフィルターで除外し、計算に使える有効な数値だけを残すことができます。このアプローチは、ソースデータが定期的に更新されるときや、外部システムからインポートされる際に特に役立ちます。
Power Query を使用してゼロとエラーを無視して中央値を計算する手順:
- データ範囲内の任意のセルを選択し、データタブに移動して、テーブル/範囲からをクリックします。データがまだテーブル形式になっていない場合、Excel がテーブルの作成を促すので、「OK」をクリックしてください。
- Power Query エディターウィンドウが開いたら、該当列のドロップダウン矢印をクリックし、0のチェックを外してゼロ値をフィルターで除外します。(エラーをフィルターするには、列見出しを右クリックして、)エラーを削除を選択してください。)
- フィルターを適用した後、ホーム > 閉じて読み込むをクリックして、クリーンなデータをワークシートに戻してください。
- これで不要な項目がすべて除外され、フィルター済みの値のみを含む列になったため、標準の
=MEDIAN()数式をそのまま適用できます。
この方法により、元のデータを一切変更することなく、新しいデータや更新されたデータに対しても高い再現性を確保でき、定期的なレポート作成や大規模・外部データセットの処理に特に効果的です。Power Query のワークフローなら、ソースデータが変更されるたびにワンクリックで即座に更新可能で、手作業による介入やエラーのリスクを最小限に抑えます。
- Power Query は Excel 2016 以降でご利用いただけます(Excel 2010 および 2013 ではアドインとしてご利用可能です)。
- 変換後は、得られたクリーンなデータに対して計算を実行できるため、下流の分析の信頼性が向上します。
予期しない結果が得られた場合は、Power Query でのフィルター手順を再度確認し、クリーンなデータに有効な数値が正しく残っていることをご確認ください。
要するに、Excel にはゼロやエラーを無視して中央値を計算するための実用的な選択肢が複数あります。直接配列数式を使うか、自動化のためにカスタム VBA ソリューションを作成するか、あるいは大規模なワークフロー自動化には Power Query を活用するか——データセットのサイズ、更新頻度、ワークフローの好みに最も適した方法を選ぶことで、信頼性が高く正確な結果を得られます。
最高の Office 業務効率化ツール
| 🤖 | KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気の機能:検索・ハイライト、または重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー LOOKUP:複数条件 VLookup | 複数値 VLookup | 複数シート間 VLookup | ファジーマッチ.... | |
| 高度なドロップダウンリスト:ドロップダウンリストをすばやく作成 | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト.... | |
| 列マネージャー:指定した数の列を追加|列の移動|非表示列の表示状態を切り替え|範囲および列の比較... | |
| 注目の機能:グリッドフォーカス | デザインビュー |強化された数式バー | ワークブックとシートマネージャー | リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除、...)| 50+チャートタイプ(ガントチャート、...)| 40+実用的関数(誕生日に基づいて年齢を計算します、...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入、...)| 12 変換ツール(単語に変換する、為替レートの変換、...)| 7 結合と分割ツール(高度な行のマージ、セルの分割、...)|さらに多数 |
Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。
Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします
- Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
- 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
- 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!
すべてのKutools アドインが、たった1 つのインストーラーで完結。
Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。
- オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
- インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
- 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
- 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
- 最高のお得感— 個別アドイン購入よりお得