範囲の最大絶対値を見つけるためのExcelの関数はありますか?


15

私はExcelのような機能を探しています

= MAX(ABS(A1:A10))

ただしABS()、数値の範囲を取りません。

私が思いつくことができる最高のものは:

= MAX(ABS(MIN(A1:A10)),ABS(MAX(A1:A10)))

それはトリックを行いますが、それはすべて厄介であり、私はより良い方法がないとは信じられません。何か案は?

回答:


23

配列式として入力する必要があります。Ctrl。+ Shift+を押して行いますEnter。数式は{=MAX(ABS(A1:A10))}正しく行われたかのように表示されます。


4
私のようなしびれた頭蓋骨に注意してください:数式を入力してからCtrl + Shift + Enterを押します。最初にctrl + shift + enterを押してから数式を入力しようとしましたが、あまりうまくいきませんでした。:P
ベン

Excelは、行列式に関してはユーザーフレンドリーではありません。それは本当に迷惑です。
Pedro77

配列数式(参照を使用することは必須ではないこの及びこれをまた、それは不便かもしれない。。
sancho.s回復モニカ

3
範囲に数値以外のデータも含まれる場合、エラーが返されます(テキストまたは式のエラーなど)
CBRF23

22

私は配列が好きではないので、次を使用します:

=MAX(-MIN(range), MAX(range))

これが機能するのは、最小値の絶対値が負の数の場合、最大値よりも大きいのは唯一の場合だからです。


この作品のあなたの範囲も非数値データ(例えばテキストや数式エラー)が含まれている場合
CBRF23

ニース、これはExcelの欠落している機能です、なぜmax(abs())はありませんか?
Pedro77

@Julieのあなたの今+5歳の答えにはまだ視聴者がいます。:)あなたは、プラスを考慮することを示す配列関数の使用を避ける代替案を提案します。配列関数はまだ嫌いですか?配列関数が好きではない(または好きではなかった)理由についてコメントしてください。あなたの考慮事項についてもっと知ることは、私と他の読者がどのコンテキストでどのソリューションを使用したいかを評価するのに役立つかもしれません。
ポール・ヴァン・

これはOpenOfficeでも動作します
Wolfgang Fahl


1

このVBAソリューションも機能します。

Public Function absMax(values As Range)
    'returns the largest absolute value in a list of pos and neg numbers

    Dim myArray() As Double, i As Integer, numel As Integer
    numel = values.count
    ReDim myArray(1 To numel)
    For i = 1 To numel
        myArray(i) = Abs(values(i))
    Next i
    absMax = WorksheetFunction.Max(myArray)

End Function
  1. VBAエディターを開きます(Alt+ F11
  2. 右側のペインに新しいモジュールを挿入します
  3. コードをコピーしてモジュールに貼り付けます
  4. Excelに戻って使用する =absMax(A1:A3)

ここに画像の説明を入力してください


0
=IF(ABS(LARGE(A1:A10,1))>ABS(SMALL(A1:A10,1)),LARGE(A1:A10,1),SMALL(A1:A10,1))

これにより、範囲内で絶対値が最大の値が検出されますが、絶対値ではなく元の符号(+/-)で実際の値が返されます。


(1)ご存知のように、これはこの質問に対する答えではありません。別の質問に対する答えです。私たちは、彼らが一緒に行く質問で答えを維持することを好みます。この回答を投稿したい場合は、対応する質問を「質問」してから回答することをお勧めします。(あなたはそれを行うことが許可されていますが、低持っているので、しかし、評判を、あなたがあなた自身の質問に答えることができる前に、いくつかの時間を待つ必要があります。)
G-マンが「回復モニカ言う

(2)OPにはすでに質問に対する有効な回答がありますが、「それは面倒くさいし、これ以上良い方法がないとは信じられない」ため、それを拒否します。すでに持っている?さらに言えば、単に言ってみません=IF(ABS(MAX(A1:A10))>ABS(MIN(A1:A10)),MAX(A1:A10),MIN(A1:A10))か?
G-マンは「元に戻すモニカ言う

@ G-Manこれは、これまでに投稿された唯一の数式ソリューションであり、元のサインをそのまま保持します。私はあなたの両方の評価に敬意を表して同意しません。
ポートランドランナー

0

= MAX(MAX(X1:X5)、ABS(MIN(X1:X5))))


それでジュリーの答えとどう違うの?
phuclv

これは質問への答えです(はい、はい)。ジュリーと同様に、はい、おそらくわずかに効率が悪いかもしれませんが、スプレッドシートを継承する人にとっては私見はもう少し明白です。
ゼノイド

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.