人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Excel 2003について教えてください。

A.xlsのSheet1に1万行×3列のデータがあります。
ID,NAME,STOCK
001,CANDY,10
002,ICE,20
003,MELON,2
...

Sheet2にIDのみのデータがA列に1000行書かれています。
001
005
010
...

Sheet2のA列に書かれているIDとSheet1のA列に書かれているIDを比較して、Sheet2のIDに含まれているIDのみをSheet1から抜き出したいという作業を行いたいです。VBAなどを使わずに関数だけでできないでしょうか?つまり、上の例でいうと、

001,CANDY,10
のみ抜き出すといった感じになります。

●質問者: akaired
●カテゴリ:コンピュータ
✍キーワード:Candy Excel ICE MELON name
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● beatgoeson
●27ポイント

Sheet2のA列の1行目からIDが羅列されてるとすると、

Sheet2のB1に「=VLOOKUP(A1,Sheet1!A:C,2,FALSE)」

Sheet2のC1に「=VLOOKUP(A1,Sheet1!A:C,3,FALSE)」

を入力して、2列目以降はコピーしてください。

Sheet2のA列のIDの該当するB列、C列の値が表示されます。


2 ● SALINGER
●26ポイント

単純に考えてVLookupですが、質問文の意味だとSheet2のIDがSheet1のIDにあるとは

限らないということですから、その場合のエラーを入れて次の数式です。


Sheet2の2列目

=IF(ISNA(VLOOKUP(A1,Sheet1!A:C,2,FALSE)),"",VLOOKUP(A1,Sheet1!A:C,2,FALSE))

Sheet2の3列目

=IF(ISNA(VLOOKUP(A1,Sheet1!A:C,2,FALSE)),"",VLOOKUP(A1,Sheet1!A:C,2,FALSE))

ただし、関数ということなので1万行になると多少のラグがあるかもしれませんが。

それが気になるならVBAということになります。


3 ● shadow-dragon
●27ポイント

こんにちわ。

既に他の方が回答されていると思いますがVlookupという関数で可能です。

sheet2のB列に以下の関数を入れてください。


=VLOOKUP(A1,Sheet1!$A:$C,2,0)

これで、sheet2のA1に入力されているIDにひも付いたNAMEの値が表示されるはずです。


そして、sheet2のC列に、以下の関数を入れてください。

=VLOOKUP(A1,Sheet1!$A:$C,3,0)

これで、STOCKの値が引っ張れるはずです。


あとは上の2つの関数をsheet2の1000行分コピーすればOKです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ