2014-11-06 1 views
0

У меня есть данные в Excel, как это:Логика для IF заявления

A 
1|id 
2|2 
3|4 
4|8 
5|12 
6|16 
7|20 
8|24 
9|28 
10|32 
11|36 
12|40 

Я хочу, чтобы заполнить значение в другом столбце в зависимости от следующих критериев:

if cell A2>0 && cell A2<=8 
    return 1 
else if cell A2>8 && cell A2<=16 
    return 2 
else if cell A2>16 && cell A2<=24 
    return 3 
else if cell A2>24 && cell A2<=32 
    return 4 
else return 5 

я только был в состоянии сделать это для одного IF условия:

=IF(AND(A2>0,A2<8),1) 

Как я могу добавить логику для else if?

+0

Зачем вам нужен VBA для этого? Кроме того, ваши условия elseif одинаковы. Они должны быть разными ... Результат копирования пасты? : D –

+0

@SiddharthRout: Извините, мой плохой. На самом деле это была копия: D – user1336087

+0

Мысль так. Уже отправил ответ –

ответ

4

Как я уже сказал в своих комментариях выше, для этого вам не нужен vba.

IF имеет следующий синтаксис

=If(Condition, Do If True, Do If False) 

Так что в вашем случае

Condition = AND(A2>0,A2<8) 
Do If True = 1 
Do If False = Nothing? 

Do If False Так это место, где вы будете установить следующее условие. Например

=If(Condition, Do If True, If(Condition, Do If True, Do If False)) 

и так далее ...

Нечто подобное я принимаю 2-ое условие (> 8, < 16) в качестве примера. Измените, если применимо.

=IF(AND(A2>0,A2<8),1,IF(AND(A2>8,A2<16),2,Next condition goes here)) 
+0

Спасибо, однако я получаю неправильный результат! – user1336087

+0

Можете ли вы обновить свой вопрос по формуле, которую используете? Также укажите, что вы ожидали, и что вы получили –

+0

Является ли он неожиданными результатами для 8,16 и 24;)? –

1

Не отвечает на вопрос (для подобных А2 = 8 и т.д.), но производит те же результаты, как представляется, необходимо:

=IF(OR(A2<=0,A2>32),5,INT(MOD((A2-MOD(A2-1,8))/8,8))+1) 
+0

Но таблица поиска может быть лучше. – pnuts

+1

Это тоже хорошо. Спасибо :) +1 – user1336087

 Смежные вопросы

  • Нет связанных вопросов^_^