ここから本文です

エクセルのVLOOKUP関数について教えてください。 データ内容と実施したい作業は...

アバター

ID非公開さん

2017/6/1419:57:45

エクセルのVLOOKUP関数について教えてください。

データ内容と実施したい作業は以下のとおりです。
ただし、A-D列それぞれのデータ数が400を越えるため、
簡易化しています。

ーーー
| A列 | B列 | C列 | D列 | E列 |F列 |G列
1 | 10.1510 | 24 | 9.8901 | 31 | 16.7945
2 | 11.2021 | 12 | 10.1215 | 41 | 21.1250
3 | 15.1355 | 90 | 12.3321 | 35 | 35.3101
4 | 16.7900 | 121 | 13.0980 | 156
5 | 16.7955 | 131 | 16.2313 | 353
6 | 21.1246 | 89 | 16.7819 | 91
7 | 24.3321 | 100 | 21.1300 | 25
8 | 30.2314 | 89 | 40.3213 | 213

・点A,B列 C,D列: それぞれ(x, y)の座標の対で2データあります。
・検査値: E列
・F列、G列にそれぞれ、A, C列から検査値に最も近い値を抽出

ーーー

F1: VLOOKUP(E1,A1:A8,1,1))
F2: VLOOKUP(E2,A1:A8,1,1))
F3: VLOOKUP(E3,A1:A8,1,1))

G1: VLOOKUP(E1,C1:C8,1,1))
G2: VLOOKUP(E2,C1:C8,1,1))
G3: VLOOKUP(E3,C1:C8,1,1))

と入力すれば、正しい値が抽出されると思うのですが、抽出値が最近似値からずれてしまいます。

抽出値は
| F列 |G列
1 | 16.7900 | 16.7819
2 | 21.1246 | 16.7819
3 | 30.2314 | 21.13

正しくは
|F列 |G列
1 | 16.7955 | 16.7819
2 | 21.1246 | 21.13
3 | 30.2314 | 40.3213

となって欲しいのですが...
何か見落としているエラーはありますでしょうか。
VLOOKUP関数を使用する場合、検査値や関数入力のセルは同列に並べてはいけないなど、条件がありますでしょうか。
大変お手数ですが、アドバイスをいただけませんでしょうか。

閲覧数:
92
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

kjh********さん

2017/6/1423:06:44

VLOOKUP関数は検査値を超えない値の近似値を与えるようです。
F1に

=IF(MIN(ABS(A:A-(E1+MIN(ABS(A:A-E1)))))=0,E1+MIN(ABS(A:A-E1)),E1-MIN(ABS(A:A-E1)))

をいれて
CTRL+SHIFT+Enterキーを押せばいいと思います。(※配列数式)

ドラッグしてG列やF2行以降にも使えると思います。

こちらもご参照ください。
http://office-qa.com/Excel/ex217.htm
https://oshiete.goo.ne.jp/qa/8625875.html
http://www.office-qa.com/Excel/ex69.htm

アバター

質問した人からのコメント

2017/6/21 10:26:49

解説ありがとうございます!無事作業ができました。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる