- ベストアンサー
使い分けの好例を教えてください
- 知らなかったMAXA()、MINA()関数。専ら使っていたMAX()、MIN()との違いを教えてほしい。
- MAXA()とMINA()は引数に数値を表す文字列を指定し、論理値と数値を計算する。配列やセル範囲の空白セルと文字列は無視される。
- MAXA()とMINA()の違いを図を使って説明し、使い分けの好例を教えてほしい。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>》 調べる範囲に数値しか含まれないなら、min/minA、 >》 max/maxA、どちらを使うのも好み、… >それって正しくないのでは? >調べる範囲に数値だけでなく、文字列セルが混在していても、どちらも使えるでしょ? 補足すると、 →調べる範囲に数値しか含まれないなら、(結果は同一だから) min/minA、max/maxA、どちらを使うのも好み と書いたわけです。 文字列セルを含む可能性があるなら、 →(結果が違ってくるから) min/minA、max/maxAを、自分の都合のいいように使い分けなければならない。 ということになります。 「文字列セルをゼロ扱いする」というのは、一般的な使用においては不都合なことが多いでしょうから、普通はmin() max()だけ使っておけばいいんじゃないかと、正直、思います。 でも、minA() maxA() を活用できる例として何かないかと頭をひねったのが 回答No.2の中段、ということになったんですけども…。
その他の回答 (4)
- bunjii
- ベストアンサー率43% (3589/8249)
>1.引数には数値を表す文字列を指定できます。 引数に "1" や "123" のように数式へ与えると数値の 1 や 123 として評価されます。 >2.引数として指定した論理値と、数値を表す文字列が計算の対象となります。 =MAXA("1","3","5","4","2") → 5 数式内に引数として数値をれ連想できる文字列を与えると数値に置き換えて演算します。 >3.引数としての配列またはセル範囲の参照に含まれる空白セルと文字列は無視されます。 >4.引数に文字列が含まれる場合は 0 と見なされます。 =MAXA(A1,A2,A3,A4,A5) → 0 (A1:A5はすべて文字列のとき) セルの値である文字列が数値を連想できても数値に置き換えることが無く 0 が返ります。
お礼
bunjiiさん、 コメント、ありがとうございました。 半分冗談ですが、ひょっとして貴方は、MSサポーター(応援者)ではないかと思い始めました。
- MackyNo1
- ベストアンサー率53% (1521/2850)
同じ~A系の関数でもMINAやMAXA関数の利用機会があまり多くないのでAVERAGEA関数で説明したほうがわかりよいような気がします。 例えば添付画像のA1:A5セルのように、数字、文字列、スペースを含むセルを平均するとき、通常のAVERAGE関数では空白セルと文字列は計算対象外ですので「3」となりますが、場合によっては文字列もデータとしてカウントして平均を出したいときが少なくありません(すなわち「0」とみなして「2.25」で計算する)。 この考え方をMINAやMAXA関数に拡張すると、文字列は「0」とみなすので、MIN関数では「1」となりますがMINA関数では文字列に対応する「0」が返るわけです。
お礼
コメント、ありがとうございました。 お蔭様で少し理解できたような気がします。 [関数の挿入]メニューの窓内で AVERAGEA を選択したとき、当該メニューの下端に「引数の文字列および FALSE は 0、TRUE は 1 と見なします」なる一節は MackyNo1さんの説明に合っているように思えます。 しかし、AVERAGEA でなく、AVERAGEA 関数のヘルプ本文中の[解説]の項に「引数として指定した論理値と、数値を表す文字列が計算の対象となります」があるのは合点が行きません。そう記述していながら「計算の一部としてセル参照に論理値や数値を表す文字列を含める場合は、AVERAGEA 関数を使用します」とも書いてあります。 少し理解できたようで、まだ、少し混乱から抜け切れておりません。(トホホ)
- asciiz
- ベストアンサー率70% (6824/9704)
ヘルプにある違いは、以下の部分。 ・MAX()、MIN() >引数に配列またはセル範囲の参照を指定した場合、 >そこに含まれる数値だけが計算の対象となります。 >配列やセル範囲に含まれる空白セル、論理値、または >文字列はすべて無視されます。 ・MAXA()、MINA() >引数に TRUE が含まれる場合は 1 と見なされ、 >文字列または FALSE が含まれる場合は 0 (ゼロ) と >見なされます。 上記に該当しない場合、すなわち調べる範囲に含まれる値がすべて数値(または空白セル)である時、MIN()とMINA()、MAX()とMAXA()は完全に一致します。 調べる範囲に文字列値が存在した場合、MINA()関数では、最小値として0が返ることになります。(※他にマイナス値が無い場合) その他、真偽値 TRUE のセルが含まれると、そこは 1 として集計対象になるので、場合によっては混乱してしまいますね。 MAX()・MIN()では数値セルしか調べないので、文字列セルは無視して、数値の中で一番大きい・小さいものの値となります。 ---- 使い分け方には……あまり良いものを思いつかないのですが(汗) 真偽値がズラっと一列に並んでいるような範囲で、MAXA()を取ると、すべてFALSEならば0ですが、どこか一つでもTRUE がある場合に1となります。 その逆、真偽値のみの範囲で、MINA()を取ると、すべてTRUEなら1ですが、どこか1つでもFALSEがある場合に0が返ります。 「=if(テスト, 計算値, "エラー")」というような計算セルが並んでいるところで、MINA() を使って最小値を取ると、すべて正常に計算されていれば計算値のいずれかが返りますが、文字列"エラー"になったセルがあれば、0が返ります。 あるいは、「=if(min(範囲)=minA(範囲), 次の計算, "数値ではないセルがあります")」なんて判定に使えるかも知れません。(※数値0, 1が含まれないと保証できる場合) ---- まあ、調べる範囲に数値しか含まれないなら、min/minA、max/maxA、どちらを使うのも好み、ということになりますね。
補足
》 調べる範囲に数値しか含まれないなら、min/minA、 》 max/maxA、どちらを使うのも好み、… それって正しくないのでは? 調べる範囲に数値だけでなく、文字列セルが混在していても、どちらも使えるでしょ?
- dogs_cats
- ベストアンサー率38% (278/717)
その関数は使用した事は無いのですが、 trueが存在すると1を返し、falseだと0:falseは数値以外の文字列を意味してるようです。 trueが存在する場合は、他の数値が1未満の値であればMAXA関数で1を取得出来ます。1という数値で他の値を参照する事は出来ますね。1以下は参照しない。 falseの場合は文字以外の数値データがマイナス値である必要があります。 MAXAで文字があれば0を返す。 画像の黄色セルがMAXAの結果です。
補足
仰っている事柄はすべて理解できているつもりです。 私が知りたいのは、MAXA関数の“売り”であるだろう「引数に文字列を指定」して、「なるほど、こういう使い方ができて便利になった!」と感動(感心)できる実例なのです。
お礼
asciizさん、 結論を先に言えば、今回の「→(結果が違ってくるから)」を見て、思わず「あっ!」と声をあげて、そこで私の抱えていた問題が氷解しました。ありがとうございました。 以下は、長文になりますが、参考までに書いておきます。 私の今回の思い違い(勘違い)は実は根が深いところにありました。 大昔のことですが、Lotus1-2-3 から Excel に移行してきた私が驚いたことの一つが“文字列の数字は四則演算では数値として機能する”でした。 例えば Excel では "123"+456→579、"2015/12/1"*1→42339 となるけど、Lotus1-2-3 ではエラーになっていたように記憶しています。 そういう次第なので、MAXA関数のヘルプが言う「数値を表す文字列を指定できます」「数値を表す文字列が計算の対象となります」も「数値として機能する」の意味だと勘違いしていたのです。同ヘルプ中の「文字列が含まれる場合は 0 と見なされます」の「文字列」も「数値を表す文字列」は含まれないとも早とちりしたりして、混乱していました。 再度の丁寧なコメントをいただき、心より感謝いたしております。