エクセルのデータの抽出方法とは?

このQ&Aのポイント
  • 仕事で1000個ぐらいの地名と住所がセットになったエクセルのデータを別のシートに抽出する方法を教えてください。
  • 普通にマクロを使っても最初のデータしか抽出されず、残りの999個は結局1000のマクロをつくらなければなりません。しかし、一つのマクロで済ませる方法はありますか?
  • エクセルデータには地名と住所が入っています。マクロを使わずに一括で抽出する方法を教えてください。
回答を見る
  • ベストアンサー

エクセルのデータの抽出

仕事で1000個ぐらいの地名と住所がセットになったエクセルのデータを別のシートの決まった場所に抽出したいのですが、どうすればいいでしょうか? 自分でいろいろと調べたところマクロを使えばいいということですが、普通にマクロを使っても最初のデータしか抽出されず、残りの999個は結局Macro2, Macro3, Macro4, Macro5......Macro1000のマクロをつくらなければなりません。 いったいどうすればいいでしょうか? エクセルデータは次のようになっています       地名        住所 1    ○×消防署   △○区000 2    ×□公園    ■○区 1111 3    ●●小学校   ●×区 2222 4    ××神社    ×●区3333 ・ ・ ・ 1000   △●公園    ●□区101010 いちいち一つずつマクロを作っていては直でキーボードから入力するのとあまり変わりません。 ひとつのマクロで済ませられる方法があればどうか教えてください。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.4

n-junです。 >ついでにソースコードをどうやって保存すればいいのでしょうか? 保存は通常のブックの保存ですけど。 >少し伺いたいことがあるのですが ~ これはいったい何なのでしょうか? マクロの自動記録が有効になっているのではないですか? 記録を止めて余分なコードは削除して下さい。 マクロの自動記録 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_01.html ⇒「マクロの記録終了ボタン」です。

shomarket
質問者

お礼

度々すいませんでした。 単に記録の止め忘れでした。いろいろと長いことお付き合いいただいきありがとうございました。

その他の回答 (3)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.3

n-junです。 元のデータがシート2のA列・B列だとしてます。 Sub try() Dim i As Variant i = Application.InputBox("何番目のデータ?", Type:=2) If i = False Or i = "" Then Exit Sub If Worksheets("Sheet2").Range("A" & i).Value <> "" Then Worksheets("Sheet1").Range("C5").Value = _ Worksheets("Sheet2").Range("A" & i).Value Worksheets("Sheet1").Range("H5").Value = _ Worksheets("Sheet2").Range("B" & i).Value Else MsgBox i & "行目にデータはないです" Exit Sub End If End Sub ご参考まで。

shomarket
質問者

補足

ありがとうございます。いただいたソースコードを参考にやってみたところ希望道理の結果がでました。 少し伺いたいことがあるのですが、パソコンの下のバーのエクセルのファイルを最小化したり前に出したりすると なぜかソースコードのEnd Subの後に Application.WindowState = xlNormal Application.WindowState = xlMinimized という文字列がVBエディタに出てきてしまいます。これはいったい何なのでしょうか? ついでにソースコードをどうやって保存すればいいのでしょうか? 普通に保存ボタンを押すとEnd Subの後に ActiveWorkbook.Save という文字列が追加され、以降マクロを実行しようとする コンパイルエラーと表示されてしまいます。 これらはどうすれば解決できるのでしょうか?

回答No.2

おっしゃっていることはできますが、まだ情報不足でこれでは具体的なコードなどは書けません。 データの指定(1や2など)の仕方は ・ユーザーフォームを表示させ番号を入力させる方法 ・特定のセルに入力欄を設け番号を入力させる方法 ・該当の行を選択させておく方法 などがあると思います。 これで行番号を取得できるので、あとはその行のデータをコピーして 貼り付けるだけです。 貼り付け先は「空のフォーム」と書かれてますが、ユーザーフォームのことですか?それとも別のシートってことですか? 別のシートの場合、シート名は決まっていますか?またそのシートで貼り付けるべき場所(セル)は決まってますか?

shomarket
質問者

補足

最近知ったのですがVBAというプログラムを使わないと希望するようなことはできないということでしょうか? 私はVBAについてはぜんぜん知りません。後で勉強しようと思います。 空のフォームというのは別にある普通のエクセルのシートのことです。 例えば同じファイル中に、1000個のデータがあるシートが名前sheet2でその前にある名前sheet1がデータを送りたい先のシートです。 sheet1は具体的にはセルのB5B6の真ん中に 地名 と書いてあり、 その横のC5からE6範囲に ○×消防署 と入れたいのです。 住所についても同様で、セルG5G6の真ん中に 住所 と書かれており、H5からJ6の範囲に △○区000 と入れたいのです。 舌足らずですいません。つまりC5からE6範囲とH5からJ6の範囲にそれぞれのデータを貼り付けたのです。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

どんな条件で、別のシートのどこに出力したいのかが不明です。 取り敢えず >普通にマクロを使っても最初のデータしか抽出されず こちらのコードを提示されてみては如何でしょう。 あとは元データの他に、希望する結果を提示してみるとか。

shomarket
質問者

補足

すいません。質問の仕方を間違えました。最初のデータの○×消防署と△○区000をそれぞれコピーして別のシートにペーストし、マクロに記憶させています。たぶんそれで最初のデータを記録したMacro1というマクロが作られているのだと思います。私がやりたいことは 番号を指定してマクロを実行することによってそれぞれの地名と住所を別のシートにある空のフォームに出力することです。例えば1を指定してマクロを実行、1番目の地名と住所がフォームに出力される。 2を指定してマクロを実行、2番目のデータが空のフォームに出力されるといった感じです。

関連するQ&A

  • エクセルでデータ抽出するには?

    まったくのエクセル初心者です。 エクセルで、シート1のデータの特定科目を抽出してシート2にコピーしたいのです。 シート1のデータは 5/1 消耗品    2500 5/3 水道光熱費  8000 5/5 消耗品     700 5/7 消耗品    1200 この中から消耗品と記入されている行をシート2に抽出したいのです。 マクロは全然わかりません。。簡単にできる方法は無いでしょうか?よろしくお願いします。

  • エクセルでデータ抽出

    エクセル初心者です。 エクセルでに次のような表を作っております。 (Sheet1) 担当 会社 郵便番号 住所 菊地 A社 0000000 ○○○○ 菊地 B社 0000000 ○○○○ 菊地 C社 0000000 ○○○○ 田中 D社 0000000 ○○○○ 田中 E社 0000000 ○○○○ 山本 F社 0000000 ○○○○ 山本 G社 0000000 ○○○○        ・        ・        ・ と800件くらいあるのですが、 これを 別シート(Sheet2)で名前を菊地と入力すると菊地のデータが一覧で出るようにしたいのですが、どうしたらよいでしょうか。 できれば、マクロを使わずに関数でやりたいです。 VLOOKUPかな?と思い、いろいろ調べたのですが、抽出したいデータが複数あるので、悩んでおります。 すみませんが、どなたかご指導お願い致します。

  • エクセルでの~データの抽出~

    本などを読んでも何で調べたらいいのか分かりません。 お詳しい方どうかご教示下さい。 仕事でエクセルのみを使用してデータの管理をしています。以下の ようなことをしたい場合、エクセルで出来るのか、またどうすれば よいですか? (Q1)例えば、Aのシートに何百人という名前のデータがあるの ですが、そこには同じ人(同じ名前)がほぼ2~3個重複してたりも します。Bのシートにも同様のようなデータがあり、Aのシートにいる 人もまた同じようにBのシートにも重複してたりもします。そこで、 「AのシートにはなくてBのシートにだけいる人を抽出したい」場合どうすればよいのでしょうか? 3月の顧客一覧をAのシート、4月の顧客 一覧をBのシートとしていて、毎月ほぼ同じだけれど、4月に 新たに発生した顧客だけを知りたい、という場合です。。。 (金額も管理してるので一シートに同じ顧客が連なってたりもします) この場合、いちいち見比べずにさっと抽出したりすることは可能 でしょうか…?      (Q2)各シートに沢山あるデータのある一つのデータだけを、どこかに 抽出することはできます?例えば、名前・金額などのデータを月毎に 各シートで管理しているのですが、一年なら、12枚あるシートの 中で、ある一人だけのデータを知りたい場合(例えば何月に来ていくら 購入している…等)、12シートを一枚づつ開いて名前を探す方法以外に何かありますか? 分かりにくい説明で申し訳ありません。お詳しい方、どうか知恵と 知識をご教示ください。よろしくお願いいたします。      

  • Excel データの抽出について

    年始のお忙しいところ失礼いたします。 Excelにおけるデータ抽出についてお尋ねいたします。 抽出元データは左から1番目のシートのA列から順に、日付、部門名、商品名、数量0、記号、数量1、記号、数量2、記号、数量3、記号、残り数量となっています。 残り数量の列には、『=数量0-数量1-数量2-数量3』 という数式が記述してあります。 今回は、左から3番目のシートに、商品名、数量0、残り数量の3列の条件式を入力する場所と条件式に合致するデータを表示する場所を作成して、条件式に合致するデータを抽出することを検討しています。 条件式 商品名列:商品名の中から1つの商品を抽出 数量0:数量0=40、数量0<=10など数量0の値が入力した任意の数量と=またはは、以下(<=)を抽出 残り数量:残り数量<>0、残り数量<=20など残り数量の値が0以外か、入力した任意の数量以下を抽出 条件式を書き換える(抽出条件を変更する)ことが多いため、書き換える(条件を変更する)たびに、表示されるデータが更新されるようにしたいです

  • エクセルでのデータ抽出

    エクセルでの複数シートからのデータ抽出方法を教えていただけないでしょうか。 1日から31日まで日にちごと作ったシートの中に”お客さん”と”担当者”と”料金”の3項目があるとします。その1日から31日までの全てのデータの中の”担当者”ごとに別のシートへデータの抽出を行いたいのですが。 複数のシートからのデータ抽出になります。 簡単な方法があったら教えていただけないでしょうか。

  • エクセルで毎日配信されるデータを抽出したい

    こんにちは。 毎日サイトからメールでエクセルデータが添付され送られてくる相場一覧について相談させてください。 【送られてくるデータ】 エクセル シート:5枚 【現在の作業】 このシートのうちの4枚の一部分に欲しいものの相場が載っているので、それをコピーして、 別に作ったカレンダーに貼り付け、折れ線グラフにしています。 【改善したいこと】 ○送られてくるエクセルデータの中から 必要なデータから必要な部分だけを自動で抽出したい ○抽出データをカレンダーに毎日更新して載せたい ○そのデータを折れ線グラフで表したい 今、行っている作業をマクロで記録して、 マクロ起動用のファイルを作成し、届いたデータを開いてマクロを起動させようとしたのですが、 うまくできませんでした。 このような場合、どのようにして作業するのがいいのでしょうか? 毎日の作業なので、あまり手間と時間をかけたくないのですが、 マクロは記録位しか経験がなく、困っています。 どなたかご教示お願いいたします。

  • Excelで、他のExcelファイルからデータ抽出

    はじめまして。 タイトル通り、Excelのマクロで、他のExcelファイルのデータを抽出するマクロを作っています。 http://okwave.jp/qa/q3681193.html 上記ベストアンサーQ&Aを参考にして、他のExcelファイルからデータを持ってくるマクロを作ることは出来たのですが ・パスワードのかかったファイルから抽出する際は、パスワードの入力を省きたい(パスワードは全て同一)。 ・シート名は月日表示(0129など)になっており、何月何日から何月何日までのデータを持ってくるか指定出来るようにしたい。 ・抽出先のセルに何もデータがないときは何もデータを返さないようにしたい(現状は"0"が返ってきます)。 上記3点が上手く出来ず、詰まっている状態です。 何かいい方法があれば、ご教授願いたく質問をさせていただきました。 よろしくお願いいたします。

  • エクセルデータ抽出

    はじめまして、エクセルの関数とか殆ど分かりません。 そこで、以下内容の事をしたいのですが、どうすれば良いでしょうか? 何度もすみません。 前提 先程の質問内容とは異なるのですが、実際のデータに沿った形で質問させて下さい。 データ量が膨大で、実際のセルが多数御座います。 内容をしっかり理解できていない為、実データ通りの計算式を教えて下さい。 (1)今日より3ヶ月以内(月末〆)のデータのみ抽出する。 (2)抽出データを別のシートに作成する。 (1)~(2)を実行する方法を教えて下さい。 次に『抽出データ』の金額を計算する。 出来ればマクロを組んで、ボタンをクリックして対応したいと思っております。

  • エクセルで抽出した不特定数のデータを行数の決まった別シートに取り込む方法を教えてください

    エクセルでマクロを作り始めた初心者です。 Sheet1に、氏名、住所、TEL、会社名、担当者、金額・・・と続くデータが6000レコードほどあります。(レコードは随時増えていきます) Sheet2では、担当者名を条件にSheet1から必要な列(上記に記載したもの5つ)のみを抽出するマクロでデータを取り出すようになっています。 抽出したデータをsheet3のフォーマットに氏名、住所、金額の列だけ入れるのですが、入れられる行が20行と決まっており、最後の行には、合計欄が入るようになっています。 不特定数のレコードを20行ごとにページを区切って印刷するにはどうしたらよいでしょうか。ご教示お願いします。

  • エクセルVBAでのデータ抽出についての質問です。

    エクセルVBAでのデータ抽出についての質問です。 下記のような2つのシートがあります。 (シート1) AA BB CC DD EE FF GG HH ←タイトル(複数固定) ああ いい うう ええ おお かか きき けけ ←値 ささ しし すす せせ そそ たた なな はは ←値 まま みみ むむ めめ もも らら りり るる ←値 (シート2) AA FF HH ・・・ ←タイトル(数は変更あり) シート1にタイトルの付いたデータが100列ほどありまして、 シート2に抽出したい列だけのタイトルを並べたとします。 このシート2のタイトルに入れたデータのみをシート1から列ごと 抽出してきたい場合、マクロで可能でしょうか。 本来はアクセスなどを使ってデータベースでクエリ抽出してくるものだと思いますが、 マクロでなんとかしたいと思っております。