web-dev-qa-db-ja.com

番号範囲間の複数のIFステートメント

数値範囲間に複数のIFステートメントを含む数式を設定しようとしていますが、エラーが表示されます。

数式解析エラー

ここにフォーラムがあります:

=IF((AND(A2>0,A2<500),"Less than 500",
 If(AND(A2>=500,A2<1000),"Between 500 and 1000"),
 If(AND(A2>=1000,A2<1500),"Between 1000 and 1500"),
 If(AND(A2>=1500,A2<2000),"Between 1500 and 2000")))
18
Kristin

IFがネストされているため、少し注意が必要ですが、これが私の答えです(Googleスプレッドシートで確認済み)。

=IF(AND(A2>=0,    A2<500),  "Less than 500", 
 IF(AND(A2>=500,  A2<1000), "Between 500 and 1000", 
 IF(AND(A2>=1000, A2<1500), "Between 1000 and 1500", 
 IF(AND(A2>=1500, A2<2000), "Between 1500 and 2000", "Undefined"))))
32
eniacAvenger

vlookup 関数を使用して、最も近い一致を取得することをお勧めします。


ステップ1

データ範囲を準備して名前を付けます: 'numberRange':

enter image description here

範囲を選択します。メニューに移動します:データ→名前付き範囲...→新しい名前付き範囲を定義します。

ステップ2

次の簡単な式を使用します。

=VLOOKUP(A2,numberRange,2)

enter image description here


これにより、エラーを除外して、結果を簡単に修正できます。

12
Max Makhrov

VLOOKUPに基づくスタンドアロン1セルソリューション

米国の構文:

=IFERROR(ARRAYFORMULA(IF(LEN(A2:A),
        IF(A2:A>2000, "More than 2000",VLOOKUP(A2:A,
 {{(TRANSPOSE({{{0;   "Less than 500"},
               {500;  "Between 500 and 1000"}},
              {{1000; "Between 1000 and 1500"},
               {1500; "Between 1500 and 2000"}}}))}}, 2)),)), )

EU構文:

=IFERROR(ARRAYFORMULA(IF(LEN(A2:A);
        IF(A2:A>2000; "More than 2000";VLOOKUP(A2:A;
 {{(TRANSPOSE({{{0;   "Less than 500"}\
               {500;  "Between 500 and 1000"}}\
              {{1000; "Between 1000 and 1500"}\
               {1500; "Between 1500 and 2000"}}}))}}; 2));)); )

代替案: https://webapps.stackexchange.com/questions/123729/

0
player0

受け入れられているAより短く、簡単に拡張可能で、アドレス0以下:

=if(or(A2<=0,A2>2000),"?",if(A2<500,"Less than 500","Between "&500*int(A2/500)&" and "&500*(int(A2/500)+1))) 
0
pnuts