• ベストアンサー

ある数値に一番近い上の値及び下の値をを抽出する

お世話になります。 表題にあるようなエクセル数式をご教授いただきたいと思います。 (例) 基準となる数値をa2に置きそれに近い上の数値と下の数値をを抽出する。     a         b         c       d     e      f     g  2  400      280         300     380    480     420    500      答え:上の数値420、下の数値380  以上よろしくお願い申し上げます。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.5

小さい方から(閾値より)小さい個数番目の数,大きい方から大きい個数番目の数をそれぞれ取ってくるので良さそうです。 =IF(A2="","",SMALL(B2:F2,COUNTIF(B2:F2,"<="&A2))) =IF(A2="","",LARGE(B2:F2,COUNTIF(B2:F2,">="&A2))) ところでジャスト400がリストの中に含まれているときは,上も下も400が該当になってしまいますが,それで良いんですかね。

okrk21
質問者

お礼

問題が解決しました。 ありがとうございました。

その他の回答 (4)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

回答No2です。400の数値が何個もB1セルからG1セルにあるようケースでは先の式では誤りとなります。 下の数値は次の式になります。 =IF($A2="","",SMALL($A2:$G2,RANK($A2,$A2:$G2,1)-1)) 上の値は次の式になります。 =IF($A2="","",LARGE($A2:$G2,RANK($A2,$A2:$G2)-1))

okrk21
質問者

お礼

早速ご回答ありがとうございました。

noname#204879
noname#204879
回答No.3

添付図参照 A2: =INDEX(B1:G1,MATCH(A1,B1:G1)) A3: =INDEX(B1:G1,MATCH(A1,B1:G1)+1)

okrk21
質問者

お礼

さっそくのご回答ありがとうございました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

例えばお示しのデータがA1セルからG1セルに入力されておるとして、J1セルに下の値、K1セルに上の値を表示させるとしたらJ1セルには次の式を入力します。 =IF($A1="","",SMALL($A1:$G1,RANK($A1,$A1:$G1)-1)) K1セルには次の式を入力します。 =IF($A1="","",SMALL($A1:$G1,RANK($A1,$A1:$G1)+1))

okrk21
質問者

お礼

さっそくのご回答ありがとうございました。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

配列数式でもよろしければ {=MIN(IF(B2:G2-A2>=0,B2:G2,1E+307))} {=MAX(IF(B2:G2-A2<0,B2:G2,-1)))} でいけると思います。 { }は分かり易いようにつけてあるだけで、実際にはCtrl+Shift+Enterで確定すれば勝手につきます。 念のために参考URLをつけておきます。

参考URL:
http://office.microsoft.com/ja-jp/excel-help/HA010228458.aspx
okrk21
質問者

お礼

さっそくのご回答ありがとうございました。

関連するQ&A