• ベストアンサー

エクセルでデータ抽出し、別のファイルを作成したいのですがVBAを勉強し

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

noname#157767
noname#157767

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.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

noname#157767
質問者

お礼

有難うございました 早速やってみます!!

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

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

noname#157767
質問者

お礼

有難うございます 毎月の作業になるので出来るだけ 誰でもできる方法を考えます

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

フィルター機能:オートフィルターやフィルターオプション ピポットテーブル などが利用できます。 SUMPRODUCT関数などを利用した拾い出しも可能 マクロ化する場合、フィルターで絞り込んで、コピペする動作を記録して一部コードを修正するほうが簡単ですね。

noname#157767
質問者

お礼

有難うございます 関数でも出来るんですね

関連するQ&A

  • エクセルで作成した名簿の中から抽出したデータのみ別のブックに一覧作成し

    エクセルで作成した名簿の中から抽出したデータのみ別のブックに一覧作成したいのです。 シート毎に個人情報を入力してますが、同時に別ブックにて氏名、住所、連絡先のみを一覧にしたいです。 個人情報のシートは ブック名「顧客情報詳細」の氏名欄がA6をブック「一覧表」のA1に。 住所はJ6→B1  連絡先J8→C3  といった具合です。 教えていただけないでしょうか?  宜しくお願い致します。

  • エクセル2007 データ抽出(関数)について

    教えてください。エクセルシートにて郵便番号と住所が重複しているデータを抽出したいのです。 例)ある顧客の情報として、シート1のA列に、1から10までの新規顧客の氏名、B列には生年月日が入力されています。C列,D列は空白で、E列には全ての顧客(新規顧客を含みます)の氏名、F列には生年月日、G列には郵便番号、H列には住所が入力されています。このふたつの情報の中から、新規顧客データと全ての顧客データの氏名、生年月日が重複している顧客のみ、C列にその郵便番号、D列に住所を表示させたいのです。 OSはXP エクセル2007です。 困っています。よろしくお願いします。

  • データの抽出

    名簿形式のデータAがあります。 そのデータAの中から一部を取り出したデータBを作成しました。 質問は全データである「A」から「データB以外のデータ」であるCを 作成するにはどうすれば良いのでしょうか?エクセルの関数かアクセスを使って簡単に抽出できるのでしょうか。よろしくお願いします。 A   氏名  住所 など 1 石川  東京 2 佐藤  名古屋 3 山田  北海道 … 100   B   氏名  住所 2 佐藤  名古屋 5 本田  東京 10 … 78 C    氏名 住所 1 石川 東京 3 山田 北海道 4

  • エクセル:別ファイルからの抽出

    エクセル:別ファイルからの抽出 エクセルにて、 あるファイルに A  B    C No 月    氏名    1 2010/11  佐藤 2 2010/10  山田 3 2011/12  田中 4 2010/10  田中 ・ ・ とあり、それを別ファイルで 2010/10とセルに入力してやると、B列の2010/10だけ抽出して 一覧にしてくれるようにしたいと考えております。 関数またはVBAにて処理する方法はありますでしょうか? A  B    C No 月    氏名    2 2010/10  山田 4 2010/10  田中 ・ ・ ※別ファイルにおいては順番は関係ないので、Noがなくても よいです。 恐縮ですが、お答え願えれば有難いです。

  • エクセルVBAで、ある文字を含んでいたら別シートに抽出したい

    エクセル2002を使っています。 シート1に  A列に氏名  B列に住所  C列に電話番号 のデータが300件の表があります。 B列を検索してたとえば大阪府があれば、その行(ABC列)をシート2へコピーして抽出したいのです。  VBAを使ってやりたいのですがどうしたらよいでしょうか? よろしくお願いします。

  • エクセルで、抽出したいデータがあります!!

    エクセルで、抽出したいデータがあります!! 個人で年1回、支給額も支給年月も異なるデータを抽出したいのですが。   支給年月日  H22.4.20  H22.5.15  H22.6.30・・・・ 番号 氏名     4月     5月     6月  ・・・・計 1   A     1000                  1000 2   B                   1500    1500 3   C            1200           1200 上記のような表があり、個人の支給額と支給年月日を抽出するのに、 いちいち上から一つずつ探して以下のような表に記入しています。 番号 氏名  支給額  支給年月日 1   A   1000   H22.4.20 2   B   1500   H22.6.30 3   C   1200   H22.5.15 個人の支給額と支給年月日を簡単に抽出する方法はないでしょうか? よろしくお願いいたします。

  • VLOOKUPで別ファイルから検索

    現在売上帳をエクセルVBAで作っています。 その中で、顧客NO.を入力すれば顧客名や住所が表示されるように、VLOOKUPで同ファイル内の別シートの顧客名簿から検索できるようにしているのですが、この顧客名簿を別ファイルで作っても検索されるようにできるのでしょうか? やり方を教えてください。 よろしくお願いします。

  • エクセル 重複データの抽出

    エクセルを使って重複データをチェックしようと思っていCOUNTIFで試したのですがうまくいきません・・・ご存知の方教えてください。m(__)m   A     B       C         D       E     F   店番  顧客番号  氏名(カナ)   電話番号   住所1   住所2 という表の電話番号が重複する先を抽出したいのです。データ件数は約3000件ほどあります。できれば重複したデータは別のシートに店番順に表示をしたいのですが関数でできるのでしょうか?

  • EXCELでデータを抽出してコピペしたいです

    指定した日付より、それ以前の誕生日(指定日も含む)の人だけを抽出してコピペしたいのですが WORKBOOK1のSHEET1(名簿)のH列に生年月日(他の列にもデータあります) データは、1200件(行)あります。 WORKBOOK2のSHEET1(該当者)名簿と配列は同じです。 A1に指定の日付をいれます。 WORKBOOK1のSHEET1(名簿)より抽出したデータのペースト位置は、A3からです。 VBAで可能でしょうか?

  • エクセルの重複データ抽出

    初めてのご質問です。2つの名簿をエクセルにシート別にまとめてありますが、氏名が重複しているものを別シートに抽出したいと思います。フィルタオプションでトライしたのですが、1つだけのセルに重複していない氏名が記載されたり・・と苦戦しております。何か良い方法があれば、非常に助かります・・。

専門家に質問してみよう