「MAX関数で最大値を出したら、TRUEやFALSEが入ったセルが無視されてしまった」。こんな経験はありませんか?
MAX関数は論理値や文字列をスキップするので、データの全体像をつかめません。TRUE/FALSEが混在するアンケートや検査結果では困りますよね。
MAXA関数なら、論理値や文字列も含めた最大値を求められます。 この記事ではMAX関数との違いや実務パターン、エラー対処法を解説します。
MAXA関数とは?読み方と基本の仕組み
MAXA関数は、指定した範囲の中から論理値や文字列も含めて最大値を返す関数です。
読み方は「マックスエー関数」です。MAXに「All(すべて)」のAが付いた名前です。すべてのデータ型を含めて最大値を求めるという意味があります。同じパターンの関数にMINA関数(最小値版)があります。
TIP
「A」が付く関数は他にもあります。COUNTA関数はCOUNT関数の「すべてのデータ型をカウントする」版です。MAXA/MINAも同じ命名パターンで、「論理値・文字列も含めて集計する」という意味を持ちます。
Excel 2000以降のすべてのバージョンとMicrosoft 365で使えます。
通常のMAX関数との一番大きな違いは、データ型ごとの扱い方です。
| データの種類 | MAX関数の扱い | MAXA関数の扱い |
|---|---|---|
| 数値 | 比較対象になる | 比較対象になる |
| TRUE | 無視する | 1として計算 |
| FALSE | 無視する | 0として計算 |
| 文字列 | 無視する | 0として計算 |
| 空白セル | 無視する | 無視する |
| エラー値 | エラーが返る | エラーが返る |
ポイントは「TRUEを1、FALSEと文字列を0として扱う」点です。
たとえばセル範囲に -5, TRUE, "合格" が入っているとします。MAX関数では -5 だけが対象で、結果は -5 です。
MAXA関数は -5, 1, 0 として計算するので、結果は 1 になります。
NOTE
引数に論理値や文字列を直接入力した場合は、MAX関数でもTRUE=1、FALSE=0として計算されます。セル範囲内にある場合の動作が異なるのがMAXA関数の特徴です。
MAXA関数の書き方(構文と引数)
基本構文
=MAXA(値1, [値2], ...)
引数の説明
| 引数 | 必須/任意 | 内容 |
|---|---|---|
| 値1 | 必須 | 最大値を求めたい値、セル参照、またはセル範囲 |
| 値2以降 | 任意 | 追加で比較したい値や範囲(最大255個まで指定可能) |
MAX関数と構文はまったく同じです。違いはセル範囲内の論理値・文字列の扱いだけです。セル参照、セル範囲、数値の直接入力が指定できます。
MAXA関数の基本的な使い方
結論から言うと、セル範囲を指定するだけです。書き方はMAX関数と同じです。
たとえばA1からA10にデータが入っている場合はこう書きます。
=MAXA(A1:A10)
A1からA10の中で一番大きい値が返ります。このとき、TRUEは1、FALSEと文字列は0として計算に含まれます。
MAX関数と結果が変わるケースを確認しよう
MAXA関数の特徴がよくわかる例を見てみましょう。
| セル | 値 | MAX関数の扱い | MAXA関数の扱い |
|---|---|---|---|
| A1 | -5 | -5 | -5 |
| A2 | -10 | -10 | -10 |
| A3 | TRUE | 無視 | 1 |
| A4 | FALSE | 無視 | 0 |
| A5 | “テスト” | 無視 | 0 |
=MAX(A1:A5) → 結果: -5
=MAXA(A1:A5) → 結果: 1
すべて負の数にTRUEが混在するケースでは結果が大きく変わります。MAX関数は -5、MAXA関数は 1 です。「TRUEを含めて比較したいか」で使い分けましょう。
数値だけのデータではMAX関数と同じ結果
データが数値だけの場合は、MAXA関数もMAX関数も同じ結果を返します。
=MAX(80, 95, 72) → 結果: 95
=MAXA(80, 95, 72) → 結果: 95
わざわざMAXA関数を使う必要はありません。「論理値や文字列が混在するデータ」に限定して使い分けるのがおすすめです。
MAXA関数の実務活用パターン
基本の使い方がわかったところで、実務でMAXA関数が活躍する場面を見ていきましょう。
TRUE/FALSEが混在するアンケートデータの集計
アンケート結果でTRUE/FALSEの回答と数値スコアが混在するシートを扱うことがあります。
たとえばB列に「満足度スコア(1〜5)」が入っているとします。一部のセルにTRUE/FALSEが入っているケースです。
=MAXA(B2:B50)
MAXA関数ならTRUE=1、FALSE=0として計算に含めます。MAX関数ではTRUE/FALSEが無視されるので注意してください。
検査結果の合否データから最大値を求める
品質検査でセルにTRUE(合格)/FALSE(不合格)と数値の測定値が混在するケースです。
=MAXA(C2:C100)
TRUE=1として含めるので、測定値が0以下でもTRUEがあれば 1 が返ります。データ全体を見渡した判断に役立ちます。
MINA関数と組み合わせてデータの振れ幅を求める
MAXA関数と対になるMINA関数を組み合わせると、論理値・文字列を含めたデータの振れ幅が求められます。
=MAXA(A2:A50) - MINA(A2:A50)
MAX-MINではスキップされていたTRUE/FALSEも含めた「本当のレンジ」がわかります。
IF関数と組み合わせて判定に使う
MAXA関数の結果をもとに条件分岐させるパターンです。
=IF(MAXA(B2:B10)>0, "有効データあり", "すべて無効")
TRUE(=1)が1つでもあれば「有効データあり」と判定できます。IF関数との組み合わせはデータの有無チェックにも便利です。
COUNTA関数と組み合わせてデータの概況を把握する
=MAXA(A2:A100) & " / " & COUNTA(A2:A100) & "件"
最大値とデータ件数を1つのセルにまとめる書き方です。COUNTA関数と組み合わせると、データの概況を一目で把握できます。
MAXA関数とMAX関数の違い
MAXA関数とMAX関数の違いを改めて整理しておきましょう。
| 比較項目 | MAXA関数 | MAX関数 |
|---|---|---|
| 機能 | 論理値・文字列を含めた最大値 | 数値のみの最大値 |
| 構文 | =MAXA(範囲) | =MAX(範囲) |
| TRUEの扱い | 1として計算 | 無視する |
| FALSEの扱い | 0として計算 | 無視する |
| 文字列の扱い | 0として計算 | 無視する |
| 空白セルの扱い | 無視する | 無視する |
| 引数に直接入力 | TRUE=1、FALSE=0 | TRUE=1、FALSE=0 |
| 数値のみのとき | 同じ結果 | 同じ結果 |
| 対になる関数 | MINA関数 | MIN関数 |
| 使いどころ | TRUE/FALSE混在データ | 通常の数値データ |
迷ったらMAX関数を使いましょう。 大半の業務データは数値だけなのでMAX関数で十分です。「TRUE/FALSEも計算に含めたい」ときだけMAXA関数の出番です。
TIP
引数に論理値を直接入力した場合(
=MAX(TRUE, 3, 5)など)は、MAX関数でもTRUE=1として計算します。セル範囲を指定した場合のみ動作が異なります。
よくあるエラーと対処法
MAXA関数自体がエラーを出すことは少ないですが、意図しない結果になるケースがあります。
| 症状 | 原因 | 解決策 |
|---|---|---|
結果が 0 になる | 範囲内がすべて文字列やFALSE | 数値データが含まれているか確認 |
結果が 0 になる | 範囲の指定ミス | 数式バーで範囲をクリックして色付き枠を確認 |
#N/A が返る | 範囲内にエラーセルがある | IFERROR関数でエラーを処理 |
#VALUE! が返る | 範囲内にエラーセルがある | AGGREGATE関数(後述)で回避 |
| MAX関数と結果が違う | TRUE/FALSE・文字列の扱いの差 | 意図どおりの動作。使い分けを確認 |
結果が「0」になるときの対処法
MAXA関数で0が返る場合、範囲内のデータがすべて文字列(=0扱い)やFALSE(=0扱い)の可能性があります。
まずISNUMBER関数でセルの中身をチェックしてみてください。
=ISNUMBER(A1)
FALSE なら文字列です。CSVから取り込んだデータは文字列になりがちです。データタブの「区切り位置」やVALUE関数で変換できます。
範囲内にエラーがあるときの対処法
範囲に #N/A や #VALUE! が含まれていると、MAXA関数もエラーになります。AGGREGATE関数で対処できます。
=AGGREGATE(4, 6, A1:A100)
第1引数 4 は「最大値」、第2引数 6 は「エラー値を無視」です。ただしAGGREGATE関数はMAX関数と同じ動作です。論理値・文字列は無視されます。MAXA関数の動作でエラーも無視したい場合はこちらです。
=MAXA(IFERROR(A1:A100, ""))
NOTE
この式はMicrosoft 365またはExcel 2021以降のスピル対応環境で動作します。それ以前のバージョンではCtrl+Shift+Enterで確定してください。
似た関数との違い・使い分け
MAXA関数に関連する関数をまとめて比較します。
| 関数 | 機能 | 使い分けのポイント |
|---|---|---|
| MAXA | 論理値・文字列を含めた最大値 | TRUE/FALSE混在データの最大値 |
| MAX | 数値のみの最大値 | 通常の最大値はこれでOK |
| MINA | 論理値・文字列を含めた最小値 | TRUE/FALSE混在データの最小値 |
| MIN | 数値のみの最小値 | 通常の最小値はこれでOK |
| MAXIFS | 条件付きの最大値 | 部署別・月別で絞りたいとき |
| LARGE | N番目に大きい値 | 2位・3位の値を取得したいとき |
| SMALL | N番目に小さい値 | 下から数えたいとき |
| COUNTA | 空白以外のセル数 | データ件数を数えたいとき |
MINA関数との関係
MAXA関数の対になる関数がMINA関数です。構文も引数もまったく同じで、取得する方向が逆です。
| 比較項目 | MAXA関数 | MINA関数 |
|---|---|---|
| 機能 | 論理値・文字列を含めた最大値 | 論理値・文字列を含めた最小値 |
| TRUEの扱い | 1として計算 | 1として計算 |
| FALSEの扱い | 0として計算 | 0として計算 |
| 文字列の扱い | 0として計算 | 0として計算 |
=MAXA(A1:A10) → 一番大きい値
=MINA(A1:A10) → 一番小さい値
セットで覚えておくと便利ですよ。
MAX関数とMAXA関数の選び方フロー
どちらを使うか迷ったら、次の基準で判断してください。
- データが数値だけ → MAX関数でOK
- TRUE/FALSEが混在していて計算に含めたい → MAXA関数
- TRUE/FALSEが混在しているが無視したい → MAX関数
ほとんどの場合はMAX関数で事足ります。MAXA関数はTRUE/FALSEを含めたいときの特殊用途と覚えておきましょう。
「A」付き関数の命名パターン
Excelには「A」が付くことで論理値・文字列もカウント対象に含める関数がいくつかあります。パターンを知っておくと覚えやすいですよ。
| 通常版 | A付き版 | 違い |
|---|---|---|
| MAX | MAXA | 最大値の計算にTRUE/FALSE・文字列を含めるか |
| MIN | MINA | 最小値の計算にTRUE/FALSE・文字列を含めるか |
| COUNT | COUNTA | 数値だけ数えるか、空白以外すべて数えるか |
| AVERAGE | AVERAGEA | 平均の計算にTRUE/FALSE・文字列を含めるか |
いずれも「A = All data types」で、通常版が無視するデータ型を計算に含めるのが共通ルールです。MAXA関数を覚えれば、MINA・AVERAGEAも同じ感覚で使えます。
まとめ
- MAXA関数は論理値や文字列も含めて最大値を返す関数
- TRUE=1、FALSE=0、文字列=0として計算に含める
- 書き方は
=MAXA(範囲)で、MAX関数と構文は同じ - 数値だけのデータならMAX関数と結果は変わらない
- 対になる関数はMINA関数(論理値を含めた最小値)
- 「0が返る」ときはISNUMBER関数でデータ型を確認
- 迷ったらMAX関数。TRUE/FALSEを含めたいときだけMAXA関数
MAXA関数は使いどころが限定的ですが、TRUE/FALSEが混在するデータでは頼りになります。まずはMAX関数の使い方を押さえて、必要に応じて使い分けてください。
