Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Excel 2016)
特定の文字を入れると該当するデータ全てを抜き出す
投稿日時: 20/03/24 15:36:53
投稿者: ボーイング

シートAとシートBがあります。
シートAのA1に特定の文字が入ると、シートBから該当するデータ全てを抜き出す場合の計算式を教えていただけますでしょうか?例えば、以下のような感じです。
例:シートAのA1に「グループA」と入力すると、シートBから、該当するメンバーの情報がシートAの3行目以降に書き出される
【シートA】
  A列    B列
1 グループA
2 氏名   年齢 
3 吉田   25
4 田中 33
5 木下 43
 
【シートB】
  A列    B列  C列
1 グループ名 氏名 年齢
2 グループA 吉田  25
3 グループA 田中 33
4 グループB 中村 41
5 グループA 木下 43
 
この場合のシートAのA3〜B5に入る計算式を教えて頂きたいです。
よろしくお願いいたします。

回答
投稿日時: 20/03/24 16:23:31
投稿者: WinArrow
投稿者のウェブサイトに移動

数式でも可能ですが
シートAに入力するセルの個数は、常に一定ではないですよね?
あらかじめ入力しておくとしても、不足することもあります。
 
 
オートフィルタ、または、フィルタオプションで
対応したほうが確実と思います。

投稿日時: 20/03/24 16:41:40
投稿者: ボーイング

WinArrowさん
ご回答ありがとうございます。
 
シートAのA1には必ずひとつのグループが入り、グループによって抽出するデータ数が違います。
できれば、計算式を教えて頂けないでしょうか?

回答
投稿日時: 20/03/24 16:43:39
投稿者: んなっと

シートBのシート名が"B"だと仮定して...
 
●B
 
      A   B   C
1 グループ名 氏名 年齢
2  グループA 吉田  25
3  グループA 田中  33
4  グループB 中村  41
5  グループA 木下  43
 
●A
 
      A   B
1 グループA   
2    氏名 年齢
3    吉田  25
4    田中  33
5    木下  43
 
A3
=IFERROR(INDEX(B!B:B,AGGREGATE(15,6,ROW($2:$500)/(B!$A$2:$A$500=$A$1),ROW(A1))),"")
右方向・→下方向・↓
 
シートBのシート名が"シートB"であれば
=IFERROR(INDEX(シートB!B:B,AGGREGATE(15,6,ROW($2:$500)/(シートB!$A$2:$A$500=$A$1),ROW(A1))),"")

回答
投稿日時: 20/03/24 17:13:34
投稿者: んなっと

ちなみに、最新のExcelなら
=FILTER(B!B2:C500,B!A2:A500=A1,"")
 
将来はこの式が主流になりそうです。

投稿日時: 20/03/24 17:19:28
投稿者: ボーイング

んなっと さん
計算式で解決しました!
ありがとうございました!