- ベストアンサー
エクセル2002でVLOOKUP関数と範囲の拡張
- みんなの回答 (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
その他の回答 (2)
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答No1ですがお示しのようなケースではVLOOKUP関数を使うことは適当ではありません。 VLOOKUP関数では東京を検索する場合には検索する表の範囲内で東京のデータが最も左側の列にあることが必要です。例えば東京のデータがA列に有るような場合でしたらよいでしょう。今回の場合にはM列にあるのですからM列からO列までのデータだけを表示させるのでしたら出来ないことはありませんが今回のケースでは無理なことになります。
- KURUMITO
- ベストアンサー率42% (1835/4283)
作業列を作って対応するのが分かり易くデータが多くなっても計算に負担のかからない方法です。 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 のエラーが帰ってきます。
お礼
回答ありがとうございます。 やってみました。 見事希望通りの表示が出来て、助かりました。 ありがとうございいます!