エクセルで、最も近い値に対応する番号を返す関数を教えてください。 下記のような, A列, B列のデータが与えられているとします。 A列及びB列は昇順に並んでいます。
エクセルで、最も近い値に対応する番号を返す関数を教えてください。 下記のような, A列, B列のデータが与えられているとします。 A列及びB列は昇順に並んでいます。 ここで, D列の値に最も近い(=絶対値の差が最も小さい)値のA列の行に対応するB列の値を、E列に表示させるような関数を組みたいと考えています。 例えば, D1=2.1 に最も近いA列の値は、2.0(A3)ですので、3(B3)を、 D2=2.4 に最も近いA列の値は、2.5(A4)ですので、4(B4)を、 それぞれE列に返すようにしたいと考えています。 VLOOKUPでは、検索値を「越えない」という制限が課されるので、 A B 1.1 1 1.4 2 2.0 3 2.5 4 D1=2.1 E1= D2=2.4 E2=
Excel | Office系ソフトウェア・53閲覧
ベストアンサー
abs(A列範囲-基準値) という配列を考え、その中で最小値がどこにあるかを求めればいいですね。自分で関数を作らなくても、既存の関数を使った数式でできますよ。 =index(B列範囲, match(min(abs(A列範囲-基準値)), abs(A列範囲-基準値),0)) =filter(B列範囲, abs(A列範囲-基準値)=min(abs(A列範囲-基準値))) 後者は該当する値が複数あるときに全部返ってきますので、結合するなり列記するなりうまくやりましょう。
質問者からのお礼コメント
ありがとうございます。 =index(B1, match(min(abs($A$1:$A$4-B1)), abs($A$1:$A$4-B1),0)) 以下オートフィルでできました。
お礼日時:5/16 21:28