こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセル関数でこんな判定?

エクセル2000です。

質問1
A1:A20にリストがあります。
入力されているのはすべて数値としての数字です。

このリストは本来、上のセルの値が常に下のセルの値より大きくなければなりません。(上のセル>=下のセル。空白セルは0とみなす。)
もし下のセルの方が大きかった場合を判定するにはどうすればよいでしょうか?

質問2
上記の表がA1:D20まであり、それぞれの列内のみで上記を判定し、A~Dのどこかひとつでも「上のセル<下のセル」があるかどうかの判定。

もちろん作業列を設け、「=上のセル-下のセル」の答えがひとつでもマイナスになれば、そうとわかりますが、作業列をつかわず、ワークシート関数で調べる方法を知りたいのです。
よろしくお願いします。

投稿日時 - 2006-02-09 09:50:21

QNo.1953734

困ってます

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

質問2の回答だけ
=SUMPRODUCT((A1:D19>A2:D20)*1)
で出来ます。

投稿日時 - 2006-02-09 11:37:30

お礼

>の向きを逆にし、

=SUMPRODUCT((A1:D19<A2:D20)*1)

で完璧な結果を得ました。
有難うございます。

投稿日時 - 2006-02-09 13:05:16

このQ&Aは役に立ちましたか?

6人が「このQ&Aが役に立った」と投票しています

回答(7)

ANo.7

配列数式ですが
A2:A10の範囲を対象に
=IF(SUM(IF(A2:A9>=A3:A10,1,""))>0,"逆あり","昇順")
をたとえばA12にいれ、SHIFT+CTRL+ENTERを同時押しします。
多数データでテストしてませんが、よろしく。
質問1も質問2もこれで判定できるでしょう。
配列数式の面白いところは、
A2:A9>=A3:A10と表現できて、やや考える筋道に近いところと思いました。
SUMPRODUCT(#6のご回答)との双対性をますます感じました。

投稿日時 - 2006-02-09 19:36:56

お礼

ありがとうございました。

投稿日時 - 2006-02-10 10:09:36

質問2へのコメント、

》 作業列をつかわず、ワークシート関数で調べる方法
》 を知りたいのです。

「ワークシート関数」は何処に入力すればよろしいですか?

投稿日時 - 2006-02-09 11:30:20

質問1への回答、

1行目は項目名で、2行目からデータが始まっていると仮定して、式 =IF(OR(A2<A1,A2=""),"","NG") をセル B2 に入力して、此れを下方にズズーッと複写

投稿日時 - 2006-02-09 11:26:17

お礼

ありがとうございます。
ただ、これ自体が作業列みたいなものですね。

投稿日時 - 2006-02-09 13:02:10

ANo.3

NO.2で回答したtoroyukiです。
申し訳ありません、質問を勘違いしていました。
条件式書式の条件は
『 セルの値が 次の値より大きい =A1』
です。訂正お願します。

投稿日時 - 2006-02-09 11:01:43

ANo.2

こんにちは。
条件付書式を使ってみてはどうでしょうか。
まずはA2を選択して、書式→条件付書式をひらきます。
条件は 『 セルの値が 次の値より小さい =A1 』 
書式は赤字にするとか、セルに色をつけるとか、merlionXXさんが
分かりやすいものでオッケーです。
こうすると上のセルより小さい値が入ったセルに書式が設定されるので
見つけやすくなると思います。
あとはA2の書式をコピーしてセルB2~D20に貼り付けてください。
試してみたらうまくいきましたよー(^O^)

投稿日時 - 2006-02-09 10:54:09

お礼

これはとても良さげですね!
ありがとうございました。

投稿日時 - 2006-02-09 12:59:35

ANo.1

質問1
関数ではないですが、
数値が整数ならまずA19にデータ→入力規則で
『整数』、『次の値より大きい』、『A20』を設定し
それをA1まで引っ張れば、下のセルのほうが大きかった場合にエラーになります。

質問2
上記でA1:A20をD1:D20まで引っ張れば入力時に制限することが可能です。

投稿日時 - 2006-02-09 10:02:36

お礼

ありがとうございます。そういう方法もありますね。
ただ、下のセルから入力するならそれで有効なのですが、上のセルから順次入力する(これが一般的だと思いますが)と、まだ下のセルが空白なので何でも入ってしまいます。
また、一度入力後、デリートされたら入力規則では制限できません。
やはり、関数でエラー表示したいのです。

投稿日時 - 2006-02-09 10:21:07

あなたにオススメの質問