- ベストアンサー
エクセルでデータ抽出し、別のファイルを作成したいのですがVBAを勉強し
エクセルでデータ抽出し、別のファイルを作成したいのですがVBAを勉強しないと出来ませんか? 例えば、エクセルで作成した顧客名簿には氏名、年齢、生年月日、住所、電話番号が入力されており、そこから1960-1980年生まれで住所が大阪府の人をセレクトし、別のエクセルデータに出力するとしたらどうすればいいのでしょう? 昔にCOBOLをかじったことがあり、頭の中ではすごく簡単な作業に思えるのですが・・・ よろしくご教授願います
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! 一例です。 ↓の画像で説明させていただきます。 別ファイルではなくSheet1の元データをSheet2に抽出するようにしてみました。方法は同じですので 参考程度で目を通してみてください。 Sheet1に作業用の列を設けています。 Sheet1の生年月日はシリアル値が入っているものとします。 作業列F2セルに =IF(COUNTBLANK(Sheet2!$G$2:$I$2),"",IF(AND(YEAR(C2)>=Sheet2!$G$2,YEAR(C2)<=Sheet2!$H$2,ISNUMBER(FIND(Sheet2!$I$2,D2))),ROW(),"")) という数式を入れ、フィルハンドルの(+)マークでダブルクリック、またはオートフィルで下へコピーします。 そして、Sheet2のA2セルに =IF(COUNT(Sheet1!$F:$F)<ROW(A1),"",INDEX(Sheet1!A:A,SMALL(Sheet1!$F:$F,ROW(A1)))) という数式を入れ、列方向と行方向にオートフィルでコピーすると 画像のような感じになります。 これでSheet2のG2セルに「○○以降」H2セルに「○○まで」の西暦年数を入力、 I2セルに抽出したい「住所」の一部でも入力すると Sheet2にデータが表示されると思います。 以上、参考になればよいのですが・・・m(__)m
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
VBAの経験があれば、VBAで年齢・住所を判別(AND判別)して別シートに書き出すだけ(10行前後)だが、そこまで行き着くのには、相当VBAの勉強時間が必要。 COBOLの経験と直接の関係はありません。別物で、ほぼ役立ちません。VBやBasic既習でさえもそんなに役立たないと思います。 ーーー データーフィルターフィルタオプションの設定でやるのが良いのでは。(別シートにも出せる) ーー 一種の「抜き出し問題」です。Googleででも「imosasi方式」で照会すれば、質問と回答の多様性を見ることが出来るでしょう。 ーー 1,2回限りなら プログラムを考えないでも、住所+生年月日でソートし、目視で該当の行範囲を択んで、コピーし、別シートに 貼り付ければ済みます。 ーーー http://www.geocities.jp/chiquilin_site/data/051029_more_conditions2.html に良いまとめがあると思いますので読んでください。
お礼
有難うございます 毎月の作業になるので出来るだけ 誰でもできる方法を考えます
- web2525
- ベストアンサー率42% (1219/2850)
フィルター機能:オートフィルターやフィルターオプション ピポットテーブル などが利用できます。 SUMPRODUCT関数などを利用した拾い出しも可能 マクロ化する場合、フィルターで絞り込んで、コピペする動作を記録して一部コードを修正するほうが簡単ですね。
お礼
有難うございます 関数でも出来るんですね
お礼
有難うございました 早速やってみます!!