2016-10-08 9 views
1

Excelシートを作成しようとしています。 12組の条件を入れたいと思っています。つまり、私は2つの値を与えたいと思います。それらに応じて、出力を生成します。例えばMS Excel:条件に応じて値を生成

=if(AND(A1<=75,B1<=5),1.341,AND(A1>=76,B1<=5,A1<=150),1.341,AND(A1>=151,A1<=350,B1<=5),1.408,AND(A1>350,B1<=5),1.475) 

しかし、私がこの機能のためにあまりにも多くの引数を入力したと言っています:

a1< 50 and b1<5 then it should print 100 
a1>= 50 and a1<100 and b1<5 then it should print 200 
a1>= 100 and a1<200 and b1<5 then it should print 300 
a1>= 200 and a1<500 and b1<5 then it should print 400 

は、私はこれを試してみました。

誰かが間違っていると知っていますか?

答えて

1

IFの引数は、(condition, value if condition is true, value if condition is false)です。

だから、IFの入れ子に使用することができます。

=IF(AND(A1<50,B1<5),100,IF(AND(A1>=50,A1<100,B1<5),200,IF(.........))) 

をしかし、このようにそれを行う単純なことがあります

=IF(B1<5,100*(A1<50)+200*AND(A1>=50,A1<100)+300*AND(A1>=100,A1<200)+400*AND(A1>=200,A1<500),"") 

TRUEは0として1とFALSEとして評価されるため、この第2の方法は動作します。

+0

例を挙げてください。 '*'はどういう意味ですか? – V15HM4Y

+0

どのような例ですか? '*'は乗算を表します。 – Scarabee

0

1つの方法は、IFをネストすることです。

=IF(condition1, value1, IF(condition2, value2, valueDefault)). 

しかし、これは非常に複雑になる可能性があります。 2つの変数(aとb)の場合、より透明な解決策はルックアップテーブルを作成することです。最初の列には50,100,200が含まれ、最初の行には5,100,200,500が含まれ、残りのテーブル値でいっぱいになり、次のようなソートを書くことができます:

=INDEX(values, MATCH(actualA, firstColumn, 1), MATCH(actualB, firstRow, 1)) 
関連する問題