[[20050118114513]] 『データの照合』(ありんこ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『データの照合』(ありんこ)

教えてください。
2シートに、名前、住所、電話が入力されているとします。
2シートのデータがあっているかを照合するにはどのようにしたらいいでしょうか?


1シート

氏名      住所
渡辺太郎  東京都八王子市片倉町・・・

2シート
渡辺太朗  東京都八王子市片倉町・・・・

この場合だと、たろうという感じが違うということをエクセルでチェックしたい!


 各シートのデータはどのように対応しているのでしょうか?
 例えばシート1のA1とシート2のA1を比較するとか・・・
 シート1とシート2のデータがばらばらに配列されているなら何らかの方法でデータを特定しないといけませんね。
 (sato)


 データはA列に氏名、B列に住所という感じで入っています
 If関数の場合だと、1シートのA1 2シートのA1という比較しかできませんよね
 となると、1シートのA1に入っているデータと2シートのA3に入っているデータ
 が一致してるかというのを関数を使って処理するのは難しいですか? (ありんこ)

 「1シートのA1に入っているデータと2シートのA3に入っているデータ」の比較はIF関数でもできますよ。
ただ問題は、たくさんあるデータを比較する場合、同じ順番で並んでいるのかどうかというということなんですけど。
(sato)


というと、下記のようなことはできるということですか?

 
シートA              シートB

    A   B          A      B 

 1    名前  住所        1 名前    住所
   
 2  富士太郎 東京都小金井市   2 富士華子 神奈川県川崎市  

 3  富士華子 神奈川県川崎市   3 富士太郎 東京都立川市

というよりも同じ行、列においてIF間数をつかって比較すれば照合できるということ
ですよね。
但し、条件的には上記のように順番が違うと照合ができないということですか?
すみません、わかりづらくて  (ありんこ)


 できますが、どのデータとどのデータを比較するかをエクセルに教えてやる必要がありますね。
 例えばシートAの富士太郎の住所と、シートBの富士太郎の住所が同じかどうかというようなことはできます。

 上の例の場合、シートAのC1に、
 =IF(A2=VLOOKUP(A2,シート名!$A$2:$B$3,2,FALSE),"","違います")
 のような式を入力して下にコピーすると、
 C1には「違います」と表示され、
 C2にはなにも表示されません。

 ただし、住所、氏名とも後の空白や数字の全角・半角など完全に一致していることが条件ですが。

 (sato)

 SheetA
 名前	  住所		SheetBを検索
 富士太郎	 東京都小金井市	3 行目の住所が異なる_○
 富士華子	 神奈川県川崎市	2 行目に合致_◎
 富士三郎	 東京都町田市	4 行目の名前が異なる_○
 富士都子	 千葉県銚子市	該当するものを見つけられません_●

 SheetB
 名前	 住所
 富士華子	 神奈川県川崎市
 富士太郎	 東京都立川市
 富士二郎	 東京都町田市
 富士京子	 神奈川県横浜市
SheetAのC2セルに
=IF(ISNUMBER(MATCH(A2,SheetB!$A$1:$A$10,FALSE)),MATCH(A2,SheetB!$A$1:$A$10,FALSE)&IF(B2=VLOOKUP(A2,SheetB!$A$1:$B$10,2,FALSE)," 行目に合致_◎"," 行目の住所が異なる_○"),IF(ISNUMBER(MATCH(B2,SheetB!$B$1:$B$10,FALSE)),MATCH(B2,SheetB!$B$1:$B$10,FALSE)&" 行目の名前が異なる_○","該当するものを見つけられません_●"))
として、下方コピー。  電話に関しては、応用してみてください。 (sin)


住所録のデータ照合をしたくて、検索をしていた所、こちらがヒットしました。 

上記のsinさんの式でなんとかできそうなのですが、式について、質問です。
 
この式の"ISNUMBER"は何故つかうのでしょうか? 

関数初心者のため、わかりません。

どなたか、ちょっと解説していただけると助かるのですが・・・。
基本的な質問ですみません。


 レス付けた記憶が無い・・・、と思っていたら、2005年11月のものだったんですね。
ぼうれいか!\○ と思ってしまった。

 上のMATCH関数において、A2の値がSheetBのA1:A10の範囲内で、完全一致するものが無い場合は、
『そんなもんないでぇー』っと、エラー値#N/Aが返されてしまいます。
エラー値が返ると、基本的に最終的な計算結果が、そのエラー値となります。
 上の式では、無い(#N/A)場合には、B2の値をMATCH関数で検索させるという式なので、
IF関数の条件(論理式)をISNUMBER関数で判断させ、
真(TRUE)の場合は、TRUEの場合の処理を、偽(FALSE)の場合は、FALSEの場合の処理をさせています。
 ISNUMBERの代わりにISNA等を使う事も出来ますが、ISNUMBERの方が好きなのでしょうね。。。
 EXCELヘルプで、IF関数、MATCH関数、IS関数(ISNUMBER関数やISNA関数などが含まれます)も調べてみてください。
 こんなんでは、説明になって無いかもしれませんが、分りますかぁー???
(sin) 質問・回答は勿論、お遊び で書き込む場合には、HNのご記入をお願いしまーす。

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.