Excelで最大の正の数・負の数を見つける方法|MAX IF配列数式の使い方
データ全体の中から単純に最大値を求めるだけでなく、「正の数だけの中で一番大きい値」や「負の数だけの中で一番大きい値」のように、特定の条件を満たす数値の中から最大値を見つけたいケースは意外と多くあります。
データ量が少なければ、MAX関数の引数として該当するセル範囲を手動で選択するだけで済みます。しかし、大量のデータやソートされていないデータの場合、正しい範囲を選択するのは困難であり、場合によってはほぼ不可能です。
そこで役立つのが、IF関数とMAX関数を組み合わせた配列数式です。この方法を使えば「正の数のみ」「負の数のみ」といった条件を数式内で設定でき、条件に一致するデータだけを自動的に評価対象とすることができます。
MAX IF配列数式の仕組み
このチュートリアルで、最大の正の数を見つけるために使用する数式は次のとおりです。
=MAX( IF( A1:B5>0, A1:B5 ) )
ポイント: IF関数の「value_if_false(偽の場合の値)」引数は省略可能ですが、ここでは数式を短くするために省略しています。そのため、選択範囲内のデータが条件(0より大きい数値)を満たさない場合、数式は 0 を返します。
数式の各部分が担う役割は以下のとおりです。
- IF関数: データをフィルタリングし、設定した条件を満たす数値だけをMAX関数に渡します。
- MAX関数: フィルタリングされたデータの中から最大値を見つけます。
- 配列数式: 数式を囲む波括弧 { } で示されます。これにより、IF関数の論理テストが単一のセルではなく、データ範囲全体を検索できるようになります。
CSE数式とは
配列数式は、数式を入力した後、キーボードの Ctrl キーと Shift キーを押しながら Enter キーを押すことで作成されます。
そうすることで、等号(=)を含む数式全体が波括弧で囲まれ、次のような形になります。
{ =MAX( IF( A1:B5>0, A1:B5 ) ) }
作成時に押すキーの頭文字(Ctrl・Shift・Enter)から、配列数式は「CSE数式」と呼ばれることもあります。
ExcelでのMAX IF配列数式の実例
以下の例では、MAX IF配列数式を使って、数値の範囲から最大の正の数と最大の負の数をそれぞれ求めます。まず最大の正の数を求める数式を作成し、続いて最大の負の数を求める手順を紹介します。
ステップ1:サンプルデータの入力
- ワークシートのセルA1~B5に、任意の数値(正の数と負の数が混在したもの)を入力します。
- セルA6に「最大の正の数」、セルA7に「最大の負の数」というラベルを入力します。
ステップ2:MAX IFネスト数式の入力
今回はネストされた数式(入れ子構造の数式)かつ配列数式を作成するため、数式全体を1つのセルに入力する必要があります。
重要: 数式を入力したら、Enterキーを押したり、マウスで別のセルをクリックしたりしないでください。次のステップで配列数式への変換を行います。
- 最初の計算結果を表示するセルB6をクリックします。
- 次の数式を入力します。
=MAX( IF( A1:B5>0, A1:B5 ) )
ステップ3:配列数式の作成
- キーボードの Ctrl キーと Shift キーを押したままにします。
- その状態で Enter キーを押し、配列数式を作成します。
- セルB6に 45 と表示されれば成功です。これはリスト内で最も大きい正の数です。
セルB6をクリックすると、ワークシート上部の数式バーに完全な配列数式が表示されます。
{ =MAX( IF( A1:B5>0, A1:B5 ) ) }
最大の負の数を見つける方法
最大の負の数を求める数式は、最初の数式と比べて、IF関数の論理テストで使用する比較演算子が異なるだけです。
今度の目的は最大の負の数を見つけることなので、「より大きい」演算子( > )の代わりに「より小さい」演算子( < )を使用し、0より小さいデータだけをテストします。
- セル B7 をクリックします。
- 次の数式を入力します。
=MAX( IF( A1:B5<0, A1:B5 ) )
- 前述の手順と同じように Ctrl + Shift + Enter を押して配列数式を作成します。
- セルB7に -8 と表示されれば成功です。これはリスト内で最も大きい(0に近い)負の数です。
#VALUE!エラーが表示される場合の対処法
セルB6やB7に期待した答えではなく #VALUE! エラーが表示される場合は、配列数式が正しく作成されていないことが原因である可能性が高いです。
この問題を修正するには、数式バー内の数式をクリックして選択し、もう一度 Ctrl + Shift + Enter を押してください。
補足: Microsoft 365やExcel 2019以降をお使いの場合は、配列数式を使わずに MAXIFS関数(例:=MAXIFS(A1:B5, A1:B5, ">0"))でも同じ結果を得られます。通常のEnterキー操作だけで動作するため、環境が許せばこちらの方が簡単です。
-
Excelで変化率(増減率)を計算する方法を徹底解説
Excelで変化率(パーセント変化)を求めるには、まず2つの数値の差を計算し、その差を元の数値(古い値)で割ります。最後に、得られた小数値をパーセント表示に変換すれば完成です。連続したデータ範囲に対して変化率を求めたい場合は、フィル機能を使って数式を下方向へ一括コピーできます。 Excelで増加率・減少率を計算する方法 まず、変化率の基本的な考え方を確認しましょう。変化率は次の式で表されます。 変化率 =(新しい値 - 古い値)÷ 古い値 これをExcelの数式にすると、構文は以下のようになります。 =(新しい値のセル - 古い値のセル) / 古い値のセル 数式の各要素について 新しい値のセ
-
Excelで数値の平方根を求める3つの方法【SQRT・POWER・指数演算子】
Microsoft Excelは、複雑な計算を効率的に行える強力なツールです。Excelを日常的に使っている方なら、数学的な計算処理に触れる機会も多いのではないでしょうか。しかし、意外とシンプルな計算でつまずくこともあります。その代表例が「平方根の計算」です。この記事では、Excelで数値の平方根を求める3つの方法をわかりやすく解説します。 Excelで平方根を計算する基本 SQRT関数、POWER関数、そして指数演算子(^)を使えば、Excelで簡単に平方根を計算できます。それぞれの特徴と使い方を順番に見ていきましょう。 1. SQRT関数を使って平方根を求める SQRT関数は、Excelに