dポイントプレゼントキャンペーン実施中!

エクセルでデータ抽出し、別のファイルを作成したいのですがVBAを勉強しないと出来ませんか?
例えば、エクセルで作成した顧客名簿には氏名、年齢、生年月日、住所、電話番号が入力されており、そこから1960-1980年生まれで住所が大阪府の人をセレクトし、別のエクセルデータに出力するとしたらどうすればいいのでしょう?
昔にCOBOLをかじったことがあり、頭の中ではすごく簡単な作業に思えるのですが・・・

よろしくご教授願います

A 回答 (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
「エクセルでデータ抽出し、別のファイルを作」の回答画像3
    • good
    • 0
この回答へのお礼

有難うございました

早速やってみます!!

お礼日時:2010/08/09 11:29

VBAの経験があれば、VBAで年齢・住所を判別(AND判別)して別シートに書き出すだけ(10行前後)だが、そこまで行き着くのには、相当VBAの勉強時間が必要。


COBOLの経験と直接の関係はありません。別物で、ほぼ役立ちません。VBやBasic既習でさえもそんなに役立たないと思います。
ーーー
データーフィルターフィルタオプションの設定でやるのが良いのでは。(別シートにも出せる)
ーー
一種の「抜き出し問題」です。Googleででも「imosasi方式」で照会すれば、質問と回答の多様性を見ることが出来るでしょう。
ーー
1,2回限りなら
プログラムを考えないでも、住所+生年月日でソートし、目視で該当の行範囲を択んで、コピーし、別シートに
貼り付ければ済みます。
ーーー
http://www.geocities.jp/chiquilin_site/data/0510 …
に良いまとめがあると思いますので読んでください。
    • good
    • 0
この回答へのお礼

有難うございます

毎月の作業になるので出来るだけ
誰でもできる方法を考えます

お礼日時:2010/08/09 11:34

フィルター機能:オートフィルターやフィルターオプション


ピポットテーブル
などが利用できます。

SUMPRODUCT関数などを利用した拾い出しも可能

マクロ化する場合、フィルターで絞り込んで、コピペする動作を記録して一部コードを修正するほうが簡単ですね。
    • good
    • 0
この回答へのお礼

有難うございます

関数でも出来るんですね

お礼日時:2010/08/09 11:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!