• ベストアンサー

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

エクセル2000です。 質問1 A1:A20にリストがあります。 入力されているのはすべて数値としての数字です。 このリストは本来、上のセルの値が常に下のセルの値より大きくなければなりません。(上のセル>=下のセル。空白セルは0とみなす。) もし下のセルの方が大きかった場合を判定するにはどうすればよいでしょうか? 質問2 上記の表がA1:D20まであり、それぞれの列内のみで上記を判定し、A~Dのどこかひとつでも「上のセル<下のセル」があるかどうかの判定。 もちろん作業列を設け、「=上のセル-下のセル」の答えがひとつでもマイナスになれば、そうとわかりますが、作業列をつかわず、ワークシート関数で調べる方法を知りたいのです。 よろしくお願いします。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.6

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

merlionXX
質問者

お礼

>の向きを逆にし、 =SUMPRODUCT((A1:D19<A2:D20)*1) で完璧な結果を得ました。 有難うございます。

その他の回答 (6)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.7

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

merlionXX
質問者

お礼

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

noname#204879
noname#204879
回答No.5

質問2へのコメント、 》 作業列をつかわず、ワークシート関数で調べる方法 》 を知りたいのです。 「ワークシート関数」は何処に入力すればよろしいですか?

noname#204879
noname#204879
回答No.4

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

merlionXX
質問者

お礼

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

  • toroyuki
  • ベストアンサー率58% (7/12)
回答No.3

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

  • toroyuki
  • ベストアンサー率58% (7/12)
回答No.2

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

merlionXX
質問者

お礼

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

  • rx_78_2
  • ベストアンサー率35% (16/45)
回答No.1

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

merlionXX
質問者

お礼

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

関連するQ&A

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

    A1:B20にリストがあります。 A列は文字列です。 B列は数値です。 質問1 A列に入力があり、同行のB列が空白または0というものが1つでもあるかどうかを判定する関数を教えてください。 質問2 B列に入力があり、同行のA列が空白というものが1つでもあるかどうかを判定する関数を教えてください。 多分SUMPRODUCTを使うのだとは想像するのですが、手がでません・・・・。(泣)

  • エクセル関数で飛び飛びのデータの値を表示したい

    こんにちは。お世話になります。 エクセル(2000)で質問です。 ある表があり、一番左の列にはインデックス(仮にB列とします)、 2列目(C列)には日付、3列目(D列)には値が入っています。 イメージだと   A  B    C   D   1   コーラ  5/30  20    2        6/10  10    3        6/11  20    4   ミルク  4/30  10    5        5/11  35    のような感じです。(セルは結合されてません) データベースとして扱うならば、B2にもコーラという値が 入っている、という認識ですが、実際は空白セルとなっています。 そこで、A列に、Bのインデックスの値を入力したいのですが、 どのようにしたら良いのか悩んでいます。 上記で言うと、A1~A3にはコーラ、A4~A5にはミルク、という 値がはいってほしいです。 次のインデックスまでの空白セルの数は不規則です。 データの件数は何千件とかなり多いので、関数で一気に出せると 非常に助かります。 分かりにくい質問で申し訳ありませんがどうぞよろしくお願いします。

  • エクセルのワークシート関数でA、B列不同数取得

    エクセルのワークシートA列とB列にデータがあります。 データは数値、文字列、空白です。エラー値はありません。 A列のセルと同じ行のB列のセルの値が同一でないA列データの個数(またばB列データの個数)を求めるワークシート関数はないでしょうか?(空白同士は同一とみなします。) C列などに作業列を作ってA、Bの比較をして求める方法はすぐに思いつきますが、作業列なしで求めたいのです。

  • エクセル関数で・・

    お世話になります。 以下の数値があります。 A B C 1 A 1.4% 2 B 2.0% 3 C 10.0% 4 D 15.0% B列を検索して、10.0%以上のときに、C列にA列の値を上から順に返したいのですが、どのような計算式をいれればよいでしょうか? 上記の場合、セルC1に"C",セルC2に"D"が返ることになります、 すいませんが、どなたかご教授お願いいたします

  • エクセル関数2

    シート(1) A B C D 作業列    コード    顧客名     金額 3        300001     A 10,000 3        300002   B 15,000 3        300003   C 20,000 3        300004   D 25,000 3        300005   E 30,000 4        400001   F 35,000 4        400002   G 40,000  4 400003 H 45,000 4 400004 I 50,000 4 400005 J 55,000         シート(2) A B C D E F 「1」 「2」 「3」 「4」 「5」 「6」 10,000 35,000 15,000 40,000 20,000 45,000 25,000 50,000 30,000 55,000 ※ シート(1)にコード、顧客名、金額を入力すると、シート(2)にあるように該当するコードの先頭行の列に表示するようにしたいと思っています。 シート1で作業列を作りその作業列を基にシート2でVLOOKUP関数を使い‥シート2の10,000のセルの場合、 VLOOKUP(C$2,sheet1!$A$3,$D$12,4,false)として、下にコピーすると同じ金額になってしまいます。 セルが空白にならず、シート1の金額が上から順番にシート2に表記されるようにするにはどうしたらよいでしょうか。マクロはできませんので、関数で詳しく教えて下さい。宜しくお願いします。

  • (MS-Excel)「入力規則」で「リスト」に空白セルを含めない方法

    (MS-Excel)「入力規則」で「リスト」に空白セルを含めない方法 たとえば、A1,B1,D1,G1は何らかの文字列が入力されていて、C1,E1,F1が空白セルだとします。 「入力規則」の「リスト」で、「元の値」にA1:G1を指定した場合は、空白もリストされてしまいます。 空白を表示させたくないのですが、作業セルに空白以外をリストさせて元の値とする、という方法は使いたくないです。 調べたところ、名前の定義方法で実現できるみたいですが、良く解りませんでした。

  • エクセルのマクロで、できると思うのですが・・・。

    例えば、A1から下にリストを入力していき、A100まで入力したとします。 他のシートなどで作業後、シートを戻し、再度リストを入力しようとした時、すぐにA101のセルに入力したいのです。 つまり、A列のなかで、【現在一番上に位置している空白セル】をアクティブにするマクロが知りたいのです。 ただ、アクティブになるだけでは無く、それが画面上に現れて、すぐに入力できるようになっていないと困るのです。 どうでしょうか。

  • Excelマクロ 入力の有無を判定するマクロを組みたい

    はじめまして。 マクロの初心者です。 エクセルマクロを利用して、セルに何か入力(文字でも数値でも)がある場合の判定をしたいのですが、うまくいきません。 具体的には、 ・(A1セルが空白で)B1からC10セル(10個のセル)のいずれかのセルに何か入力された場合 → D1セルに"○"を出力。 ・(A1セルが空白で)B1からC10セル(10個のセル)のいずれかのセルに何も入力がない場合 → D1セルは"(空白)"。 ・但し、大前提として、A1セルに"×"が入力されている場合 → D1セルに"×"を出力。 (B1からC10セル(10個のセル)のいずれかのセルに何か入力されている場合でも、A1セルが"×"ならばD1セルは"×"とする) としたうえで、同様の判定を ・A11セルおよびB11からC20を判定しD11セルに結果を出力、 ・A21セルおよびB21からC30を判定しD21セルに結果を出力、 … と繰り返して、A100セルまで実行させたいと考えています。 (D1、D11、D21、D31、D41、D51、D61、D71、D81、D91の10個のセルに"○"、"×"、"(空白)"の結果を出力したいです) 過去の投稿や解説書などを参照にしているのですが、なにぶん本当に初心者のためうまくいきません、、、 どなたかお力添えをお願いします。

  • Excelの関数について

    [C1のセル値]-[A1またはB1のセル値] を使って計算したい場合の計算式を教えて下さい。 A列、B列、C列には具体的な数値を入力します。 D列にその結果を表示させる関数を入力したい。 と考えています。 但し、以下の条件を満たす事が必須となります。 (1)A、B、またはCのセルが未入力の場合はDは空白セルのまま。 (2)A、Bいずれかの一方が入力されている場合はCの値を使って計算し結果を表示。 (3)A、Bいずれも入力されている場合はBを優先してCの値を使って計算し結果を表示。 よろしくお願いします。

  • エクセル関数について

    エクセルの関数を教えてください。 例:25..15. 9.- 1.- 3. このように徐々に減って行く数値の並び(行・列)を別の行・列で 最初にマイナス(ー)になったセルのみ何かしらの数値を反映させるほ方法ってありますか? 何かしらの数値を1として、上記の例で説明すると 答:空白.空白.空白.1.空白 になります。(最初のマイナス、ー3を空白にするのがポイントです)

専門家に質問してみよう