• 締切済み

エクセルで作成した住所録から任意のデータ抽出

まず住所録ですが、形式はAからD列に番号、略号、氏名、住所、行は2行目から最大100行まで同じ形式のものが、10シート以上あります。別形式の証明書用のシートがあり、そこに空欄の氏名と住所が別行にあります。任意の証明書に複数ある住所録から任意の氏名と住所を番号を検索して、1発抽出したいのが今回の質問です。 住所録、証明書用のシートが1つづつならばVLOOKUP関数で簡単に抽出できました。 しかし、各々が10シート以上にせざるを得なくなりました。 このような操作の場合、そもそも関数で対応できますか?証明書用シートそれぞれに住所録全部を範囲とすることもできず、困っております。  もし関数でできるならばその方法を教えてください。 VBAやマクロでないと対応ができないとなるとその知識がないに等しいのでご教授の際は、細かく指示してもらえればありがたいです。  コピペでやれば手間でもできますが、かなりの人数のものが利用しますので必ず氏名と住所を違うものをコピーしてきて貼り付けるのでこの方法は、不採用にしました。 以上、長くなりましたがよろしくご教授お願いいたします。

みんなの回答

  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.3

NO2です。 今までVLOOKUPを使用されていたのでしたら分かると思うのですが。 各県シートのA列の番号を入力して氏名、住所を検索すれば良いのではありませんか。 番号は重複していては検索出来ないので、全て連番にするか文字列と番号を組み合わせる等が必要(北海道ならH1、北1等々)、画像は全て連番としています。 セル範囲はA2~E100、1行目に項目名入っていると仮定しています。よってデータは2行目から。 氏名の関数 =VLOOKUP($B$1,INDIRECT($B$14&"!A2:E100"),3,FALSE) 住所の関数 =VLOOKUP($B$1,INDIRECT($B$14&"!A2:E100"),3,FALSE) E列データ不使用であればA2:D100でも構いません。 申請シートの住所、氏名は集計用シートの検索結果の住所、氏名のセルを参照です。 D12に=を入力後、集計用シートの住所を検索したセルを選択すれば、自動で参照式を作成してくれますよね。(例:=集計用!E2) 集計用シートの検索結果の位置を前回と変更していますが、画像を添付しますので確認下さい。 シート名の記載はどこのセル範囲でも構いませんが、セル範囲の変更は必要です。 =INDEX(A4:A13,MATCH(1,B4:B13,0))のA4~A13、B4~B13のセル範囲を変更すれば良いだけです。

  • dogs_cats
  • ベストアンサー率38% (278/717)
回答No.2

各シートのレイアウトが同じであれば、抽出用シートを1つ作成します。 添付画像に沿って説明。 B1にVLOOKUPで検索する検索ワードを入力 検索シート名をA4~A13に入力 B4式 =COUNTIF(INDIRECT(A4&"!A:A"),$B$1) B13までコピペ 検索ワードが各シートのA列に存在すると仮定して数式を作成しています。 検索ワードが存在するシート名のB欄だけが1になる。countif関数 B14式(検索シート名取得) =INDEX(A4:A13,MATCH(1,B4:B13,0)) B14のシート名でvlookupでデータを取得 D4式 =VLOOKUP($B$1,INDIRECT($B$14&"!A2:E100"),2,FALSE) 検索セル範囲をA2~E100としています。10シートの中でデータが存在する最大行番号を指定して下さい。 証明用シートに抽出シートのセルデータを参照させるだけです

333non
質問者

補足

早速のご教授ありがとうございました。ただ職場のパソコンでしか操作できない状況(守秘義務で持ち出せない)で他の重要な業務で手がつけれない状況でしたが、ご指示の内容で作成しましたが未解決な部分があり、面倒とは思いますが、ご指示お願いします。 まずエクセルバージョンは2007で作成しています。ただ2010のパソコンと混在していますが、私のパソコンは2007です。 住所シートはA列は番号で1から最大100までB列は略号ですが使用する気はなしC列は会社や個人の名称 D列はその住所 E列は特記事項という構成で地域別に個別名を付けて16シートあります。 証明書は住所がD13 氏名はD14に存在し、ここに住所シートの任意の住所、氏名を飛ばして印刷するというのが今回の相談です。 以前は住所シートと証明書が1対でしたのでVLOOKUP関数で証明書シートに検索欄を設けて住所シートから飛ばせましたが、各々10を超えるシート数となり、できなくなりました。 ご指示とおり(1)抽出用シートを作成(2)B1にVLOOKUPで検索する検索ワード欄を作成しましたが、具体的にここへはどういうワードを入れるのでしょうか?(3)検索シートA列にはシート名として住所シートを16シートの北海道から九州までの存在する住所シート名を入れましたが、間違いないですか?(4)B4式は実際の住所シート数16をB4から16までコペピしました(5)添付画面のDからG列の検索1から4まではどういう設定で作るのでしょうか? ここまで作成し、検索ワードに検索シートのA列の住所名たとえば北海道といれても全部0となります。 さらに語句ですが証明用シートに抽出シートのセルデータを参照させるだけとは、具体的にどうすることでしょうか?この参照の意味がよくわかりません。 関数でやるしかない状況でそれを理解するため解読本を買い込んで読んでいますが、うまくいかずすがるような思いですので、あまりにレベルの低い相談でしょうが、よろしくご指示お願いします。

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

具体的に何をどうしたいのかイマイチ言葉足らずですが、たとえば「(一意の)番号」を入力し、該当する氏名・住所を取ってくる(略号は要らない)とかで良いんでしょうか? 「簡単」な方法から「メンドクサイ」方法まで、やりようは幾らでもあります。 たとえば.. >同じ形式のものが、10シート以上あります 「集約」シートを1枚用意 1枚目の住所録シートの100行をそのままコピー、集約シートの1行から100行までにリンク貼り付け 2枚目の住所録シートの100行をそのままコピー、集約シートの101行から200行までにリンク貼り付け  : 10枚目の住所録シートの100行をそのままコピー、集約シートの1001行から1100行までにリンク貼り付け 以上の準備を一度アナタが手を動かしておけば、あとは証明書シートには、ごく簡単な数式で =IF(A1="","",VLOOKUP(A1,集約!A:D,3,FALSE)) とか、ご利用のエクセルのバージョンも不明のご相談ですが =IF(A1="","",IFERROR(VLOOKUP(A1,集約!A:D,4,FALSE),"NA")) とかの数式を記入しておけば、出来上がりです。

関連するQ&A

  • エクセルでこんな抽出は可能ですか?

    関数を使用して抽出したいと思います。 まずシート1とシート2を使います。 シート2には住所録などの内容が5000件くらいあるものとします。 その住所録には「〒」「住所」「電話番号」「氏名」などのフィールドを作っておきます。 そして、シート1には 例えば「氏名」という欄をA1に書き、B1の空白のセルに「山田」と入力をすると、「山田」が含まれるものをすべて表示したいと思います。 このすべて表示とういうのは「山田」を含む「氏名」だけ表示されるのではなく、「〒」「住所」「電話番号」「氏名」を表示したいのです。 オートフィルタやフィルタオプションは極力使用したくないので、関数で出来ないものかと考え中です。 また、抽出結果を表示する欄はシート1のA3あたりからお願いします。 こんな文書で意味が分かった方、よろしくお願いします

  • Excelにおけるデーター抽出

    Excelのシートに記載されている内容は次の通りです。 (1) セルA5~A60の間に1~56の昇順の番号 (2) セルB5~B60には氏名 (3) セルC5~C60には○、×、△の記号 このシートからC列が ○ の記号が付与されている者だけの氏名を別のシートのB7~B**の間に抽出するのですが、抽出したシートの行に空白ができないようにするには式をExcel関数で作成することは可能でしょうか? 若し、不可能でしたらマクロで行う場合のプログラムを教えて下さい。

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

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

  • エクセル複数シートからの検索

    部門別住所録が、部門毎に別シートにあります。 各シートのデータは以下のように並んでいます。 社員番号、氏名、住所、電話番号、生年月日。 この状態で、任意の項目(例えば氏名)を指定して社員番号とか電話番号など一行分のデータを検索する方法(関数の使い方)を教えて下さい。 INDEX関数とMATCH関数でやってみましたが、シートを跨ると上手くいきません。 よろしくお願いします。

  • EXCELの表からの「抽出」、「転記」

    1.元帳(Sheet8)から転記した「金融機関向け提出資料」(Sheet10)があったので、こ れからまた転記して組単位で「No.」と「氏名」の表(Sheet5)を作りたいので  す。 2. 添付画像「金融機関向け提出資料」(Sheet10)において、9組を例にとると、No.7、No.16、No.17、No.23の、以下続  く。これ等をSheet5の表に抽出していきたいのです。Sheet5の構想は、1行目:組 番号、2行目は項目名:No.(A2)と氏名(B2)、3行目~27行目(25名分)に各  データを 抽出、転記する。一組分の範囲はA1:B27です。 3.組の数は9組ありますが、一組だけその方法を教えて頂ければ結構です。 4.尚、Sheet10のNo.は1~188です。Sheet10のG列に、組番号を転記しています。こ の組番号はSheet10では印刷領域外です。 5. Sheet10からSheet 5に抽出し、転記した最初の人の(1)No.と(2)氏名をオートフィ ルで下にコピーすると、同じ組のNo.と氏名が表示されたら良いのですが・・・。 6.私はマクロが使えません。INDEX関数やMATCH関数は使ったことがあります。 元帳(Sheet8)からINDEX関数で「金融機関向け提出資料」(Sheet10)に転記して います。 7.最初から9組分の表を作成しておいて、そこにデータを順次転記していく方法もあ るのかも知れません。 8.Sheet10の一部を「画像添付」します。 以上ですが、よろしくご指導ください。

  • excelのデータ抽出?検索?についておしえてください。

    excelのデータ抽出?検索?についておしえてください。 エクセル2003で sheet1に次のようなデータがあります。   A列  B列  C列     D列  E列 ・・・ 1 組   番号  氏名     古典  現文 ・・・  2 1   1   青木 優    3 1   2   池田 洋子   4 1   3   植村 美紀   ・ ・ sheet2には1組の成績が sheet3には2組の成績が入っています。 クラスによって科目が違います。 この「氏名」と1行目の「科目名」が一致するデータを 他のシートから読み出してくる関数がありませんでしょうか 青木さんの古典を1組のシートから読み出すといった感じです。 説明がへたで 申し訳ないのですが うまく検索ができなくて困っています。 ぜひ くわしいかた教えてください。 どうぞ よろしくおねがいします。

  • エクセル住所録の組み換え方

    『エクセル』の住所録に関する質問2件です。よろしくお願いいたします。 <質問1> 住所が市区町村から入力されている都道府県別の複数のシートにあります。市区町村のセルに都道府県を加えて、「○○県△△市××」というセルにし、複数のシートをひとつの表にまとめたいのですが、効率が良いやり方を教えてください。 <質問2> エクセル2行で1項目をあらわしている表があります。たとえば、A1=会員番号、A2=氏名、B1=電話番号、B2=住所、ということです。 これを、1行に置き換えたいのですが、良い方法をおしえてください。 A1=会員番号、B1=氏名、C1=電話番号、D1=住所、ということです。 異常、よろしくお願いします。

  • エクセルVBA 検索機能を利用したデータ抽出方法

    ■主な目的 顧客の住所データベースのうち 市町村の合併等により変更されたものを 抽出します。 自分で考えたのですが行き詰りました。 誰か助けてください。 ■エクセルファイルのシート構成と処理方法 シートは3枚あります。 (1)sheet1 旧住所一覧 A列に旧住所の一覧が約60行にわたって記載されいてます。 西白河郡表郷村 大野郡和泉村 神崎郡神崎町 ・ ・ (2)sheet2 顧客データベース A列に顧客コード、B列に顧客名、C列に郵便番号、D列に顧客住所が約7000行にわたって記載されています。 (3)sheet3 抽出用シート sheet1のA1の値をsheet2のD列を対象として検索をかけ、該当した行(A~D列)をそのままsheet3にコピーし、あとはそれを繰り返します。 私のやり方は cells(行、列)、ForNext、seach関数等を組み合わせてやろうとしましたが、serch関数のセル位置取得がRange("行列")形式になり、それをどうやったらsheet3に行をA~Dまで丸ごとコピーできるのかわからず降参しました。 よろしくおねがいします。

  • エクセルで抽出なんですが。。。

    エクセルで抽出なんですが。。。 1つのファイルにAというシート Bというシート があります。 それぞれのシートの中に共通した受注番号を振ってる列があります。 Bのシートでその受注番号の行に確定した金額をいれたら、 Aのシートにも反映させたいのですが、 どういう関数をつかえばよろしいでしょうか? 場所は決まっていませんので、 共通の項目(受注番号)を条件に使いたいと思ってるのですが・・・ すみませんが、よろしくお願いします。

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

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

専門家に質問してみよう