- ベストアンサー
複数シートで条件にあうものだけを抽出したい。
365シートには、それぞれ全て同じセルに表が作成されています。 その表は2列のもので、P列とH列に入力があります。 今回抽出したいのはP22~P56の内「A」と入力されているH列の項目です。 これを366シートに表示させることは可能でしょうか。 因みにシート名は「4月1日」からの1年間です。 わかりにくい説明で申し訳ないのですが、ご存じの方教えていただきたいです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
各日付シートのP列に「A」と入力されているH列のデータ(該当データが1つしかない場合)を各シート別に表示したいなら、以下のような関数で表示できます。 まずシート名の日付一覧(例示のように全角数字の場合)を取得するために、たとえばA2セルに以下の関数を入力し下方向にオートフィルします。 =JIS(TEXT(DATE(2014,4,ROW(A1)),"m月d日")) B2セルに以下の数式を入力し下方向にオートフィルすれば、各シートのご希望のH列の該当データを表示できます。 =INDEX(INDIRECT(A2&"!H22:H56"),MATCH("A",INDIRECT(A2&"!P22:P56"),0)) 該当データがない場合があるのなら、IFERROR関数などで適宜エラー処理してください。
その他の回答 (1)
- mar00
- ベストアンサー率36% (158/430)
シートの数が366の年もあると思うので一番最後のシートに書き出すようにしています。 Sub Macro1() Worksheets(Worksheets.Count).Select Cells.ClearContents Counetr = 0 For i = 1 To Worksheets.Count-1 For j = 22 To 56 If Worksheets(i).Range("P" & j) = "A" Then Counter = Counter + 1 Range("A" & Counter) = Worksheets(i).Name ★ Range("B" & Counter) = Worksheets(i).Range("H" & j) ★ End If Next j Next i End Sub A列にシート名、B列に各シートのH列の項目が書き出されます。 必要に応じて適宜修正して下さい。(★の部分です。)