• ベストアンサー

エクセルで検索、抽出を教えてください。

いろいろ考えたのですが、わかりません。ご指導よろしくお願いします。 下記の表があります。A1:C1でタイトル、A2:C7でデータが入っています。Dの列にLOOKUPやMATCHなどを用いてそれぞれの氏名の人のQ3の回答を出したいのです。(D2,D3,D4にはうううを入れたい。D5,D6,D7にはかかかを計算で入れたいのです。)よろしくお願いします。   A, B, C, D 1 氏名,Q,こたえ 2 佐藤,Q1,あああ 3 佐藤,Q2,いいい 4 佐藤,Q3,ううう 5 鈴木,Q1,えええ 6 鈴木,Q2,おおお 7 鈴木,Q3,かかか

質問者が選んだベストアンサー

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.3

作業列案の方で試してみてください。  A B, C D 1  氏名,Q,こたえ 2  佐藤,Q1,あああ 3  佐藤,Q2,いいい 4  佐藤,Q3,ううう A列に=B2&C2 で作業列作って 別シートにでも  A  B  C  D 氏名 Q1  Q2  Q3 佐藤 鈴木 ・・・ =Vlookup($A2&B$2,データシート!A:D,4,FALSE)  で右コピィ、下へコピィ

chibaole
質問者

お礼

ありがとうございます。いいヒントをいただきました。 A列を作り=B2&C2、=B3&C3・・・作業列をつくり、別シートを作らずにDの列に=VLOOKUP($B2&"Q3",A:E,4,FALSE)を入れる。下にコピーする。 これで希望のものができました。これだと列の1列作るだけの作業なので大きな負担になりません。行が何万もあり、質問数がバラバラ、参照元データが複数行だったので手こずっていましたが大変助かりました。ありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (4)

noname#204879
noname#204879
回答No.5

[回答番号:No.1この回答へのお礼]に対するコメント、 》 質問の数がそれぞれ違うのです・・・。 そういうことは、出し惜しみせずに最初に仰るべきです。 「それぞれの氏名の人のQ3の回答」はどのように判断すべきですか? 「それぞれの」3番目ではないのですか?

chibaole
質問者

お礼

回答ありがとうございます。 「それぞれの」3番目ではないのですか? →何番目になるか人によって変わります。 ただ今回の質問に対し、他の方の回答をヒントに解決することができました。

すると、全ての回答が全文表示されます。
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.4

Q3は必ず回答があるものと仮定して D2に =IF(B4="Q3",C4,E5) 下方向コピーでは? ふと疑問に思ったのですが、D2、D3に”ううう”を入れることに何か意味があるのでしょうか? それともQ3の回答だけをどこかの違う範囲に取り出したいのでしょうか? だとすると私の回答は無意味ですが。

chibaole
質問者

お礼

回答ありがとうございます。 データが複数にあるのとB4,B7などとQ3がどこの行にあるかわからないので指定できないのです。 しかし他の方の回答をヒントに解決できました。ありがとうございました。

すると、全ての回答が全文表示されます。
  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.2

名前の重複は無く、必ず1人でQ1~Q3まで回答しているのでしょうか? Q1とQ3のみ回答している人や、Q3のみとか、Q1とQ2しか回答していない たとえば   A, B, C, D 1 氏名,Q,こたえ 2 佐藤,Q1,あああ 3 佐藤,Q3,ううう 4 鈴木,Q1,えええ 5 鈴木,Q2,おおお 6 鈴木,Q3,かかか 7 曾我,Q2,ききき 8 田中,Q3,くくく など有り得るのでしょうか? 無い場合であれば D2に=C4 D3に=D2 D4に=C4 と入力し下方向にフィルすれば関数使う必要の無いですが。

chibaole
質問者

お礼

回答ありがとうございます。 情報が少なく申し訳ありません。 質問数はそれぞれの方がすべて一緒でないのです。 また、膨大な行数になっています。 お手数ですが、関数かVBAでのご教授をお願いします。

すると、全ての回答が全文表示されます。
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

質問の数が全員同じであれば =INDEX(C:C,ROW(A1)*3+1,1) C列で3つ飛びですが。 別途に氏名の一覧表があれば  A B, C D 1  氏名,Q,こたえ 2  佐藤,Q1,あああ 3  佐藤,Q2,いいい 4  佐藤,Q3,ううう A列に=B2&C2 で作業列作って =Vlookup("佐藤"&"Q3",A:D,4,FALSE) とかの関数になると思います。

chibaole
質問者

お礼

回答ありがとうございます。 情報が少なく申し訳ありません。 質問の数がそれぞれ違うのです・・・。 また行数が膨大にあります。 よろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A