• 締切済み

エクセルでのマッチング

「見込客」シート A列:担当者名 B列:電話番号 C列:メールアドレス 「受注」シート A列:担当者名 B列:電話番号 C列:メールアドレス これをマッチングして、見込客からの受注があったかをチェックしたいので、 「結果」シートに、マッチした結果のみを抽出する、ということは可能でしょうか? 今は、「結果」シートの各列に =VLOOKUP(見込客!A2,受注!A:A,1,FALSE) のようにしていますが、エクセルがめちゃめちゃ重くて使いづらいのです。 マクロなどは設定方法もわかりません。 よろしくお願いいたします。

みんなの回答

回答No.6

検索値に名前は使用しない方がいいと思います。 電話番号のみで良いと思います。 電話番号とメアドを&でつなぐのも良いと思います。 D列に作業列を入れるならE列に「居た」でも何でも 目印を入れて、そこを表示させる関数を入れればよいと思います。 軽くするには計算方法を自動ではなく 手動にすればOKです。 ただし、最後に計算させる「F9押下」時には 少し時間が掛かることを計算して実行してください。

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 以下の様な方法は如何でしょうか。  まず、適当な列(例えばSheet4のA列~C列)を作業列として使用します。  そして、Sheet4のB2セルに次の数式を入力しておきます。 =IF(COUNTIF(受注!A:A,見込客!A2)=0,"",ROW())  次に、Sheet4のA2セルに次の数式を入力しておきます。 =IF(B2="","",COUNT(A$1:A1)+1)  次に、Sheet4のC2セルに次の数式を入力しておきます。 =IF(ROW(A1)>COUNT(A:A),"",VLOOKUP(ROW(A1),A:B,1,FALSE))  そして、Sheet4のA2~C2の範囲をコピーして、同じ列の3行目以下に貼り付けておきます。  次に、「結果」シートのA2セルに次の数式を入力しておきます。 =IF(Sheet4!$C2="","",INDEX(見込客!A:A,Sheet4!$C2))  そして、「結果」シートのA2セルをコピーして、「結果」シートの結果を表示させる範囲に貼り付けておきます。  すると、「受注」シートに同名の担当者名がある、「見込客」シートの内容が表示されます。

回答No.4

エラーチェックをはずしたらどうでしょうか 「ツール」→「オプション」→「エラーチェック」のタブの中の 「バックグランドでエラーチェックを行う」のチェックを外す スクロールするたびに、セルに青い三角がぱらぱらとした記憶があり、それ以来、エラーチェックははずしています。 計算の矛盾とかは、自分で、チェックすれば、、、と思ってですが。

  • layy
  • ベストアンサー率23% (292/1222)
回答No.3

シート1つ用意 見込みシート全体を貼付け 空いている列に1 受注シート全体を貼付け 空いている列に2 上100件が見込みでフラグ1 下80件が受注でフラグ2 みたいになりますから フラグで並べたら上段見込み下段受注となる。 VLOOKUPやMATCH等使う前に構成を考えたら、全然難しくない。 IFとフィルタがわかれば良い。

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

VLOOLUP関数処理は結構速いのでこれ以上に速くはなんとも言えませんが以下の方法は如何でしょうか。 (1)結果シートで「フィルタオプションの設定」(操作はエクセルグレード不明ですので左キーワード検索して下さい) (2)指定した範囲を選択、リスト範囲欄に見込み客シート全体範囲(見込客!A:C)、検索条件範囲欄に受注シートのA列のデータ範囲(受注!A1:Axxx)、抽出範囲欄に結果シートのA1を選択→OK

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

担当者名がマッチングすればよいのか、担当者名と電話番号がマッチングすればよいのかなどによって対応も違ってきますが、わかりやす方法は作業列を作って対応することでしょう。 例えば見込客シートのD2セルには次の式を入力して下方にオートフィルドラッグします。 =A2&B2 この式では担当者名と電話番号の両方が一致する場合にマッチングがあるとした場合です。 受注シートでも同じようにD2セルには=A2&B2と入力して下方にオートフィルドラッグします。 その後に同じ受注シートのE2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(D2="","",IF(COUNTIF(見込客!D:D,D2)>0,MAX(E$1:E1)+1,"")) その後に結果シートのA2セルには次の式を入力してC2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(ROW(A1)>MAX(受注!$E:$E),"",INDEX(受注!$A:$C,MATCH(ROW(A1),受注!$E:$E,0),COLUMN(A1))) これで結果のシートには受注シートで見込客シートにある客のデータが表示されます。

関連するQ&A

専門家に質問してみよう