• ベストアンサー

EXCELLで3つの値から跳び抜けた値1つを除外して平均するには。

A1,A2,A4 とセルがあったとして、これらの数値の中で近い値2つの平均を求めるにはどうすればよいのでしょうか? 例えば、58,60,26だった場合、58と60の平均を求めたいわけです。 TRIMMEAN関数でできるかとも思いましたが、この関数は隅っこの偶数個の数値を除外する仕様のようで、跳び抜けた値「1つだけ」を除外することはできませんでした。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

>その辺はどうなってもいいと思っています。 のであれば、以下ようでイイと思う 使い方:=trimAve(A1,A2,A4) Public Function trimAve(a As Double, b As Double, c As Double) As Double Dim data(3) As Double Dim ave As Double, hensa As Double Dim i As Integer, maxV As Double, maxI As Integer data(0) = 0 data(1) = a data(2) = b data(3) = c ave = Application.WorksheetFunction.Average(a, b, c) maxV = 0 maxI = 0 For i = 1 To 3 hensa = Abs(data(i) - ave) If hensa > maxV Then maxV = hensa maxI = i End If Next trimAve = (a + b + c - data(maxI)) / IIf(maxI = 0, 3, 2) End Function

H_elegans
質問者

お礼

ありがとうございます。 VBAだと応用が利きそうなのでありがたいです。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

A1:A3が、数値だけで 12 34 56 とします たとえばA5に式 =SUM(IF(A1:A3=MIN(A1:A3),0,A1:A3))/(COUNT(A1:A3)-1) と入れて、SHIFT+CTRL+ENTERを同時に押します。 式が{と}で囲まれ、結果は 45 となりました。配列数式の応用です。 間に空白セルがあった場合など、朝時間がなくて、テストできてないのですが、すみません。

H_elegans
質問者

お礼

シンプルで助かります。 お忙しいところをありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • onntao
  • ベストアンサー率32% (108/332)
回答No.2

も一つ 58,59,60という例もあるのでしょうか そのときはどのように?

H_elegans
質問者

補足

そうですね(^^; こういう場合には、エラーになるか、三つの平均=59が返ってくるといいのですが、その辺はどうなってもいいと思っています。 例えば、58と59の平均で58.5になってしまってもいいと考えています。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

先ずは、跳びぬけた値の定義を明確にする必要があるのではないんでしょうか? 複数の値の中で どの程度、跳びぬけていた場合について、それを跳びぬけた値と判断するのか、そこの定義が必要に思います。 それとも 値の数は、常に3つと固定されていて、とにかく、跳び抜け方が少ない場合でも、跳びぬけさせるということでしょうか?例えば 58、60、55であったも55を除外するという判断をさせたいのでしょうか?

H_elegans
質問者

補足

説明が不十分でした。 deepimpact7110さんのご説明の後者のケースに当たります。 どの程度伸びぬけているかは考慮せず、値は3つ固定です。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • プラスの値の平均値の求め方を教えてください

    エクセルで列の中のプラスの数値だけの平均値を求める方法を 教えてください。 例)A1セルからA3セルにそれぞれ1、-3、2と入力されている時、 1と2の平均値(1+2/2=1.5)を求めたいので、 =average(if(A1:A3>1,A1:A3)) という式を作ったのですが、エラー(#value!)になってしまいます。 どのようにすれば正しい答えが求められるのでしょうか? よろしくお願いします。

  • エクセルで3列おきの平均値を

    こんにちは! エクセルで、3列おきのセルの値の平均値を出したいのですが、値がエラー(#N/Aと表示されている)場合は、平均を求める計算の中に含めないようにしたい・・・というのはどうやって設定したらよいのか、お教えください! 関数等、色々試して見たのですが、よくわかりませんでした・・・。どうぞどうぞ宜しくおねがいたします!

  • EXCELで上位10個のデータを平均したい

    EXCELでA1セルからA100セルまで、任意の数字が入っています。 A1セルからA100セルまでの数字のうち、上位10個の数値を平均した値をB1セルに表示させたいです。 このような関数はありませんでしょうか?

  • ある数値以上の値があるセルを取得したい

    エクセルの関数で、ある数値以上の値があるセルの位置を取得したいのです。 範囲B2:B11に任意の数値が入っているものとします。 その中で、仮に3以上の値が出現するセルの位置を取得する場合、どのような関数を用いればよろしいでしょうか? 数値をぴったり3に限定なら、=MATCH(3,B2:B11,0) で、範囲内で何番目にあるかわかりますが、3以上となると 補助列を用意し、=B2>3のような式を各セルに入れて、TRUEの位置を=MATCH(TRUE,A2:A11,0) で取得するくらいしか思いつきません。 ご教示ください。

  • エクセル、日曜日だけ除いた平均値の求め方。

    よろしくお願いします。 Aには日付、BにはTEXT(曜日)Cには数字 8/1 日 1 8/2 月 10 8/3 火 3    :    : そこで、日曜日だけを除いた、平均値と 月曜日だけの平均値を出したいと思っています。 TRIMMEAN関数を使いなんとかやろうとしてるのですが・・なかなかできません。 よろしくお願いします。

  • 空白のセルを除いた平均は出ますか??

    お忙しい中お願いいたします。 エクセル関数で空白のセルは除いた指定範囲の平均(合計)を 算出することはできますか? 例えば、AVERAGE(A1:A20)という関数の中でA10とA13のセルは空白 にした時その他のセルの平均を出すことは可能ですか? お願いいたします。

  • エクセル合計からの除外

    ご覧いただきありがとうございます 現在エクセルでデータベースを作っているのですが Aに日付 Bに数値1 Cに数値2が入っています。 Bはそのまま合計すればよいのでSUMでよいのですが、 Cの合計を日付の入っていないところだけ除外して合計したいです。 日付とは限らずに、Aに何かが入っている場合合計から除外するための 関数をお教えいただければと思います。 アドバイスお願い致します。

  • 関数が入っている列で値のある最後のセルの値を返す

    お尋ねします。 関数が入っている列で式の値が入っている一番下のセルの値を調べるにはどうしたら良いでしょうか? 例      A列   1   5   2   10   3   13   4   (式の値が無いのでゼロ) B1セルにA3セルの13と言う値を返したいのですが、列に式(SUMPRODUCT関数)が入っていて、実際はA4セルのゼロが返ってきます。 またシート1~シート5 まで上記と同じ式が入っていて、シート1のA列の最後の値「13」をシート6のB1セルに値を返す場合、INDIRECT関数を使った場合、どういう式になるでしょうか? ご回答よろしくお願いします。

  • ある数値を始めて越えた時の値が知りたいです。

    A列に以下のような数値があります。B1セルに、初めて2.00を越えた時の値を表示させたいのですが、 どのような方法があるでしょうか?(下では2.10が欲しい数値です) 2を越える一つ前なら以下の関数で出来ました。 =VLOOKUP(2,A:A,1,TRUE) 1.36 1.48 1.61 1.86 1.97 2.10 2.22 2.35 あと、下の数列のように、上の行に2より大きな数字があると、VLOOKUP関数だけだと一つ前すらも求めることが出来ません。 表示させたいのは、『一つ上のセルが2より小さく、初めて2.00を越えた時の値です。』 4.19 3.39 2.68 2.08 1.65 1.36 1.48 1.61 1.86 1.97 2.10 2.22 2.35 関数だけで駄目であればマクロでも構いません。良い方法が無いでしょうか?

  • エクセルで平均値&標準偏差

    エクセルで、奇数の行、偶数の行を分けて、それぞれの平均値と標準偏差を出そうとしています。 関数でaverageを選んで、ctrlを押しながらセルを選んでエンター!! とすると、なぜか「DIV/0!」になります。 なぜでしょうか?? また、標準偏差も同じく、1行おきの値の偏差を取りたいのですが、同じように「DIV/0!」もしくは「VALUE」になります。 表が何かおかしいのでしょうか??

専門家に質問してみよう