• ベストアンサー

エクセルで抽出(?)

エクセルで名簿を管理しているのですが、メアドだけ、住所だけ抽出(リスト化)することは可能でしょうか? たとえば、「三の倍数行の二列目のセルを抽出(リスト化)」と言ったことです。 わかりにくいと思いますがどうぞお願いしますm(_ _)m

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

  • ベストアンサー
  • matsu_jun
  • ベストアンサー率55% (146/265)
回答No.3

例えばCの列に1行目から入力していくとすると、 (C1にB3の値、C2にB6の値、C3にB9の値・・・) 関数だったら =OFFSET($B$3,(ROW(C1)-1)*3,0,1,1) もしくは =INDIRECT("B" & (ROW(C1))*3) これを下のほうへドラッグしていけばOKです。 といった方法があります。ちなみに上式初めの式は、B3セルから、(現在の自分自身の行数×3)だけ下にオフセットしたセルの値を参照する。という意味、2番目の式は、文字列で示されたセルを参照するという意味です。それぞれの式中の「ROW」関数は、カッコ内のセルが何行目であるかを返す関数です。 これらを利用する際は、リスト化する行を選択した後、セルの書式設定で「表示形式」の「種類」を、「[=0]""」としておけば、何も無いセルには何も表示されなくなります。(上記設定をしないと、何も無いセルに「0」が表示されてしまいます) マクロでやるのであれば、標準モジュールに以下のソースを貼り付け、実行します。 Sub MakeList()   Range("C:C").Clear   i# = 1   Do While (1)     If Cells(3 * i, 2).Value = Empty Then Exit Sub     Cells(i, 3).Value = Cells(3 * i, 2)     i = i + 1   Loop End Sub お好きな方法をご利用ください。

その他の回答 (4)

  • at121
  • ベストアンサー率41% (85/206)
回答No.5

アクティブのシートのリストから メールアドレス *@*.* 形式 のセルを見つけ このセルと  相対位置 下 住所  右横 名前 斜め などの項目を 新しいシート"メールアドレス抽出" に  メアド、住所、名前 ・・ 行として リストに追加。  重複の場合は追加しない。 ※ メアドを探す Range は必要に応じて   Cells.SpecialCells・・・   から Range("A:A").SpecialCells・・・   などと変更する。 ※ リストに抜き出す項目の相対位置は   適時 offset( * , * ) で設定する。 Sub メールアドレスと住所を新しいシートに抜き出し() Dim 転写先 As Range Set 今のシート = ActiveSheet For Each シート In Worksheets If シート.Name = "メールアドレス抽出" Then GoTo Forを抜ける Next Sheets.Add before:=Sheets(1) Sheets(1).Name = "メールアドレス抽出" 今のシート.Activate Forを抜ける: Set 転写先 = Sheets("メールアドレス抽出").Cells(65536, 1).End(xlUp).Offset(1, 0) For Each 有効セル In Cells.SpecialCells(xlCellTypeConstants) If 有効セル Like "*@*.*" Then 'メールアドレス識別 "@" If Sheets("メールアドレス抽出").Range("a:a").Find(有効セル) Is Nothing Then '重複が無ければ抽出 転写先 = 有効セル.Value '転写先と 転写するデータ の相対位置を設定 転写先.Offset(0, 1) = 有効セル.Offset(1, 0).Value '住所など 転写先.Offset(0, 2) = 有効セル.Offset(0, 1).Value '名前など Set 転写先 = 転写先.Offset(1, 0)'次の転写先行 End If End If Next End Sub

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.4

>「三の倍数行の二列目のセルを抽出(リスト化)」 このケースは、“作業列を使う”方法がEXCELらしくて、一番良いのではないかと思います。例えば、次のような感じです。 1. A列に1列追加して、その列の3行目に1と記入 2. A列1~3行目を選択し、最終行までフィルコピー   --->これで、3の倍数行に 1 が入力されました 3. [データ]-[オートフィルタ-]でA列が1の行だけ抽出 その結果の必要な部分だけコピーすれば、ご希望通りのリストができあがります。 この手法の良いところは、単純ゆえにどんな応用も利くことです。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

セルの領域な位置の具体的な例がないと、正直なところはよく分かりません。 =IF(INT(COUNTA($A$1:$A$20)/3)<ROW(A1),"",INDEX($A$1:$B$20,SMALL(IF(MOD(ROW($A$1:$A$20),3)=0,ROW($B$1:$B$20),""),ROW(A1)),2)) これは、 A列のA1からB列のB20 まであるとした時、3で割り切れる行の2列目(B列)の値を取り出す数式です。 つまり、B3,B6,B9・・・ということになります。 これで違うのでしたら、もう少し、具体的な例が必要です。 ※配列数式ですから、[Shift+Ctrl+Enter]が必要です。分からない場合は、詳しくはヘルプをごらんください。

回答No.1

補足をお願いします。 EXLのマクロは書けますか? 名簿はどれくらいの数でしょうか? 今はどのように抽出してますか?

関連するQ&A

  • 二つのエクセル名簿を比較し、抽出したい

    エクセルでできた名簿が2つあります。 どちらも 列EがID、 列Fが氏名 列Gがフリガナ という構成は同じです。 両方の名簿で同じ人は、同じIDです。 ただ、上記記載以外の列、備考や更新日などは同じ人でも異なったデータが入っています。 二つの名簿ファイルを借りに名簿A、名簿Bとすると 名簿Aにのみ掲載されてる人のレコードのみ抽出したいのです。 両方の名簿から、ABともに掲載されてる人、Bのみに掲載されてる人を除き、Aのみに掲載されてる人だけのリストを作りたい。 理想は、名簿Aのリストはそのままにして、 まったく別の列(例えば列Z)に抽出した人だけ 1を入力するなどが理想です。 1行ずつ目で見て比較していくのは、時間のむだでとてもできません。

  • エクセルのデータ抽出

    会社で注文のあった業者のリストをエクセルで 作ってて450行くらいあります。 各項目には会社名や内容や価格などありますが その中には空白のセルや行もあります。 そこからA列に自分が抽出したい行に印をいれて フィルタをかけたところ、空白があるためか すべてを抽出できません。1行1行抜き出すのもいいのですが 今後、データも増えることを考えると 何かいい方法で抽出したいのですが、 どうしたらいいでしょうか? やはりマクロをつかうのでしょうか? すみませんがよろしくお願いいたします。

    • ベストアンサー
    • Mac
  • エクセルで検索にひっかかったものを抽出したい

    エクセル2003です。 A列にURLリストが並んでいます。 リストの中で「cgi」という文字列が含まれている セルだけを抽出して、B列に貼り付けたいのですが、 方法がわかりません。 よろしくお願いします。

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

    Windows7、エクセル2010を使用しています。 エクセルで、指定したセルのデータを抽出する方法についての質問です。 エクセルに60000行×1列のデータがあるとして、 その中から99行目、199行目、299行目、・・・59999行目のデータを抽出しなければなりません。 手作業でコピーするのは時間的に非現実的なので、なにか抽出する方法はないでしょうか? 100行単位で列を変えれば、99行目のみをコピーし、行と列を置き換えればいいと思うのですが、そんなことは可能なのでしょうか? そのほか、何か方法があれば教えてください。

  • EXCELのデータの抽出

    EXCELで例えばA列のA1からA10000まで10000個データがあるとします。この10000点のデータを10の倍数のA列のセルだけを抽出して(A10,A20,A30・・・・というような感じで)1000点に減少させたものをB列に作成したいのですが、どのようにしたらいいんでしょう?

  • エクセルのデータ抽出

    今エクセルのデータ抽出に困っています。 14:00:00.862072 文字列(以下すべて数字、英字混合) 14:00:00.862114 文字列 14:00:00.862359 文字列 14:00:00.862367 文字列 というデータがあり、 14:00:00.[この部分!!] 文字列 だけを抽出したいのです。 しかし、コピー&ペーストを行って貼り付けたので この長い1行が1つのセルにすべて入ってしまっています。 どこのサイトも、セルが違うと、抽出はできるように書いてあるのですが....。 このデータはすべて1つのセルに長い1文が入ってしまっています。 この場合、抽出することは不可能でしょうか? やりかたがあったら、ぜひ教えてください。

  • Excelでデータ抽出!

    かなり切羽詰ってます。助けてください。 excelで3×15の表を作ってそこからデータを抽出したいのです。列と行の数値はそれぞれ別のセルからの参照にしたいのですが...。ifとかvlookupとかいろいろ使ってみたのですがうまくいきません。エクセルでゆーところの'B3'を出したいだけのことなのですが...。誰か助けてください。

  • エクセル抽出について

    初歩的な質問で大変恐縮です。 エクセルで10列×5行でひとまとまりの下に続く表があり、その中の1列目2行目に入力してある「支店」別にデータを抽出したいと思っています。オートフィルタを使うと1行づつなら抽出できるのですが、10列×5行のまとまりごと抽出する方法はありますでしょうか? つたない文章で申し訳ありませんが、ご教授ください。

  • 【エクセル】年月日の抽出

    【エクセル】年月日の抽出 エクセルにて、行ラベル日付・列ラベル価格のピポットテーブルを作成したいのですが、 元になるCSVファイルの日付データが、【2009/12/28/ 22:52】と日時表記になっているため うまくいきません・・・。 年月日のみ抽出しようと、他セルに=LEFT(セル番号,10)と入力したのですが、 【40175.9528】とシリアル値が出てきてしまいました。 どのようにすれば、【2009/12/28】のみを抽出できるのでしょうか。 エクセル初心者のため、説明がうまくできず申し訳ございません。 分かりにくい点あるかと思いますので、ご指摘ください。 よろしくお願いいたします。

  • エクセルのデータを抽出したいのですが・・・

    エクセルのデータを抽出したいのですが・・・ いつもこちらでお世話になっています。 5000行あるデータの中から D列に入っているA事業所のうち、 R列に入っているB市で始まる住所(番地まで入っています) 分のデータ件数を抽出したいのですが どのようにすれば良いのかわかりません。 どのように数式を入れれば良いのか教えてください。 宜しくお願いします。

専門家に質問してみよう