2016-08-26 7 views
-2

2枚のシートの間にIF()という数式の条件文があります。誰か私はそれを簡素化するのに役立つだろうか?2枚のシートの間にif式の条件文を簡略化する方法

=IF(AND(I2="P1",G2<1000),(AF2*Rating!$C$12)/100, 
IF(AND(DATA!I2="P1",DATA!G2=1000),(DATA!AF2*Rating!$D$12)/100, 
IF(AND(DATA!I2="P1",DATA!G2>1000),(DATA!AF2*Rating!$D$12)/100, 
IF(AND(DATA!I2="P1",DATA!G2<1500),(DATA!AF2*Rating!$D$12)/100, 
IF(AND(DATA!I2="P1",DATA!G2=1500),(DATA!AF2*Rating!$E$12)/100, 
IF(AND(DATA!I2="P1",DATA!G2>1500),(DATA!AF2*Rating!$E$12)/100, 
IF(AND(I2="P2",G2<1000),(AF2*Rating!$C$14)/100, 
IF(AND(DATA!I2="P2",DATA!G2=1000),(DATA!AF2*Rating!$D$14)/100, 
IF(AND(DATA!I2="P2",DATA!G2>1000),(DATA!AF2*Rating!$D$14)/100, 
IF(AND(DATA!I2="P2",DATA!G2<1500),(DATA!AF2*Rating!$D$14)/100, 
IF(AND(DATA!I2="P2",DATA!G2=1500),(DATA!AF2*Rating!$E$14)/100, 
IF(AND(DATA!I2="P2",DATA!G2>1500),(DATA!AF2*Rating!$E$14)/100, 
IF(AND(I2="P3",G2<1000),(AF2*Rating!$C$16)/100, 
IF(AND(DATA!I2="P3",DATA!G2=1000),(DATA!AF2*Rating!$D$16)/100, 
IF(AND(DATA!I2="P3",DATA!G2>1000),(DATA!AF2*Rating!$D$16)/100, 
IF(AND(DATA!I2="P3",DATA!G2<1500),(DATA!AF2*Rating!$D$16)/100, 
IF(AND(DATA!I2="P3",DATA!G2=1500),(DATA!AF2*Rating!$E$16)/100, 
IF(AND(DATA!I2="P3",DATA!G2>1500),(DATA!AF2*Rating!$E$16)/100, 
IF(AND(I2="P4",G2<1000),(AF2*Rating!$C$18)/100, 
IF(AND(DATA!I2="P4",DATA!G2=1000),(DATA!AF2*Rating!$D$18)/100, 
IF(AND(DATA!I2="P4",DATA!G2>1000),(DATA!AF2*Rating!$D$18)/100, 
IF(AND(DATA!I2="P4",DATA!G2<1500),(DATA!AF2*Rating!$D$18)/100, 
IF(AND(DATA!I2="P4",DATA!G2=1500),(DATA!AF2*Rating!$E$18)/100, 
IF(AND(DATA!I2="P4",DATA!G2>1500),(DATA!AF2*Rating!$E$18)/100,0)))))))))))))))))))))))) 
+0

なぜ代わりに、VBAでのcase文を書きませんか? – Brian

+0

あなたは何を達成しようとしていますか?これまでに何を試しましたか? – Poorkenny

+0

'DATA!G2'は常に'> 1000'と '<1500 'の両方になります。したがって、不要な線を取り除いてください。 – Brian

答えて

0

Brianが書いたように、VBAでケースを書くことができます。

名前のついた範囲を使用して、読みやすくすることもできます(もちろん、短い名前でも可能です)。

0

これは助けてくれますが、それでもやはり非常に長い式です。 VBAを使用してください!

=IF(AND(I2="P1",G2<1000),(AF2*Rating!$C$12)/100, 
IF(AND(DATA!I2="P1",DATA!G2>=1000,DATA!G2<1500),(DATA!AF2*Rating!$D$12)/100, 
IF(AND(DATA!I2="P1",DATA!G2>=1500),(DATA!AF2*Rating!$E$12)/100, 
IF(AND(I2="P2",G2<1000),(AF2*Rating!$C$14)/100, 
IF(AND(DATA!I2="P2",DATA!G2>=1000,DATA!G2<1500),(DATA!AF2*Rating!$D$14)/100, 
IF(AND(DATA!I2="P2",DATA!G2>=1500),(DATA!AF2*Rating!$E$14)/100, 
IF(AND(I2="P3",G2<1000),(AF2*Rating!$C$16)/100, 
IF(AND(DATA!I2="P3",DATA!G2>=1000,DATA!G2<1500),(DATA!AF2*Rating!$D$16)/100, 
IF(AND(DATA!I2="P3",DATA!G2>=1500),(DATA!AF2*Rating!$E$16)/100, 
IF(AND(I2="P4",G2<1000),(AF2*Rating!$C$18)/100, 
IF(AND(DATA!I2="P4",DATA!G2>=1000,DATA!G2<1500),(DATA!AF2*Rating!$D$18)/100, 
IF(AND(DATA!I2="P4",DATA!G2>=1500),(DATA!AF2*Rating!$E$18)/100)))))))))))) 
0

これを試してみる:

=DATA!AF2 * IF(DATA!G2<1000,INDEX(DATA!C:C,(RIGHT(DATA!I2,1)*2)+10),IF(DATA!G2<1500,INDEX(DATA!D:D,(RIGHT(DATA!I2,1)*2)+10),INDEX(DATA!E:E,(RIGHT(DATA!I2,1)*2)+10)))/100 
+0

拝啓私は試みましたが、それは動作していません – Anil

関連する問題