• ベストアンサー

エクセル 

質問させてください。 人名を大量に処理しています。 Aというシートに大量の人名がリスト化されています。 今、新たに別のシートで人名のリストが手に入りました。 Aの人数ほどは多くありませんが Aに入っている人と入っていない人が入り混じっています。 新たな人名リストから Aというシートにいない人名のみを抽出したいのですが どうすればいいでしょうか。 Aのリストと新たなリストは形式が異なっていて 使用している列数も違います。 よろしくお願いします!

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.5

回答の混乱は >Aというシートに大量の人名がリスト化されています。 のブック名は? Aシートの具体的シート名は? >新たに別のシートで人名のリストが手に入りました 既にExcelのデータ化されているのか。紙に書かれたリストのデータでこれから入力するのか。多分電子データ化は済んでいるらしいが。 別のブックの(従って別の)シートのことか。 そのブック名は? そのデータが入ったシートの具体的シート名は? を書かないと具体的な回答が出来ない。 ーーー 関数でやるなら Match関数。 VLOOKUP関数 COUNTIF関数 などを使うべきと思う。 その際>Aのリストと新たなリストは形式が異なっていて だと意外に難しさがある場合があるので具体例的に説明が必要。 全般的に具体例が書いてないのは、まずい。 ーーー 抜き出すとなると作業列が必要になったりする。関数では難しい。 ーー >試してみましたが、うまくいきませんでした。 「Aシート」の部分には「シート名」+「シート」とすればいいですか? この辺は質問者はわかっている・類推できるものとして、回答者は回答する。 >「A:A」の部分でA列全体という意味ですか? と聞いたりしているところから、本来この課題は今の質問者には過ぎた課題でしょう。 ーーー >Bのリストには、名字の列しかないということです。 それでは、苗字だけで同じと思われる人を抜き出すのか。 ーーー 大量というが何人ぐらいか? ーーーー 一案は Aシートについて、名前にフリガナを負って見る。 Excelに直接入力してないデータだとフリガナが取れない場合がある。 A列  B列 加藤 カトウ 木村 キムラ 大石 オオイシ 清水 シミズ 小和田 オワダ 上記は私は、A列はメモ帳から張り行けた。 B列は下記コードを標準モジュールにコピペして実行。これで振り仮名が振れる。ただし導出された読みが完全ではない場合がある。例えばコワダと読む場合である。チェックと訂正が必要。 名前も入っていれば、名前にもフリガナが振られる。 Sub test01() d = Range("A65536").End(xlUp).Row For i = 1 To d Cells(i, "B") = Application.GetPhonetic(Cells(i, "A")) Next i End Sub 元データ氏名はA列、フリガナはB列に出す例ですから、実情で適当に修正のこと。 ーー これでフリガナ列でソートし印刷する。 その印刷シートを見ながら、同一人か1つずつチェックしていくのが、質問者には相応しいやり方なのでは。

ainain
質問者

お礼

私のレベルに合わせた解決方法を 詳しく解説いただき、ありがとうございました! はい、確かに私には難しい課題かもしれません。 エクセルの本を買ってこうようと決めたところであります。 質問する前に必要な情報を提供できるぐらいは 勉強しておかなければいけませんね。 回答、説明、誠にありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • kuma56
  • ベストアンサー率31% (1423/4527)
回答No.4

ひょっとして "Aというシート" っと言うのは、 Aというファイル(ブック)の Sheet1 と言う事でしょうか? さらに、 "新たに別のシートで人名のリスト" っと言うのも、別のファイル(ブック)の Sheet1 と言う事でしょうか? それならば、#2さんの回答にある式も =COUNTIF([A.xls]Sheet1!A:A,B1) と言う風にしてファイル名(ブック名)を [ ] で括って指定します。 A:A は、A列全体と言う事で合っていますよ。 Aというファイル(ブック)の Sheet2 に "新たに別のシートで人名のリスト" をコピーして貼り付けて作業をするなら、上記のファイル名の指定は必要なく#2さんの回答にある式でうまくいくと思いますが・・・??

ainain
質問者

お礼

同じブック内です。 でも、ブックが違ってもできるんですね。 >A:A は、A列全体と言う事で合っていますよ。 なるほど、わかりました。 ありがとうございました!!!!

すると、全ての回答が全文表示されます。
回答No.3

こんにちは 新たに入手したBシートの中から既存のAシートの中にない 名字を取り出したいということでよろしいでしょうか? Bシートを基準にして、Aシートを検索する形で処理します。 前提としてAシートのB列に名字が入っている、BシートのA列に "2行目から"名字が入っているとして、BシートのB列の2行目に、  =MATCH(A2,Aシート!B:B,0)    と入力して、最終行までコピーします。 ※Aシート!B:BはAシートのB列全体の参照です。 そうすると、Aシートに存在しない場合#N/Aと表示されます。 A列に存在する場合は、『検索の結果一致した行の数値』が表示されます。 後は、オートフィルターを使って#N/Aで抽出すれば、Aシート に存在しない名字を抽出できます。 以上、ご参考まで

ainain
質問者

お礼

>新たに入手したBシートの中から既存のAシートの中にない 名字を取り出したいということでよろしいでしょうか? 名字だけではないんですが 参考になります! うう…難しそうですね。 でも、やってみます!ありがとうございました!

すると、全ての回答が全文表示されます。
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

COUNTIF関数が簡単でしょう 元の人名リストがAシートのA列に入力されているとします また新しいシートではB列に人名が入力されているとします。 新しいシートで空いている列の1行目に  =COUNTIF(Aシート!A:A,B1) と入力して、下方向にコピーします。 するとAシートに同じ名前があると「1」以上の数値が入ります。合致する名前がないときは「0」になります。 あとはオートフィルタで「1」以上の数値の行だけを表示させて、表示された人名をコピー→Aシートに貼り付ける方法ではいかがでしょうか

ainain
質問者

お礼

早速のお返事ありがとうございます。 試してみましたが、うまくいきませんでした。 「Aシート」の部分には「シート名」+「シート」とすればいいですか? 「A:A」の部分でA列全体という意味ですか? 数式を入力したあと 「間違っています」や「値の変更Aシート」といって なにやらファイルを選択するような画面が出てきます。 何が間違っているのでしょう…。

すると、全ての回答が全文表示されます。
  • bari_saku
  • ベストアンサー率17% (1828/10269)
回答No.1

色々方法はありますが、 >形式が異なっていて この部分を詳しく説明して頂けないと、的確な回答はつきづらいと思います。

ainain
質問者

補足

失礼いたしました。 どちらもエクセルファイルなのですが Aのリストには 国名、名字、下の名前、所属、フルネームなどの列があり Bのリストには 名字の列しかないということです。 よろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A