対となるkeyとvalueのリストに対して、keyで探索してvalueを拾いたいと思っています。以下の例で言うと、AとBが探索対象のkeyとvalueで、CのそれぞれのkeyでAを探索し、マッチしたBのvalueをDに挿入する、という処理をしたいです。具体的には、処理を経ると、D1にはハ、D2にはニ、D3にはイ、が入って欲しいです。
A B C D
1 a イ c
2 b ロ d
3 c ハ a
4 d ニ
5 e ホ
lookupなど使うと聞いたのですが、excelは全く分かりません。
実際には、A/Bは数万行、Cは1万弱行あります。
教えていただければ幸いです。
VLOOKUP関数になります。
http://www.excel.studio-kazu.jp/lib/e1tw/e1tw.html
A1からB5を選択して名前ボックスに名前をhaniとかつけて
D1の数式を
=VLOOKUP(C1,hani,2,FALSE)
にして下にドラッグします
すいません。最後の3行読んでませんでした。
D列を選択して
数式を
=VLOOKUP(C1,A:B,2,FALSE)
を入れて、Ctrl+Enterを押すとD列すべてのセルに数式が入ります。
セルD1に、
=VLOOKUP(C1,$A$1:$B$60000,2)
を入力します。
次に、セルD1を選択し、D1の周りに出る黒い枠、
右下の角にマウスをあわせて、十字のマークを
左ボタンを押しながらc列の一番下の行まで
下に”ドラッグ”していってオートフィルしてはどうでしょうか。
$は、参照を固定する記号です。
60000の部分はA,Bの行数です。
なるほど、$ですね。解決しました。
ありがとうございました。
直接の回答でなくてすみませんが、
どの行でも 1~5行を対象としたいときには、A$1:B$5のように範囲を変えたくない行や列の頭に $ を付けてから、コピー&ペーストをすることで、同じ範囲を指定できます。
ありがとうございます。
D2にはA2~A6、D3にはA3~A7を探索した結果がはいってしまいます。
SALINGERさんの書かれている式通りならその結果は出ないはずです。
=VLOOKUP(C1,A:B,2,FALSE)
ではなく、
=VLOOKUP(C1,A1:B5,2,FALSE)
とD1に入力していませんか?
ちなみにA1:B5の範囲を固定したい場合は、
SALINGERさんの1の回答のある「名前」が有効ですが、
数式でそのまま指定するなら絶対参照を使用します。
(上の列固定で問題ないはずですが参考まで)
=VLOOKUP(C1,$A$1:$B$5,2,FALSE)
なるほど。いまやりなおしてみたら、うまくいきました。ご指摘ありがとうございます。SALINGERさんすみません。
すみません、その方法だと探索範囲が固定されないため、うまくいきません。D2にはA2~A6、D3にはA3~A7を探索した結果がはいってしまいます。D2もD3にもA1~A5を探索した結果が入ってほしいです。この解決がまさに知りたいところです。