• ベストアンサー

Excelにおける数値の抽出(関数)に関して

EXCEL機能を用いた、数値の抽出についての質問です。 例えば、以下のような表があったとします。    A 1 120 2 135 3 152 4  そこで、 (1)この3つの数字(A1~A3)のうち、近い2つ(この場合、135-120=15、152-135=17なので、135と120となります)を抽出し、その2つの平均値を求め、A4のセルに返す。 (2)もし、120、135、150のように、近い2つがない(135-120=15、150-135=15であるため)場合は、中央値である135を抽出し、135をA4のセルに返す。 以上(1)、(2)の条件を含んだ数式をA4のセルに組むことはできますか? VBAを用いると、可能でしたが、EXCELで組むことができませんでした・・。できれば、EXCELで行いたいと考えています。 わかる方、教えてください。よろしくお願いします!!

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

  • ベストアンサー
noname#79209
noname#79209
回答No.2

こんな方法も有ります。 =(MEDIAN(A1:A3)+CHOOSE(SIGN(MEDIAN(A1:A3)-AVERAGE(A1:A3)))+2,MIN(A1:A3),MEDIAN(A1:A3),MAX(A1:A3)))/2 要は、3つの数の中間値と平均を比べ 中間値>平均なら、中間値と最大値の平均 中間値<平均なら、中間値と最小値の平均 中間値=平均なら、中間値と中間値の平均(つまり中間値) めんどくさい方法なのでボツでしょうね。 IFのネストの方が解りやすいです。 極力IFを使わないでやろうとするのが、私の悪いクセなので...、

YKS99
質問者

お礼

早々のご回答ありがとうございます。 早速、試したところうまくいきました。 ありがとうございました!! しかし、おっしゃるように、IF関数でも数式を組むことができそうですね!試してみます。

その他の回答 (1)

  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.1

スマートな式ではありませんが、・・・ =IF(OR(ABS(E1-E2)=ABS(E1-E3),ABS(E1-E2)=ABS(E2-E3),ABS(E1-E3)=(E2-E3)),SMALL(E1:E3,2),MIN((E1+E2)/2,(E1+E3)/2,(E2+E3)/2))

YKS99
質問者

補足

早々のご回答ありがとうございます。 早速、試したところ、 この式では、3つの数字のうち近い2つの平均でなく、平均のMINが返されてしまいました・・ しかし、参考になりました!ありがとうございます!

関連するQ&A