アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2002を使っています。

VLOOKUPでデータを取り出すときに違うデータが取り出されてしまいます。


画像の様に、T1セルに 東京 と入力した場合 M列から東京を探し T2列から下に表示させたいと思います。

画像ではデータは3つになっていますが、9000行ほど有り、今後も増えていきます。

ご存知の方、よろしくお願いいたします。

「エクセル2002でVLOOKUP関数と範」の質問画像

A 回答 (3件)

こんばんは!


No.1・2さんと一緒のやり方になりますが・・・

画像ではP列を使っていないようなので、P列を作業列とします。
P2セルに
=IF(OR(T$1="",M2<>T$1),"",ROW())
という数式を入れオートフィルでずぃ~~~!っと下へコピーしておきます。

そしてT2セルに
=IF(COUNT($P:$P)<ROW(A1),"",INDEX(A:A,SMALL($P:$P,ROW(A1))))
という数式を入れ行・列方向にオートフィルでコピーしてみてください。

おそらくご希望通りの表示になると思います。m(_ _)m
    • good
    • 0
この回答へのお礼

回答ありがとうございます。


やってみました。

見事希望通りの表示が出来て、助かりました。

ありがとうございいます!

お礼日時:2013/03/26 08:44

回答No1ですがお示しのようなケースではVLOOKUP関数を使うことは適当ではありません。


VLOOKUP関数では東京を検索する場合には検索する表の範囲内で東京のデータが最も左側の列にあることが必要です。例えば東京のデータがA列に有るような場合でしたらよいでしょう。今回の場合にはM列にあるのですからM列からO列までのデータだけを表示させるのでしたら出来ないことはありませんが今回のケースでは無理なことになります。
    • good
    • 0

作業列を作って対応するのが分かり易くデータが多くなっても計算に負担のかからない方法です。


Q2セルに次の式を入力して下方にドラッグコピーします。

=IF(M2="","",M2&COUNTIF(M$2:M2,M2))

そこでT1セルに東京のように検索する名前を入力します。
T2セルには次の式を入力してAH2セルまでドラッグコピーしたのちに下方にもドラッグコピーします。

=IF(ROW(A1)>COUNTIF($M:$M,$T$1),"",IF(INDEX($A:$O,MATCH($H$1&ROW(A1),$Q:$Q,0),COLUMN(A1))="","",INDEX($A:$O,MATCH($H$1&ROW(A1),$Q:$Q,0),COLUMN(A1))))

データが新たに追加されても自動的に表が変わります。

この回答への補足

回答ありがとうございます。


Q列を作業列にして、T1セルに手入力したまでは良かったのですが、T2セルに

=IF(ROW(A1)>COUNTIF($M:$M,$T$1),"",IF(INDEX($A:$O,MATCH($H$1&ROW(A1),$Q:$Q,0),COLUMN(A1))="","",INDEX($A:$O,MATCH($H$1&ROW(A1),$Q:$Q,0),COLUMN(A1))))

を入力すると #N/A のエラーが帰ってきます。

補足日時:2013/03/25 16:09
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!