• 締切済み

【Excel】オートフィルタの抽出条件を表の見出しに活用したいです。

Excel初心者です。 オートフィルタである資料の一覧を作成しています。 例えば「2009年6月」という抽出条件でオートフィルタで抽出したときに その表の外につけた表題に、「2009年6月」という抽出条件を使用して表題を作成したいです。例えば、「2009年6月分入会一覧」といった風にです。 そのようなことはできますか? よろしくお願いいたします。

みんなの回答

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

シート1に資料があり、A1セルに日付、B1セルに氏名、C1セルに住所などの項目名があるとして、2行目からデータがあるとします。 オートフィルタで抽出したときの条件を後から自動的に入力するといったことは出来ないことですから次のようにしてはどうでしょう。 作業列を使ってシート2にお望みのデータを一気に表示させる方法です。オートフィルタの操作は必要ありません。 シート1の例えばH2セルに次の式を入力して下方にオートフィルドラッグします。 =IF(OR(Sheet2!$D$1="",YEAR(A2)<>YEAR(Sheet2!$D$1),MONTH(A2)<>MONTH(Sheet2!$D$1)),"",IF(AND(YEAR(A2)=YEAR(Sheet2!$D$1),MONTH(A2)=MONTH(Sheet2!$D$1)),MAX(H$1:H1)+1)) この式によりシート2のD1セルに日付を入力することで、それに該当する年月のデータには上から番号が振られます。 シート2では次のようにします。 D1セルには検索したい月、例えば2009年6月を検索したい場合には2009/6/1のように入力します。印刷などの時にこのセルの値が表示されるのを避けるためにはフォントの色を白に設定すればよいでしょう。 A1セルには例えば次の式を入力します。 =IF(D1="","",YEAR(D1)&"年"&MONTH(D1)&"月分入会一覧") 2行目にはシート1の項目名をコピーして横に並べます。 A3セルには次の式を入力して横方向にオートフィルドラッグしたのちに下方向にもオートフィルドラッグします。 =IF(OR(COUNTIF(Sheet1!$H:$H,ROW(A1))=0,A$2=""),"",INDEX(Sheet1!$A:$J,MATCH(ROW(A1),Sheet1!$H:$H,0),COLUMN(A1))) なお、A列についてはセルの表示形式を日付に設定します。 これでお望みの表が完成です。 別の月、例えば2009年7月のデータを一覧表示したい場合にはD1セルに2009/7/1と入力すればよいでしょう。

  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

私も基本的には#1のmitarashiさんの案に賛成です。 参考として、一応数式を使う場合を紹介しておきます。(以前から時々見かけるQ&Aみたいなので) 例えば2行目が見出しで、A2:A100にオートフィルタをかけていて、B1セルに表示したい場合。 A)作業列を使う方法 仮にX列を作業用の列とします。 X3に =SUBTOTAL(3,A3) X100までコピー。 B1セルに =INDEX(A3:A100,MATCH(1,X3:X100,0)) B)配列数式を使う方法 B1セルに =INDEX(A3:A100,MATCH(1,SUBTOTAL(3,INDIRECT("A3:A"&ROW(A3:A100))),0)) と入力して[Ctrl]キーと[Shift]キーと[Enter]キー同時押し、配列数式として確定させます。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

案1.数行のマクロを作る。 オートフィルタを自動記録して、ちょいちょいといじればできます。見出しセルを抽出条件にしてオートフィルタをかける事もできます。 案2.オートフィルタでなく、フィルタオプションを用いる。 別セルに条件を設定してから抽出するので、見出しセルが条件のセルを参照する様にすれば良いです。 以上、ご参考まで。