- 締切済み
エクセルのオートフィルタについて マクロ
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- KURUMITO
- ベストアンサー率42% (1835/4283)
マクロを組まれるほどのこともないでしょう。関数を使って別のシートにお望みの表を作るようにしてはどうでしょう。 例えばシート1にお示しの表があるとします。そこでシート1のAW列は作業列としてAW5セルに次の式を入力して下方にオートフィルドラッグします。 =IF(OR(I5="成約済",I5="ボツ",COUNTBLANK(B5:H5)+COUNTBLANK(J5:AV5)=46),"",MAX(AW$4:AW4)+1) AW列には番号が表示されますが目障りでしたらAW列を選択して右るりっくし「非表示」を選択すればよいでしょう。 シート2にお望みの表を作るとします。 シート1の3行目まではコピーしてシート2に貼り付けます。またシート1のA列も選択してコピーしシート2のA列に貼り付けます。 その後にシート2のB5セルには次の式を入力して右横方向にオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(OR(COLUMN(A1)>47,ROW(A1)>MAX(Sheet1!$AW:$AW)),"",INDEX(Sheet1!$B:$AV,MATCH(ROW(A1),Sheet1!$AW:$AW,0),COLUMN(A1))) これでお望みの表がシート2に表示されます。上記の式では空白のセルは0で表示されますがその表示をさせないためにはB5セルへの入力の式を次のようにしてもよいでしょう。 =IF(OR(COLUMN(A1)>47,ROW(A1)>MAX(Sheet1!$AW:$AW)),"",IF(INDEX(Sheet1!$B:$AV,MATCH(ROW(A1),Sheet1!$AW:$AW,0),COLUMN(A1))=0,"",INDEX(Sheet1!$B:$AV,MATCH(ROW(A1),Sheet1!$AW:$AW,0),COLUMN(A1))))
お礼
ありがとうございました。なるほど、こういう方法もあるのですね。 実は自分で色々やっていたところマクロのほうでも実現する事ができましたが 参考になりました。ありがとうございました。