• 締切済み

excelで検索値の近似値(大小)を抽出する方法

excelで検索値の近似値を抽出する方法が無いか探しています。抽出したい近似値は検索値より小さい数値と大きい数値の2つです。 A|B 0|値 0.4|値 0.5|値 0.9|値 1.2|値 検索値:0.35の場合、A列の「0」と「0.4」の値それぞれを抽出したいです。 A列の数値は昇順で増え方は不規則なものです。 文章が拙いですが、やり方があればご教授お願いします。

みんなの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 書き忘れておりましたが、回答No.4の方法はA列の数値が昇順に並んでいない場合においても有効です。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 今仮に検索値:0.35をE1セルに入力するものとしますと、小さい方の近似値である0は次の様な関数で求める事が出来ます。 =IF(AND(COUNT($A:$A),ISNUMBER($E$1)),IF(COUNTIF($A:$A,"<="&$E$1),SMALL($A:$A,COUNTIF($A:$A,"<="&$E$1)),"該当無し"),"")  同様に、大きい方の近似値である0.4は次の様な関数で求める事が出来ます。 =IF(AND(COUNT($A:$A),ISNUMBER($E$1)),IF(COUNTIF($A:$A,">="&$E$1),LARGE($A:$A,COUNTIF($A:$A,">="&$E$1)),"該当無し"),"")  又、小さい方の近似値である0が入力されているセルと同じ行にあるB列の値を求める関数は次の様なものとなります。 =IF(AND(COUNT($A:$A),ISNUMBER($E$1)),IF(COUNTIF($A:$A,"<="&$E$1),VLOOKUP(SMALL($A:$A,COUNTIF($A:$A,"<="&$E$1)),$A:B,COLUMNS($A:B),FALSE),"該当無し"),"")  同様に、大きい方の近似値である0.4が入力されているセルと同じ行にあるB列の値を求める関数は次の様なものとなります。 =IF(AND(COUNT($A:$A),ISNUMBER($E$1)),IF(COUNTIF($A:$A,">="&$E$1),VLOOKUP(LARGE($A:$A,COUNTIF($A:$A,">="&$E$1)),$A:B,COLUMNS($A:B),FALSE),"該当無し"),"")

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

>検索値:0.35の場合、A列の「0」と「0.4」の値それぞれを抽出したいです。 検索値の0.35は何処のセルに入力されていますか? また、B列の値とは具体的にどのような値で抽出するA列の0と0.4に関わりがあるのですか? >やり方があればご教授お願いします。 Aの近似値を抽出するとき =INDEX(A:A,MATCH(0.35,A:A)) → 0 =INDEX(A:A,MATCH(0.35,A:A)+1) → 0.4 Aの近似値に対応するB列の値を抽出するとき =INDEX(B:B,MATCH(0.35,A:A)) → 値 =INDEX(B:B,MATCH(0.35,A:A)+1) → 値

  • msMike
  • ベストアンサー率20% (368/1813)
回答No.2

》 検索値:0.35の場合、A列の「0」と「0.4」の値それぞれを抽出したい それでは、検索値が0.4の場合は何々を抽出したい?

回答No.1

「検索値と等しい」か「検索値未満で最大」の行の「B列の値」を返す =VLOOKUP(検索値,A1:B5,2,TRUE) 「検索値と等しい」か「検索値を超える最小」の行の「B列の値」を返す =INDEX(A1:B5,COUNTIF(A1:A5,"<" & 検索値)+1,2) 「検索値と等しい」を除外したい場合は、上記の応用で可能。