- ベストアンサー
エクセルでのデータ抽出方法について教えてください
- エクセルのシートには、名前、住所、日付のデータが入力されており、指定した条件に基づいてデータを抽出したいです。
- 具体的には、2016年5月が含まれるデータを抽出し、別のシートに表示したいです。
- 抽出する方法としては、オートフィルタや関数を使用することができます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ん? オートフィルタとかご自分で書いてましたけど,やっぱり難しいやり方でガンバりたいのでしたら。 シート2のセル(A列を推奨)に =IF(ROW(A1)>SUM((TEXT(Sheet1!$C$2:$F$500,"yyyymm")="201605")*1),"",INDEX(Sheet1!A:A,SMALL(IF(TEXT(Sheet1!$C$2:$F$500,"yyyy年m月")="2016年5月",ROW($C$2:$F$500)),ROW(A1)))) と記入してコントロールキーとシフトキーを押しながらEnterして入力,右にコピー,下にコピー。 間違えずにちゃんとやれば必ず出来ますので,出来るまでやってください。ときどき「ありがとう/できませんでした」だけ報告だけの返答がかえってきて,いったい実際には何をやったのか(見ればどこを間違えたのか分かります)あるいはスルーだったのか(別に構いませんケド)さっぱりナイショのご相談も多いので。 もちろん,式中の「2016年5月」だのは,あなたの実際のシートのレイアウトで工夫して作成してください。
その他の回答 (2)
- keithin
- ベストアンサー率66% (5278/7941)
ごく簡単なやり口で。 G列に例えば G2: =COUNTIF(C2:F2,">="&DATE(2016,5,1))-COUNTIF(C2:F2,">="&DATE(2016,6,1)) のように数式を入れてリストの下端までコピーし,このG列にオートフィルタを取り付けて抽出すればすぐに結果を得られます。 また,いま前提は >C1は入力日付D1~F1には関数でN年後の日付 という事で,必ず「該当する日付があっても1行の中には1つしかない」という状況ですから, C列でオートフィルタで絞ってコピーして貼り付け D列でオートフィルタで絞り直してコピーして貼り付け E列でオートフィルタで絞り直してコピーして貼り付け F列でオートフィルタで絞り直してコピーして貼り付け と操作しても,必ず結果が得られます。
お礼
ありがとうございました。参考になりました。
- kagakusuki
- ベストアンサー率51% (2610/5101)
今仮に、元データーの表が存在しているシートの名前がSheet1であり、 Sheet2のA1セルに年を、C1セルに月を入力すると、 Sheet3のA列を作業列として使用して、 Sheet2のA列~E列の4行目以下に、抽出結果が表示されるものとします。 まず、Sheet3のA1セルに次の数式を入力して下さい。 =IF(ISNUMBER((Sheet2!$A$1&"年"&Sheet2!$C$1&"月")*1),IF(AND(Sheet2!$A$1>1900,COUNTIF(Sheet1!$C1:$E1,"<"&DATE(Sheet2!$A$1,Sheet2!$C$1+1,1))-COUNTIF(Sheet1!$C1:$E1,"<"&DATE(Sheet2!$A$1,Sheet2!$C$1,1))>0),ROW(Sheet1!$C1),""),"") 次に、Sheet3のA1セルをコピーして、Sheet3のA2以下に貼り付けて下さい。 次に、Sheet2のB1セルに「年」、D1セルに「月」、A3セルに「名前」、B3セルに「住所」と入力して下さい。 次に、Sheet2のA4セルに次の数式を入力して下さい。 =IF(ROWS($4:4)>COUNT(Sheet3!$A:$A),"",INDEX(Sheet1!A:A,SMALL(Sheet3!$A:$A,ROWS($4:4))))) 次に、Sheet2のA4セルをコピーして、Sheet2のB4~E4の範囲に貼り付けて下さい。 次に、Sheet2のC4~E4のセルの書式設定を日付に設定して下さい。 次に、Sheet2のA4~E4の範囲をコピーして、同じ列の5行目以下に貼り付けて下さい。 あとは、Sheet2の A1セルに 2016 C1セルに 5 と入力すると、2016年5月が含まれるA~Fまでの表が抽出されます。
お礼
何とか抽出できました。ありがとうございました。
補足
ありがとうございました。 質問の補足としてD1~F1のN年後の基準はC1のN年後関数です。 私のやり方が悪いのかためしにsheet2A1及びsheet2C1にsheet1D1~F1の中の年月を入力してみたのですが抽出できませんでした。sheet1C1で入力されている年月は抽出できました。 教えて頂いた関数の意味がわかっていない私が悪いのですが・・・再度ご教示いただけると幸いです。 私のやりたい事に最も近いので宜しくお願い致します。 ※データ(sheet1のD1~F2の年月)から2011年4月に当てはまるリストを抽出、2011年5月に当てはまるリストを抽出・・・
お礼
再度ご回答いただきありがとうございました。 1回目も2回目の回答でも抽出できましたありがとうございました! それに言葉が足りずすみませんでした。