• 締切済み

エクセルで2つの表を見比べる

上手く表現出来ずに変なタイトルになってしまいました… sheet1に顧客全員の名簿があるとします B列には顧客の氏名、C列には会員のランク(3種類のランク分けがしてあります) という名簿です。 sheet2にはある商品を購入した購入者名簿があります。 D列に顧客の氏名、その他の列には住所などが入力してあります。 (順番は購入日順なので、バラバラです。) sheet2の購入者名簿に名前のある顧客の氏名を sheet1の顧客全員の名簿から探し、C列の会員ランクを 『上得意』と変えたいのですが関数などを使って 簡単に出来る方法ってありますか? 会員数が6000名、商品購入者が200名くらいと 数が多いので1件1件検索すると時間がかかります… VLOOKUP関数なんかで出来たかなと思ったんですけど 勉強したのがだいぶ前なのですっかり忘れてしまいました。 詳しい方、ぜひいい方法を教えてください。

みんなの回答

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

>B列には顧客の氏名、C列には会員のランク(3種類のランク分けがしてあります)という名簿です。 顧客氏名しか情報がないので,氏名だけで顧客を特定できる(同姓同名は無い)とします。本来ならお客様番号など,お客様を特定できる情報を用意すべき(もしくは単に書いてないだけでちゃんとあるならそちらをつかう)ところです。 方法1:関数を使いたいなら シート1のD列に D2: =IF(COUNTIF(Sheet2!D:D,B2),"上得意",C2) と記入して上得意の客は上得意に更新,そうでない客はC列のまま継続させます。 D列をコピーし,C列に「形式を選んで貼り付け」で値のみ貼り付けて上書き更新します。 更新が終わったら,D列は消去します。(もちろん次回の仕事のためにそのまま残しておいても構いません) 方法2:お薦めの方法ですが,皆さんには大概人気がない まず,「関数を使ってC列のデータを更新する」方法はありません。 C列を直接更新したい場合,ご利用のエクセルのバージョンが不明ですが Excel2003までを使っているならデータメニューのフィルタから「フィルタオプションの設定」を使い Excel2007以降を使っているならデータタブの詳細設定を使い シート1の氏名列をリスト範囲(対象範囲)として設定 シート2の氏名列を検索条件範囲として 絞り込みを行い,絞ったC列をまとめて選んで「上得意」に書き換えます。 #ご利用のエクセルのバージョンに応じて「このように操作します」の手順が違います。ご相談投稿時には,ご利用のソフト名は勿論,ご利用のソフトのバージョンまでしっかり明記することを憶えてください。 操作例: http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-filter2.html

関連するQ&A

  • EXCELで他のシートのデーターを反映させるには

    office2000のEXCELです。 仮に「シート1」と「シート3」があります、「シート1」にはA列(氏名)B列(年齢)とします、 「シート3」は会員名簿で氏名(C列)と年齢(D列)が書かれています(60件位)。  「シート1」のA列(氏名)をクリックすると「シート3}の名簿が表示されて氏名(c列)をクリックする事により「シート1」のA列(氏名)B列(年齢)が入力できるような仕組みは可能でしょうか。   リスト入力・コンボボックス等チャレンジしてみましたが何れもうまくいきませんでした。 初心者にはむりでしょうか? 宜しくお願いいたします。

  • エクセルです。至急教えてもらえませんか!!

    はじめまして。よろしくお願いします。 エクセルである名簿を作っています。 <sheet1> A列に会員番号、B列に氏名、C列に住所・・・・というような表にしています。 <sheet2> sheet2のあるセルに<sheet1>の会員番号を入力するとその会員のデータが決められた様式ででてくるようにしました。 今から、この会員全員分のデータを全て<sheet2>の様式で印刷したいのですが、手作業で会員番号を入力して、印刷をしてというやり方だとかなり時間がかかりそうです。また他にも今から仕事があるので、何かよい方法を教えてください。マクロでできるのだろうとは思うのですが、昔使ったことが少しあるだけで全然覚えていません。よろしくお願いいたします。 *会員番号順に並んでいますが、数はとんでいます。例えば、1、5,19,28,29,50・・・・という具合です。

  • Excel の表

    同窓会の幹事をしています。 シート1に名簿を作成しています、A列からG列まであり、B列には氏名を記入しています、G列には出欠(○、×)を記入するようにしています。 そこで質問です シート2に B列には出席者の氏名、C列には欠席者の氏名、D列には出欠の返事がまだ来ていない氏名 が表示されるようにしたいのです。 返信のはがきが届き次第シート1に ○、×を記入するとそれがシート2に反映され、常に 出、欠、未 の氏名が表示されるように出来る方法は有りますか? もしありましたら教えてください。 Excel 2002 です

  • エクセルの再計算

    再計算で処理スピードがかなり遅くなってしまいました。 シート1のA列に顧客番号B列に顧客氏名を入力しています。現在58000名が入力されております。これからも月に100名程度増加していきます。 シート2にシート1を反映させています。 シート2のA列に今日の日付を入力しB列に顧客番号を打ち込むとC列にシート1の氏名が表示されます。 しかし数が多いもので番号を打ち込みエンターキーを押すと再計算が始まり能率が上がりません。 このような状態を回避する方法がありましたなら教えていただきたいのですが。

  • エクセル:このような「予定表」を作りたいのです。

    よろしくお願いします。 ◆シート1に5分単位で次のような入力を行います。 職員氏名 顧客氏名 訪問予定時間 終了時間 備考 ------------------------ 山田太郎 鈴木一郎  7:05     8:35   ×× 海川三郎 ○○    ○:○○    ○:○○ 山田太郎 佐藤次郎  9:00    10:15   ▲▲ 川波五郎 ○○    ○:○○    ○:○○  山田太郎 田中六郎 13:00    14:25   □□  ◆シート2に関数でつぎのような表示を出したいのです       7:00 7:30 8:00 8:30 9:00 9:30 ・・・ ------------------------ 山田太郎  7:05~8:35    9:00~10:15・・・         鈴木一郎    佐藤次郎 ・・・         ××       ▲▲  ・・・ ------------------------ ◆シート2の時間もセルの列を5分単位で区切ってセル幅を短くし、該当時間に条件付書式で色をつけるイメージです。 ◆職員数数十名、顧客数数百名で曜日別に作成するため、重くなるのは仕方ありませんが、シート2の作成するための「ヒント」がほしいのです。関数を主体に作成いたしたく、四苦八苦したのですが、どうもうまくできません。ご指導をよろしくお願いいたします。

  • エクセルで初心者で困っています。こんな事できますか?

    ・シート1のA列には「装置番号」、B列には「装置名」、C列には「顧客名」、D列には「住所」、E列には「電話番号」が入っています。「装置番号」と「装置名」は重複することが無いように設定されています。因みにデーター数は5000件位です。   このときシート2のA1に「装置番号」、B1に「装置名」を入れるとシート1の該当する行の「顧客名」、「住所」、「電話番号」がシート2のC1,D1,E1に自動的に出るようにしたいのですがなかなか出来ません。  本も買ってきて、関数を勉強中ですが旨く行きません。又、エクセルで難しい様なら、他の方法も教えていただければ幸いです。よろしくお願いします。

  • エクセルの関数の質問です。

    エクセルの関数の質問です。 1日の案件数を求めるのは簡単ですが、同顧客が1日に何度も混在する場合の1日の顧客数の 求め方がわかりません。 種類の数え方の応用編でしょうか?どなたか教えてください! エクセルでsheet1のA2からA400までが顧客番号(文字列。空白含む。)、B2からB400までが日付(1日から31日)(1から31の数値。空白含む。)、sheet2のA2からA32までが1日から31日まで、のとき、sheet2のB2からB32にその日ごと(B2ならA2(1日))の顧客数を出す数式を教えてください。 ※sheet1の顧客番号、日付は、同じ顧客番号、同じ日付も含まれ、混在しています。 ついでにsheet2のC2からC32までに1日の案件数も出したいです! 例) sheet1 A  B 05 1日 05 1日 03 1日 01 1日 01 2日 01 2日 06 2日 05 2日 03 2日 sheet2 A   B   C 1日 3名  4件 2日 4名  5件 3日 0名  0件 4日 0名  0件 sheet2のBとCを数式にしたいです。

  • エクセルのデータベース関数又はマクロを教えて

    エクセル関数、マクロ勉強中です。シート1の各列には顧客のランク値があります。その下各行にはランクに応じた商品群の価格を記入してあります。シート2、3、・・・は注文伝票で、それぞれ顧客ランク欄を設けています。ランク欄に顧客のランクを入力したとき、ランクに応じた商品群の価格を単価と表示したセル以下の行に表示したいです。データベース関数の組み合わせではどうすれば良いのか、又はマクロ設定で出来るのか、又はVBA記述で出来るのかVLOOKUP関数、オートフィルター等試してみましたが満足できる結果が出ませんでした。教えてください。

  • エクセル縦横検索

    エクセルの縦横検索で関数がわからず何日も悩んでいます。。 <Sheet1> は商品コード・ランクごとの単価表です。   A列    B列     C列   D列    E列  F列 1  商品コード 商品名  Sランク Aランク BランクCランク  2  00010001 AA-1111 10.00 11.00  13.00 14.00 3  00100022 AB-222  11.00 12.00  15.00 16.00 4  00200033 BDB-123 20.00 21.00  22.00 23.00 5  00300033 CA-111  9.00 10.00   11.00 12.00 …  ・・・ 10  01000033 OP-100   30.00 31.00  32.00 33.00 11  02000123 TD-358  10.00 11.00  12.00 13.00   以下5000行ほど続きます。 <Sheet2>は得意先ごとのランク表です。 商品群は商品コードの頭2桁目と3桁目(00、01等)でランクが決まっている為、1行目に2桁の数字を入れています。   A列        B列             C列   D列   E列 … 1                            00   01    02    10  20  2  得意先コード 得意先名/商品群  AA  AB   BDB   OP TD  3  11111    あああ            S    A     C    B  C 4  11222    いいい            A   C     B    S  A 5  12333    ううう              C    S      S    A   B 6  12444    えええ            A   A      B    C   C 7  12555    おおお            B   B     C    S  B …  ・・・   横に50列ほど続きます。 <Sheet3>は入力画面です。    A列       B列      C列   D列 1   得意先コード 商品コード   ランク  単価 2   11222     01000033    得意先コードと商品コードを打ち込むとC2にランク(例だとS)が出るようにしたいのですが、 VLOOKUP($A$2,Sheet2!,A1:Z100,MATCH(C2,Sheet1!A1:A5000,C1:F1)) とすると、アルファベットは出るのですが、ランク表どおりに出ません。01と10が同じ数字として認識されてしまいますし、2桁目と3桁目を認識する関数がわからないので、ここで止まっています。 ランクが出たら、隣の単価を求める関数もついでに教えていただけたらさいわいです。 よろしくお願い致します!

  • VLOOKUP関数:別シートにある参照範囲が変動する場合

    スポーツクラブで学童会員の名簿を作成しています。 【目的】 VLOOKUP関数を利用して、シート1「名簿」のA列に会員番号を 手入力すると B列に学年、C列に氏名が各々自動入力されるようにしたい。 【設定】 ・シート1を「名簿」とし、  A列を会員番号、B列を学年、C列とD列を結合して氏名としました。 ・シート2を「参照データ」とし、  A列を会員番号、B列を学年、C列とD列(結合を解除)を氏名と  しました。 ・シート2の1行目はタイトル行とし、データが入力されているのは  2行目からです。 ・別シートのデータを参照するため、シート2のデータが入力されて  いる範囲に「参照範囲1」という範囲名をつけました。 【状況】 現在設定している数式は B2=VLOOKUP(A2,参照範囲1,2,FALSE) なのですが、以下の場合は「参照範囲1」で設定した範囲とは 異なる範囲のデータを参照しなければなりません。 ・入会者がいる場合:データを追加するため、行が増える ・退会者がいる場合:データを削除しブランクを解消するため、  行が減る 【質問】 上記状況の場合、VLOOKUP関数に加えてどのような関数を使用すれば 別シートにある参照範囲の変動に対応できるのでしょうか? 会員が増減するたびに、新たに参照範囲を設定し範囲名をつけ直す という作業は避けたいのですが・・・ ご教示いただけますよう、何卒宜しくお願い申し上げます。

専門家に質問してみよう