• ベストアンサー

エクセル 同じコードの人を表示させる

エクセルほぼ初心者です。いろいろ検索しましたが理解ができなかったので教えてください。 sheet1 A,B,C,D,E 販売店コード,販売店名,被保険者名,加入コース,保険料 11111,○○店,スズキタロウ,1コース,3500 11111,○○店,ヤマダジロウ,1コース,3500 11112,□□店,サトウイチロウ,2コース,4200 11113,△△店,タカハシサブロウ,4コース,6800 11113,△△店,タカハシハナコ,2コース,4200 11113,△△店,スズキイチロウ,3コース,5200     ・     ・     ・ といった感じで1000名ほどの入力があります。 sheet2に販売店コードを入力すると 販売店名、被保険者名、加入コース、保険料を全員分 表示されるようにしたいのです。 どのようにしたらよいでしょうか。お願いします。

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

  • ベストアンサー
  • suekun
  • ベストアンサー率25% (369/1454)
回答No.2

提示されているデーターベースは1行目が表題で(販売店コード・・・) 2行目から1000行まで実際のデーターが入っている物と解釈して説明します。 まず、COUNTIFで抽出する対象のデーターが何件あるか算出します。 仮に、その抽出先をsheet2のA1としましょう。 その下に該当するデーターが存在する行番号を該当分表示出来る様にします。 抽出したい販売店コードをsheet2のB1に記入します。 sheet2のA2には、 =IF((ROW()-1)<=A1,MATCH($B$1,Sheet1!A1:A1000,0),"") 内容は、集計した該当データー数とこの数式が入っている行の位置を 比較して、データーが存在するなら行番号を、存在しないなら 空白にする内容です。 行番号の取得は、MATCHで検索します。 但し、この関数は何件該当する値があっても範囲の中で一番 最初に該当した行番号しか返してくれません。 ですからA3からは、上のA2で返された行番号も使う事になります。 検出された行番号は検索範囲から削除して次の値を探しに行きます。 A3 =IF((ROW()-1)<=$A$1,MATCH($B$1,OFFSET(Sheet1!$A$1,A2,0):Sheet1!A$1000,0)+A2,"") 以降、下方向に必要なだけ(最大抽出される件数以上)コピーします。 これでA列の2行目から、コード番号がヒットしたデーターがある 行番号がすべて表示されます。 あとはその行番号から列を合わせてデーターを参照するだけです。 B2セルに =IF($A2<>"",INDEX(Sheet1!$A$1:$E$1000,$A2,COLUMN(A1)),"") これを下方向に先ほど同じ分だけ必要量を考えてコピーし そのまま右方向に、F列までコピーします。 範囲は最初に述べた様に仮に2行目から1000行目までで設定しているので この分は実情に合わせて変更して下さい。

rumiriya
質問者

お礼

エクセル初心者なので不安でしたが、コピペしただけですが綺麗に出来ました。説明もつけていただいて助かりました。 ありがとうございます。

その他の回答 (1)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

次の方法は如何でしょうか。 (1)sheet2のA1に「販売店コード」名称を入力、A2にコードを入力 (2)データ→フィルタ→フィルタオプションの設定 (3)指定した範囲を選択→リスト範囲欄にSheet1!$A:$E、検索範囲欄に$A$1:$A$2、抽出範囲欄に$A$5を設定→OK この(2)(3)の操作をマクロ記録しておけば、A2にコード入力した後、マクロ実行するだけで抽出できますのでお試しください。 但し、再抽出する場合、前抽出内容は削除してからマクロ実行して下さい。

関連するQ&A

  • エクセルどの関数を使えばいいの??

    エクセルでA、BC、D,Eの各商品の注文リストを作成しています。シートAには商品Aを購入したお店と店名コードが記入されています。シートBには300店舗すべての店名コードの一覧があり、シートAで購入したお店のコードからシートBの一覧リストに ○ をつけて 購入リストを作成したいです。どのような 関数を使えばよいか教えてください。関数でできるのかどうかも 疑問です。ネストを使えばできるでしょうか

  • エクセルでの計算式について

    まず、(1)のシートには支店コード・店コード・店名…等の一覧リスト があります。 (2)のシートにおいて、支店毎に表を作成し、B列に店コードを入力する と自動的にC列に店名がD列に実績がというようにしたいのですが、 どのようにすれば宜しいでしょうか。 私の考えだと まず、(2)のシートでA支店コードを入力すると(1)のシートでA支店の範囲を 選択、店コードを入力するとVLOOKUP関数 【VLOOKUP(B8,データ!$D$2:$W$3433,2,1)】で必要項目抽出。 っといった形が出来れば良いのかな…と思いながらわからないのです。 ※同じ店コードがいくつもあるので、先に支店毎に選択しなくてはならず。 (フィルタは使用しません。) 自分で考えた結果はこんな感じでしたが、良い案をご存知の方教えて 頂けないでしょうか。 よろしくお願い致します。

  • エクセルにて、CSV形式の顧客名簿から、女性で○○齢以上の○○月生まれの人だけ抽出する方法

    どなたかご教示下さい。 下記のようなCSVファイルをエクセルにて扱う場合、 例えば女性で30歳以上かつ8月生まれの人だけを抽出したい時(今年の8月で30歳になる人を含みます)、 どのようにすれば良いのでしょうか? 最初に私が考えたのは、生年月日が8桁の標準形式になっている事から、 このセルを(ここではE2とする)を一旦、3つの別のセルにそれぞれ、 =INT(E2/10000) =INT(MOD(E2,10000)/100 =MOD(E2,100) の関数にて、 生年・生月・生日に分解し、さらにそれで得られたセルの値を別のセルに、値貼り付けし、 そして性別と生年と生月のそれぞれのセルを対象に、データ → フィルタ の 「フィルタオプションの設定」にて検索条件を設定し抽出する方法です。 しかしこの方法では、生年月日セルの分割や値貼り付けなどの工数が必要となる事から、 できる事ならこの工数を経ずに、8桁の生年月日に対してダイレクトに生年・生月を判断し、 性別と合わせて条件抽出したいのです。 実際に対象となるファイルは約3万人のリストからの抽出となります。 何か良い方法はありませんでしょうか? よろしくお願い致します。 <ファイル例> 顧客番号,氏名,フリガナ,性別,生年月日,居住区 0001,山田 太郎,ヤマダ タロウ,男性,19600612,東京 0002,山田 花子,ヤマダ ハナコ,女性,19790806,東京 0003,鈴木 花子,スズキ ハナコ,女性,19820512,福岡 0004,鈴木 次郎,スズキ ジロウ,男性,19790725,福岡 0005,高橋 一郎,タカハシ イチロウ,男性,19701223,東京 0006,佐藤 二郎,サトウ ジロウ,男性,19900524,名古屋 0007,上田 花子,ウエダ ハナコ,女性,19690801,大阪 0008,坂田 次郎,サカタ ジロウ,男性,19590814,福岡 0009,中村 太郎,ナカムラ タロウ,男性,19790915,札幌 0010,中村 花子,ナカムラ ハナコ,女性,19860830,札幌

  • エクセルです。2つの異なるデータを自動で一つにしたいのですが

    お願いいたします。 エクセル初心者で、ただいま勉強中です。 一つめのシートにはいろいろなお店の名前が縦に入っています。 2つ目のシートには、そこで販売している商品名・価格・売価などのデータが入っています。 各お店では、すべてではありませんが、同じような商品を扱います。 また、お店や商品の種類は増え続けます。 現状 シート1、シート2をそれぞれVLOOKUP関数を使い、シート3にそのデータを移行し、それぞれのお店の売上げなどの計算をしています。 しかし、毎回、シート1のコード、シート2のコードをシート3に入れている為、非常に時間がかかっています。 そこで以下のようにできませんか? シート1のお店のデータとシート2の商品群のデータを自動で一つにまとめて、一つのコードを自動で作成してくれるような、そのようなことは可能でしょうか。 ほとんどの商品はほとんどのお店で扱います。 最初から、A列にお店、B列に商品、C列に価格、D列に売価などを入れた新しいシートを作ればよいのでしょうが、お店も増え、商品も増えていくと、非常に手間がかかります。 また、上記のようにシート3に2つのシートのデータを移行しなくてはいけません。その作業もコードを2ついれていくのは大変です。 例えば、 新しいお店ができ、さらに商品が追加になりました。 これを、私が手動でシート1にお店を追加     私が手動でシート2に商品名などを追加 ということをしただけで、新シート4に自動で、全部のお店に全商品が追加された、一つのコードを作成したいのです。 そうできれば、一つのコードをシート3にBLOOKUP関数を使い、簡単に移行できそうな気がしまして。 ぜひ、そのような自動でやってくれる関数などがありましたら、またはもっとよい方法がありましたら教えて下さい。 何卒、よろしくお願いいたします。

  • エクセルの関数について

    エクセルの関数についてです。 シート1の1行目には見出しが入っています。A列うには 店名  B列には  氏名(店長名) がはいっています。 A2には、 あ店   B2には、田中 太郎。 A3には、い店 B3には、小林 明子、   A4には、 あ店   B4には、田中 太郎。 A5には、う店 B5には、佐藤 誠 A6には、 あ店   Bには、田中 太郎。 と ランダムに入っています。  店名は、 あ店~を店まであります。 しかし 500行までランダムに店名はバラバラに入っています。 シート2に、A2:A42 と B2:B42 にあ店~を店まで 順番に 並べたいのです どうやってやったらいいか教えてください

  • Excel>他シートと文字比較後のリスト表示方法?

    始めて投稿します。 エクセルで以下のことを実施したいのですがどうしても できずに詰まっています。 知恵をいただけないでしょうか。 ------------------------------------------------ ※イメージ画像を添付しています。 「Sheet1の分類」の値と、「Sheet2の分類」の値が等しかった場合、 Sheet1の「コース名」箇所に、Sheet2で一致した分類の隣セルにある コース名のリストを表示したいのです。 その方法を教えていただけないでしょうか。 【Sheet1】    A    B      1 分類  コース名    2 1.A          ←BセルにSheet2と一致したコース名のリストを表示させたい 3 1.A 4 2.B 5  : 【Sheet2】     A     B     C 1 コード   分類    コース名 2  A     1.A     あ 3  B     1.A     い 4  C     1.A     う 5  D     2.B     か 6  E     2.B     き 7  :      :      : 出来たら、エクセルの関数だけでどうにかなるといいなと思っていますが、 マクロを使って解決するならばそれでも構わないと思っています。 アドバイスをいただけないでしょうか。 以上、よろしくお願いいたします。

  • エクセル:複数シートをまとめた集計方法

    店の売上管理のために以下のような表があります。 ・月ごとにシートを分けて集計(1月~12月のシート) ・各シートは、4列でそれぞれの列は、「都道府県名」「地区名」「店名」「売上」で構成。各店は「都道府県名」「地区名」「店名」の3つの情報で特定 ・行数(店数)は各月でまちまち(売上があった店のみ記載のため)ですが、数千以上は存在 ※従って地道にコピーして重複を消してという作業は非効率になってしまう。。 上記表の集計を1つのシートで次のようにまとめたいと考えています。 ・15列構成。(内訳は「都道府県名」「地区名」「店名」「1月の売上」~「12月の売上」) ・重複した行が無い。例えば1月、4月、12月と売上があった店も1行で管理したい。 以下のような手順を考えましたが、良い手順が思いつきません。そもそも実現可能かもわかっておりません。 他の方法も含めて良い案があれば教えてください。お願いします。 手順1:1月度のシートの「都道府県名」「地区名」「店名」をコピー 手順2:2月以降のシートに関しては、それ以前の月のシートには登場していない「都道府県名」「地区名」「店名」のみ追加でコピー 手順3:IFやVLOOKUP関数などを駆使して、各店舗毎の月間売上を各月のシートの売上値を参照して代入??

  • EXCELでVLOOKUPでデータを検索、引継ぎをしたい

    こんばんは。今、困ってます。Sheet1で、 店コード   商品コード   担当名 01      12345      たなか 01      12350      すずき 01      12355      たなか 02      12360      こんどう という元データが出来ていて、Sheet2で、 店コード   商品コード   担当名 01      12345 01      12348 01      12350 という別ファイルがあり、同じ商品コードの場合は、 Sheet1の元データから、担当名をひっぱりたいと思います。 そこで、担当名の欄に =IF((VLOOKUP(B1,Sheet1!B:M,2))="","",(VLOOKUP(B1,Sheet1!B:M,2))) と入力したんですが、 商品コードが 12346 でも 担当名に たなか と 出てしまったりするので、困ってます。 商品コードが一致しているときだけ、担当名を表示させるには、どうしたらよいのでしょうか? よろしくお願いします。

  • 【SQL 2つのコードが重複する場合、除外して集計する】

    色々試行錯誤していますが、データの出力が正しくできません。 本日、別の質問を記載したのですが、上手く質問がまとまっていなかったために再度投稿したします。 統括会社(テーブルA)ごとにお店の評価を出力したいと思っています。 ただ、上手くできなくて困っています。 ======================== 行いたいこと ======================== テーブルは3つあります。 テーブルAは統括会社のテーブル、Bは店情報、Cはお店の評価結果です。 行いたいのは、統括会社のグループコードごとに、統括会社傘下のお店の評価結果の合計を表示することです。 その際、期間(登録日)を指定して合計値を表示するといったことを行いたいです。 ただ、評価結果の合計を算出する際に、お店(店名コード)ごとに過去の評価結果に”○”がついた項目CDは、重複しない形で計算をしたいです。 例) 項目CD”1-1-1”で店名コード"AAA"の評価結果が"○"が2つ、店名コード"BBB"の評価結果が"○"が零(0)、店名コード"CCC"が"○"4つの場合 評価結果2として算出 ================= テーブル ================= ■テーブルA →統括会社のテーブルです グループコード グループ名 ------------------------------------- AAAA      ああああ BBBB      いいいい CCCC      うううう ■テーブルC →店情報のテーブルです 店名コード グループコード ------------------------------------- ららら AAAA せせせ BBBB ししし CCCC ■テーブルB →店の評価結果をもつテーブルです 項目CD  評価結果 店名コード   登録日 ------------------------------------- 1-1-1   ○     ららら   2000-10-10 1-1-1   ○     ららら   2007-12-10 1-1-1   ×     せせせ   2006-12-16 1-1-1   ○     ししし   2009-04-16 1-2-1   ○     ららら   2004-10-16 1-2-1   ○     せせせ   2007-01-16 1-2-1   ○     ししし   2003-12-14 1-2-1   〇     ししし   2007-12-15 ============== SQL ============== SQLは以下の通りです。 select テーブルA.グループコード,count(rtable.評価結果)、 from (select 店名コード,項目CD,評価結果,登録日 from テーブルC group by 店名コード,項目CD,評価結果,登録日 order by 店名コード,項目CD,評価結果,登録日) as rtable,テーブルA,テーブルB where テーブルA.グループコード = テーブルB.グループコード and テーブルB.店名コード = rtable.店名コード rtable.評価結果 = '○' and rtable.登録日 between '2000-01-01' and '2009-01-01' and テーブルA.グループコード ='AAAA' =============== 結果 =============== ■理想の結果(店名コードと評価結果が同じ場合は合計しない) グループコード 評価結果(合計) ---------------------------- AAAA       5 ■現在の結果(店名コードと評価結果が同じ場合も合計してしまう) グループ 評価結果(合計) ---------------------------- AAAA        7 何卒よろしくお願いいたします。

  • エクセルのマクロについて(オートフィルタ&シート分け等)

    管轄 担当者 店名 販売数 東京 佐藤  ●●店 100 東京 佐藤  ××店 120 東京 佐藤  △●店  50 大阪 山本  ▲△店  83 大阪 山本  △▲店  15 大阪 山本  ●△店  30 福岡 川田  ◎×店  68 福岡 川田  □×店  24 このようなデータ(約300行)がたくさんあります。 オートフィルタで各担当者(約20名)に分け、各担当者のシートを自動作成し、担当者の列を削除したいのですが、同じファイルにシートを追加する方法でよろしいのですが・・・ マクロ初心者でして、わからないことが多いです。 どなたかご存知の方お教え下さい。どうぞよろしくお願いします。

専門家に質問してみよう