• ベストアンサー

Excelでの抽出方法を教えてください

Excelに以下のデータが入力されています。 氏名  日付 都市名 Aさん  9/8 東京 Bさん 9/15 大阪 Cさん 9/16 仙台 Bさん 9/19 名古屋 Cさん 9/22 前橋 Dさん 9/22 横浜 Cさん 9/22 清水 Aさん 9/30 東京 これらのデータから氏名欄に出現する氏名の一覧を抽出したいのです 求められている結果は Aさん Bさん Cさん Dさん です。 何か方法はあるでしょうか。

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

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

VBAですが、わずか十数行のコードで出来ます。 やったことが無ければやって見てください。 プログラムの組み方は稚拙ですが、1000件でも一瞬で終わりました。表の「行数」も自動的に採る方法もありますが( 1行で)極くシンプルにしました。cells(○、△)は○行 △列のデータ値を示します。For i = 1 To 行数はiを1ずつ 増やして行数になるまでNext iまでの処理を繰り返します。新顔はCells(j, y) に書き出します。1行ずつそれと比較し、その中に無ければ、追加しています。 ----------- Sub test01() Dim x As Integer 'どの列の出現メンバを考えるか Dim y As Integer 'どの列へ書き出すか Dim 行数 As Long x = 1: y = 5: 行数 = 20 '本例での仮のデータ k = 1 For i = 1 To 行数 For j = 1 To k If Cells(i, x) = Cells(j, y) Then GoTo p01 End If Next j Cells(k, y) = Cells(i, x) k = k + 1 p01: Next i End Sub --------------- VBAですがワークシートの画面において、ALT+F11をするとVBEの画面になり、ALT+I、ALT+MをするとMojule1の挿入が出来るので、上記のSub test01()から End Subまでをコピーして、Mojule1画面に貼り付けて、F5を押す(実行する)と出来ます。

orion6619
質問者

お礼

imogasiさんわざわざサンプルVBAまで載せて頂きどうもありがとうございました。うまくいきました。助かりました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

こんにちは。 氏名がA列で「氏名」というタイトルがあるとして、 仮にA2:A100が入力範囲とします。 1.タイトルを含む A1:A100のみを選択 2.データ-フィルタ-フィルタオプションの設定 3.メッセージにはOK 4.重複するレコードは無視するにチェックをしてOK 以上で抽出出来ます。 非表示になっているだけなので、データ-フィルタ-全て表示で戻せます。 コピーして違うシートにでも貼りつければ、重複を除いた値のみ取れます。

orion6619
質問者

お礼

早速の回答どうもありがとうございました。試したところ確かに抽出できました。助かりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • データの抽出

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

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

     こんばんは、愚生は、エクセルデータベースの全くの初心者でございます。以下の質問をさせていただきたく、ブログをたてたせてもらいました。 以下のようなA列に日付;B列に地名;C列に数値が載せたtableがございます。(行数は総計約5000程度まで続きます) A1: 2009/10/3, B1: 東京; C1: 12000 A2: 2009/10/3, B2: 大阪; C2: 10000 A3: 2009/10/3, B3: 名古屋; C3: 7000 A4: 2009/10/3, B4: 京都; C4: 3000 A5: 2009/10/3, B5: 金沢; C5: 500 A6: 2009/10/3, B6: 神戸; C6: 4000 A7: 2009/10/5, B7: 大阪; C7: 7000 A8: 2009/10/5, B8: 東京; C8: 8000 A9: 2009/10/5, B9: 京都; C9: 5000 A10: 2009/10/5, B10: 横浜 C10; 4000  A11: 2009/10/6, B11: 東京; C11: 9000 A12: 2009/10/6, B12: 大阪; C12: 7000 A13: 2009/10/6, B13: 名古屋; C13; 8000 A14: 2009/10/6, B14: 京都; C14: 4000 A15: 2009/10/6, B10: 横浜; C15: 5000 2009/10/3には計6個のデータがあります 2009/10/3には計4個のデータがあります 2009/10/6には計5個のデータがあります →   「各日にちごとに、C列の値が大きい順にベスト3ずつを選び、表示させたい訳でございます。」 A1: 2009/10/3, B1: 東京; C1: 12000 A2: 2009/10/3, B2: 大阪; C2: 10000 A3: 2009/10/3, B3: 名古屋; C3: 7000 」 A4: 2009/10/5, B6: 東京; C6: 8000 A5: 2009/10/5, B7: 大阪; C7: 7000 A6: 2009/10/5, B8: 京都; C8: 5000 」 A7: 2009/10/6, B9: 東京; C9: 9000 A8: 2009/10/6, B10: 名古屋 C10; 8000 A9: 2009/10/6, B11: 大阪; C11: 7000 」  もし、mysql (SQL server)等のデータベストソフトが必要な場合も、対処させていただきます。  それでは、よろしくお願い申し上げます。

  • エクセル2003で、データ抽出方法。

    添付させていただいたエクセルのデータで。 A列の都道府県都市名のデータの中から、 C列に存在する都道府県都市名を抽出する方法を 教えていただけないでしょうか? なお、C列の都道府県都市名の中には、A列のデータにはない 都道府県都市名もあります。 もし可能ならば、上記に質問させていただいたように、 A列の都道府県都市名のデータの中から、 C列に存在する都道府県都市名を抽出し、 なおかつ、C列のデータにはあるがA列のデータにはない 都道府県都市名も、抽出できると助かります。 よろしくお願いいたします。

  • エクセル抽出方法がわかりません

    エクセル抽出方法がわかりません   A   B  1 Aさん 19 2 Aさん 20 3 Bさん 19 4 Cさん 19 5 Cさん 20 6 Dさん 20 7 Eさん 19 抽出結果  A   B  3 Bさん 19 7 Eさん 19 19しかない人を抽出するにはどうしたらよいのでしょうか、、

  • 二つの検索値から別のシートに抽出する

    WinXP,Excel2000 下記のような表から例えば氏名コード(A列)103番と 日付(B列)2006/5/3からE列のデータ3.50を導きたい のですが、この場合検索値がA列・B列と2つあるので 同じシートに答えを出す場合は F3=SUMPRODUCT((A1:A9=F1)*(B1:B9=F2)*E1:E9)で できるのですが、別のシートに抽出するにはどうしたら よいでしょうか。ご教授ください。<m(__)m> A列 B列 C列 D列 E列    F列 1 100 2006/5/3 東京 8:10 8.00   103 2 101 2006/5/3 名古屋 9:10 7.25  2006/5/3 3 102 2006/5/3 大阪 7:45 5.00   3.50 4 103 2006/5/3 京都 10:30 3.50 5 104 2006/5/3 札幌 8:40 4.75 6 100 2006/5/4 福岡 8:45 5.00 7 101 2006/5/4 東京 9:05 6.25 8 103 2006/5/4 大阪 8:15 1.50 9 105 2006/5/4 横浜 10:15 3.00

  • excelクロス抽出を一覧表示

    office2007、XPです。 エクセルでデータシートから別シートにクロス抽出した一覧を作成したいです。 データシートには以下のようなデータがあるとします。実際のデータはもっと多いのですが 地域 登録番号 氏名 日本語 英語 北京語 広東語 韓国朝鮮語 スペイン語 ポルトガル語・・・・ 横浜  01 Aさん 母語 流暢 日常 できない できない できない できない・・・・ 川崎  02   Bさん 流暢 少し 母語 できない できない できない できない・・・・ 東京  03 Cさん 日常 少し できない できない 母語 少し できない・・・・ 相模原 04 Dさん 流暢 できない できない できない できない できない 母語・・・・ ここから言語名とレベルで抽出して、地域、登録番号、氏名だけの一覧を作成したいのです。 たとえば“日本語””流暢”で抽出して 地域 登録番号 氏名 川崎  02   Bさん 相模原 04 Dさん さらに、同一シートに行を15行くらいずつずらして抽出先をあらかじめ設定しておき 3つの別シートから同一条件で抽出して同一シートに表示させたいです。 マクロでもかまいません。 関数やマクロでいろいろためしたのですが、 どうしてもうまくいきません。 お知恵を拝借させてください。

  • EXCELにて3つの条件を違うシートに抽出したいです。

    エクセルで元データ(sheet1)を3つの条件にあったデータを別シート(sheet2)に抽出し、 なおかつ抽出したデータを元データ(sheet1)から消去する方法はありますか? できれば関数でお願いします。 ☆シート1☆※元データ   A B C D 1 氏名 出身 作業 時間 2 鈴木 愛知 1 1.0 3 渡辺 静岡 2 1.5 4 鈴木 愛知 2 2.0 5 松坂 岐阜 3 0.5 6 鈴木 愛知 3 1.0 7 鈴木 愛知 4 1.5 8 森田 三重 2 0.5 ☆シート2☆ A B C D 1 氏名 出身 作業 時間 2 鈴木 愛知 1 1.0 3 鈴木 愛知 2 2.0 4 鈴木 愛知 3 1.0 5 鈴木 愛知 4 1.5 補足 ・シート2の条件として『氏名』と『出身』が同じでなおかつ『作業』の1,2,3,4がある人のみ。 このとき、『作業』が4がある人のみ抽出したいです。 ・抽出したときにシート1に抽出したデータ(例では鈴木)が消えるようにしたいです。 説明が不十分で伝わりにくいとは思いますが、 よろしくお願いします。

  • エクセル関数(マクロ) 抽出方法について

    列A~Dに職員NO、所属、家族、名前の入っている名簿(左側)を、並び替えをする際に、下記右表のように、家族区分の”1”のみを取り出して、一人一レコードにしたいのですが、何か良い関数とかまたはマクロでの考え方とかをお教えいただければと思います。 (元シート)|(抽出シート) 職員No.|所属|家族|氏名| 職員NO順 120 002 1 B | A 120 002 2 B | B 134 010 1 C | C 134 010 2 C | D 134 010 3 C 152 050 1 D | 所属・職員NO順 152 050 2 D | B 152 050 3 D | C 152 050 4 D | D 152 050 1 D | A 100 200 1 A ※出来ればオートフィルタを使用せずに関数や マクロで対応したいと考えています。

  • データ抽出方法

    おはようございます。 sheet1 B列、C列に重複してるデータと、そうでないデータが混在して沢山あります。 sheet2 B列、C列に一点一様の型でデータを抽出したいご伝授下さい sheet1 B列、C列 A-1-1 A A-1-1 A B-2-1 D B-2-2 E C-2-1 B C-2-1 B C-2-3 C sheet2 B列、C列(抽出結果) A-1-1 A B-2-1 D B-2-2 E C-2-1 B C-2-3 C

  • エクセルで重複しないものだけを抽出したい

    下記のようなデータがあります。 A B C D 1 20 30 40 1 20 32 41 1 20 30 49 1 20 81 39 2 20 76 40 2 20 32 41 2 20 30 49 3 20 81 39 3 20 39 40 3 20 32 41 4 20 30 49 4 20 81 98 このうち、列Aの他と重複しない部分であり、かつ先頭行を抽出するにはどのようにしたらよいでしょうか? 上記の例で言うと、列Aの1から4までのそれぞれ1行目を選ぶという作業です。 抽出後 A B C D 1 20 30 40 2 20 76 40 3 20 81 39 4 20 30 49 vlookupなどの関数でできるのでしょうか?教えてもらえたらうれしいです。お願いします。

専門家に質問してみよう