[[20130530164754]] 『複数範囲同士の比較(VBA)』(あめちぇ) ページの最後に飛ぶ

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

 

『複数範囲同士の比較(VBA)』(あめちぇ)

 Excel2007 windows7
 下記、ご教示いただければと存じます。

 ナンプレの答え合わせの為に、
 「hani」(B5:J13)と「kaitou」(B15:J23)
 に記入されている数値の比較を行いたいのですが
 ループせず、一括で比較できる方法というものがあるでしょうか?

 If (Range("hani").Value = Range("kaitou").Value) Then

 では「型が一致しません」と出ます。

 個別の数値の違うセルを検出するのは条件付き書式で行なっていますので
 単純にメッセージボックスで「正解!」と出すためのものです。
 全一致してるか否かだけわかればよいです。

 どうぞ、よろしくお願い致します。

 If Application.Sum(Range("hani").Value) - Application.Sum(Range("kaitou").Value) = 0 Then

 でいいのかな?

 (se_9)

 これでわかるかな?
 MsgBox "相異" & IIf(Application.Count([if(hani=kaitou,"",1)]) > 0, "有り", "無し")
 (seiya)

 早速のご回答、ありがとうございます!

 se_9さん
 合計数で比較ですと、例えば同じ数字を使用していて、
 位置が違ってもOKとなってしまうようです。
 (「B5=1、C5=2」と「B15=2、C15=1」の場合等)

 seiyaさん
 こちらで出すことが出来ました!
 [if(hani=kaitou,"",1)]
 の部分は、ワークシート上での配列関数みたいな扱いなんでしょうか。
 この書き方をしっかり覚えて、将来コードをみた時に「??」と
 ならないようにしたいと思います。

 お二方ともありがとうございました。
 (あめちぇ)

 > [if(hani=kaitou,"",1)]
 >の部分は、ワークシート上での配列関数みたいな扱いなんでしょうか。

 それをメモリ上で再現しています。
 空いている同範囲(例えばK5:Q13)を選択して、
 =IF(hani=kaitou,"",1)
 として Ctrl + Shift + Enter で確定すると相対するセルに相異があれば1を
 無ければ空白を返します。

 Count関数で1をカウントしてやれば判断できるということです。
 (seiya)

 再現出来ました!
 こちらを利用して、
 いくつ間違っているかのメッセージも出すことが出来ました。

 Excelには本当に色々な使い方があるのですね。
 この度は補足までありがとうございました!
 (あめちぇ)

コメント返信:

[ 一覧(最新更新順) ]


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