[[20040124225117]] 『2つのシートのデータを比べて結果を出したい』(のり) ページの最後に飛ぶ

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

 

『2つのシートのデータを比べて結果を出したい』(のり)

Excelで作成された2つのシート(価格表/商品名・価格)をくらべて、
@商品名がシートAにはあって、シートBにはないもの
A商品名がシートBにはあって、シートAにはないもの
B商品名は同じでシートAとシートBの価格が違うもの
を検索し、フラグを立てたいのですが、どのような関数を使えばいいのでしょうか?


 シートA,Bともに、A列に商品名、B列に価格が入力されているとします。
 シートA
・C1に =IF(ISERROR(MATCH(A1,シートB!A:A,0)),"シートBにありません","")
・D1に =IF(C1<>"","",IF(VLOOKUP(A1,シートB!A:B,2,0)<>B1,"シートBと価格が違います",""))
・C1,D1を下に必要行分コピー
 シートB
・C1に =IF(ISERROR(MATCH(A1,シートA!A:A,0)),"シートAにありません","")
・D1に =IF(C1<>"","",IF(VLOOKUP(A1,シートA!A:B,2,0)<>B1,"シートAと価格が違います",""))
・C1,D1を下に必要行分コピー
 こんな感じでどうでしょうか?(Yosh!)

Yosh!さんありがとうございます!
希望どおりできました!大変助かりました。
助かりついでに、もう一つ質問してもいいですか?

上記条件で価格が違う場合に、シートAの価格に置き換える場合は、
どのような関数をどこに追加すればいいのですか?
宜しくおねがいします。


 数式と手作業の組み合わせで考えてみました。
・シートBのE1に =IF(D1<>"",VLOOKUP(A1,シートA!A:B,2,0),B1) として、下に必要行分コピー
 これで、D列に[シートAと価格が違います]と表示された行はシートAから、それ以外は
 シートBのB列から価格がE列に表示されます。
・E列を選択してコピー
・B列を選択して、「編集」−「形式を選択して貼り付け」で[値]を選んでOK
・Escを押してコピーの終了
 これでシートAと違っていた価格がシートAの価格に置き換わります。(Yosh!)


Yosh!さん、感謝感謝です!
明日会社で実データで早速試してみます。
今まで2週間かかっていた価格表の更新が1日で終わりそうです。
明日会社に行くのが楽しみです。
またよろしくお願いします。(のり)


今日会社で早速実行しました!だいたいうまくいったのですが。。。
また質問です。
シートAになく、シートBの価格の相違(シートAと価格が違います)
を表示する欄に、いくつか#N/Aが表示されてしまいました。
しかも同一条件でも、すべてに#N/Aが表示されるわけではなく、
一部だけに表示されています。
同一条件すべてに#N/A表示があれば、理解できるのですが。。。
宜しくお願いいたします。(のり)

 #N/Aが表示される理由で考えられるのは、シートAに同じ商品名が
見つからなかった場合なんですが、C列のチェックでシートAに同じ
商品名がなかったら[シートAにありません]と表示されてD列の価格
チェックは行わないで何も表示しないようになっているハズなんですけど...

 とりあえず、下記の点をチェックしてみてもらえますか?
・#N/Aが表示された行のC列のセルに式が入力されているか?
・C列、D列の式は上記と同じように入力されているか?

 同一条件というのがよく分からないのですが、シートBの中に同じ
商品名が複数行入力されていたりするという事でしょうか?
もし、同じ商品名でエラーになったりならなかったりするというのであれば、
式が正しく入力されていないか、あるいは同じように見えている商品名が
片方に空白が入力されていたりして同じ商品名になっていないかだと思います。(Yosh!)


Yosh!さん、ごめんなさい!
私の入力ミスでした。今度はちゃんと入力してOKでした。
#N/Aも出ていません!

本当に感謝感謝です。
ありがとうございました。またよろしくお願いします。(のり)


コメント返信:

[ 一覧(最新更新順) ]


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