教えて!gooグレードポイントがdポイントに!

エクセルでINDEX、MACTHでデータのすり合わせをしています。
リストAのA列とリストBをB列をマッチングさせて、合ったものには○を付けていますが、
じゃあ、合わなかったデータはどのように見付けたら良いですか?

もともと自分が作ったデータなら良いのですが、パソコンにうとい人が手打ちした
間違いが多いデータだと困ったことになます。
たとえば、リストA1000件 vs リストB500件で、
マッチした件数が、450件だとします。

では、マッチしなかった50件はどんな理由なのかを知りたいのです。

1.リストAにリストBのデータが無い
2.1.の逆
3.リストBは他人が適当に作ったデータで、
  スペースや、キーのスペルが違うなどでマッチしなかった場合
4.その他

これの検証は、ソートして順番に目で見ていけば、いずれどっちがどうなのか判明すると
思いますが、できれば関数であらかじめ分かる方法はないものか。と思っています。

分かる方、教えて下さい。
よろしくお願いいたします。

質問者からの補足コメント

  • こんな感じの表を作っています。
    データのシートは営業からのもので、本社で集計に使っています。
    しかしながら、営業からのデータは本社の持っている商品コードに合致しないものがあったり、
    コード自体に半角スペースが入っていたりして、アンマッチが出てきます。
    そこで、そのアンマッチがどういう理由なのかを解明するために、どのデータがマッチしなかったのかを直ぐに見つけ出せるようにしたいと考えています。

    一応、こんなようなシートを作っています。
    参考エクセルの画像を貼っておきます。
    上が本社側、下が営業側です。
    たとえば、B002は営業側に無いデータなのは、件数が少ないから分かりますが、
    件数が増えると、エラーの内容が何かいちいち調べてられませんので、直ぐに見つけ出せるように
    したかったのです。

    コードの打ち間違い等、たとえば、B002+半角スペース等合ったりします。

    「エクセルでマッチしなかったデータを見付け」の補足画像1
      補足日時:2021/09/16 00:30
教えて!goo グレード

A 回答 (5件)

C=IF(ISERROR(VLOOKUP(A2,B:B,1,FALSE)),"A→B×,","A→B〇,")


& IF(ISERROR(VLOOKUP(B2,A:A,1,FALSE)),"B→A×","B→A〇")
でどうでしょうか。
「エクセルでマッチしなかったデータを見付け」の回答画像3
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
こんなふうにするのですね。
勉強になります。

応用して使ってみたいと思います。
ありがとうございました。

お礼日時:2021/09/16 00:33

No.1の者です。



商品コードは、ローマ字+3桁の数字は決まっているのでしょうか?
それとも、文字の長さや、ローマ字なども、色々とあるのでしょうか?
    • good
    • 0

えっと…基本的に理由はどれも全て、マッチングしないから、ですよね。


リストAにリストBのデータがない(またはその逆)は、何かが間違ったからマッチングしなかったも含みますよね?完全一致以外はマッチじゃないんですから。
何かが1文字違うのと、似たデータが影も形もないのとはExcel君にとっては同じことです。

どこまでの合わなさ加減を知りたいのでしょうか?
・全く影も形もなく入力自体を見落とされていた
・どこかが微妙に違う部分一致のデータ
これを調べてどうしたいのでしょう?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

アンマッチの原因を見付けて、営業成績をきちんと反映させたいのですよ。

アンマッチを放置しては、営業側の成績や会社の利益も落としますから。

INDEX,MACTHでは、アンマッチはただのエラーとしか現れませんから、
少なくともどのデータがマッチしなかったのか、確認できるようにしたいのです。

そうすれば、入力ミスなのか、新しい商品コードなのか、ETC.
いろいろな考えがめぐらせることで、アンマッチからマッチへ
持って行けますよね。

こんなことを説明しないと分かって貰えない人は、
たぶん答えも出せないのでしょうけど。

お礼日時:2021/09/16 00:41

No.1の者です。



すみません、下記が質問だったようですね。
関数では、難しいと思います。
どれも、ミスマッチとしか出ないかと思いますので。。。

>1.リストAにリストBのデータが無い
>2.1.の逆
>3.リストBは他人が適当に作ったデータで、
>  スペースや、キーのスペルが違うなどでマッチしなかった場合
>4.その他

何か定義があれば、マクロなどではできるかも知れませんが、関数では
 難しいのでは?と思います。
マクロでも、かなり難しいかと思います。

・1.と2.は同じ意味だと思います。(何か違うのでしょうか?)
・マクロでしたら、スペースの有無でも判定はできると思いますが、スペル
 が違うとなると、難易度が急に上がるかと思います。
 それが2文字や、文字数の違いなどがあれば、更に。。。


今回の質問とはズレますが、入力する文字が決まっているなら、それしか
 入力できない様にするのが、今後は良いかと思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

自分で作っているデータなら、入力文字のルールは作ったりするでしょうけど、他部署が作るデータは、めんどうな事務作業でしかないので、
そんなに気を遣ってくれませんから、こちらの事務スキルで見付けてあげるしか無いのですよ。

お礼日時:2021/09/16 00:35

おはようございます。



逆に〇が付いていないのが、マッチしていないデータだと思いますが、
 その列をフィルターとかで、〇以外を表示すれば良いのでは?と
 思いますが、ダメでしょうか?

若しくは、Countif関数を使って、例えばC列にその結果を出す。
 同じようにフィルターで、結果が0を表示させれば、マッチしたデータ
 ではないというのが分かるかと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

教えて!goo グレード

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング