• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:【エクセルとメモ帳を照合したい】)

エクセルとメモ帳を照合してデータを抽出する方法

このQ&Aのポイント
  • エクセルとメモ帳に存在するデータを照合し、同じ電話番号のみを抽出する方法を教えてください。
  • エクセルのデータ(約5万件)とメモ帳のデータ(約2万件)を比較し、同じ電話番号のみを残す作業を効率的に行いたいです。
  • Kingsoftのspreadsheetsを使用しているのですが、エクセルとメモ帳のデータ照合を自動化する方法を教えてください。

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

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

>電話番号 元のエクセルに載ってた電話番号セルを選び、『数式バーに』具体的にどのように表示が現れるかよく確認します。セルの見た目の話をしてるんじゃないので、間違えないように注意してください。 電話番号ですから、たとえば 03-1234-5678 のように書いてあるかもしれませんし、あるいは 0312345678 のように数式バーにはなっているかもしれません。 あるいはもっと違う表示になっているかも?しれません。あなたのエクセルの「事実」を注意して調べて下さい。 次に、CSVをエクセルに持ち込んで、できたらサンプルとして見た目同じ電話番号のセルを見つけて、そちらを選んだ時には数式バーにどう表れるか、こちらも注意して調べます。 数式バーに現れる「具体的な記載内容」が、元のエクセルの電話番号セルの記載と「違っていたら」、それは同じじゃないので検査できません。 たとえば 0312345678 のつもりが 312345678 のように、アタマのゼロが飛んでたりしたら当然「違う内容」です。そういうのは「同じじゃない」ので、原則としてそのまま調べることはできません。 たとえば元のエクセルが 03-1234-5678 なのに、CSVから持ってきたのが 312345678 だったりしたら、こちらもやっぱり「違う内容」です。 あなたの元のエクセルと、CSVから持ち込んだ電話番号と、それぞれの「具体的な数式バーの中身の状態」によって、関数をどういう具合に工夫すれば良いのか変わります。 「補足」でちょこちょこっと思い付きで継ぎ足しても満足な結果は得られませんので、一回このご相談は解決で閉じて、あなたのエクセルの元の状態とCSVをエクセルで開いたときのそれぞれの数式バーの中身の具体的な様子を正しく情報提供して、ご相談を書きなおして改めて投稿してみて下さい。

その他の回答 (3)

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.3

> 因みにエクセルはkingsoftのspreadsheetsと使用中です この意味がイマイチ掴めないのですが・・ 両者は全く別のソフトですよ。 KINGSOFT社のスプレッドシートをお使いであるということで 話を進めていきます。 まずは、スプレッドシートの > (2)電話番号及び氏名・住所 のファイルに新規シートを追加します。 (既に白紙のシートがあるのであれば、それを使っても結構です。) 用意された白紙のシートに > (1)メモ帳に載った電話番号 を貼り付けましょう。 単純に「メモ帳で全てをコピー、スプレッドシートに貼り付け」と言う操作でOKです。 ここで重要なのが 「スプレッドシート側の“電話番号”」「メモ帳側の“電話番号”」のフォーマットが バッチリ同じでないといけない、と言うこと。 例えば ・スプレッドシートでは「011-111-2222」 ・メモ帳では「0111112222」だったり「011(111)2222」だったり してしまうと、これはもう整合のしようがありません。 あとは、スプレッドシート側の操作です。 どこでも良いので使っていない列に(添付図ではD列に入れています)   式:=COUNTIF(Sheet2!A:A,A2) として、全行にコピー・貼り付けしてやります。 COUNTIF関数に関しては別途お調べいただきたいのですが、 上記の書き方だと 「A2の内容に合致するセルが、Sheet2のA列にいくつあるか?」 を返してくれます。 つまり、合致するものが無い(メモ帳に無い)ものには「0」、 合致するものが在る(メモ帳にある)ものには「1以上」が返ってきます。 で、出来上がった表に対し「自動フィルタ」をかけてやります。 「データ」メニューから、「フィルタ」⇒「自動フィルタ」を選択すると、 各列の一番上のセルに「▼」がつきますので、 添付図で言うとD列(判定)の▼をクリック。 「(オプション)」を選択し、「0と等しくない」として、OK。 すると、「0以外(=メモ帳に存在する)のデータ行」だけが抽出されてきます。 その状態のまま、全セルを選択(Ctrl+A)し、コピー(Ctrl+C)。 新規シート(新規ファイルでもOK)に貼り付けて、余分であるD列を列削除してやれば、 お望みの「メモ帳の電話番号と合致する行だけのリスト」が完成します。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

>因みにエクセルはkingsoftのspreadsheetsと使用中です. ちょっと環境が違うので確認はできませんが。 ステップ1 メモ帳の内容をすべて選択、コピー 別途シートを準備しておいて張り付ける。 この段階で、各セルに電話番号が入りますか? 以下、仮にA列に電話番号が張り付けられたとして話を進めます。 ステップ2 エクセルのデータで空いている列に Countif関数を入れます。 =COUNTIF(Sheet2!A:A,A2) とか入れて、エクセルデータの電話番号が 張り付けたシートに存在するかどうかを調べます。 その電話番号があれば 1 なければ 0 です。 その式を、下までコピー ステップ3 オートフィルターを使って 結果が 0 の行だけ表示させます。 表示された行をすべて選択して、削除します。 オートフィルターを解除します。 これでご希望のデータだけが残ると思いますが、いかがでしょうか。

iaaiauaaoo
質問者

お礼

hallo-2007様 早速ご回答頂きましてありがとうございます* 先程ご案内の通りCOUNTIFを試みたのですが, メモ帳と同じ番号なのに0と表示されてしまったり, 2回やったら何故か違う結果になってしまいました… なのでよろしかったら原因をお教え願えますでしょうか?? 度々お手数おかけして大変恐縮なのですが, ご助言を宜しくお頼み申し上げますm(__)m

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

0.エクセルの元データをシート1に用意する 1.メモ帳のデータをシート2のA列にコピー貼り付ける 2.元データの電話番号がA列にあるなら、そのE列に   =COUNTIF(Sheet2!A:A,A2)   のように記入して、メモ帳の電話があれば関数が数を計算するのを確認する   キングソフトはエクセルじゃないので数式の書き方とか違いますが、COUNTIF関数はありますのでご自分で数式を作成してください。 3.オートフィルタを使ってE列を絞り込み、数字があった行を絞り込んでコピー、シート3に貼り付ける

iaaiauaaoo
質問者

お礼

keithin様 迅速なご回答どうもありがとうございます^^ 早速COUNTIFの関数で計算してみたのですが, メモ帳と同じ番号なのに0になってしまったり, 2回やって別々の結果になってしまいました^^; もし差し支えなければ何が原因かお教え頂けませんでしょうか?? 何度も恐れ入りますがどうぞ宜しくお願い致します.

関連するQ&A