2013-06-13 2 views
2

Я пытаюсь понять эту формулу Excel и понять IF-статуты, но не структуру этого. Что делает И?Что делает эта формула?

=IF(AND(C8>59,C8<65),5%, 
    IF(AND(C8>64,C8<70),5.5%, 
     IF(AND(C8>69,C8<75),6%, 
      IF(AND(C8>74,C8<80),6.5%, 
       IF(AND(C8>79,C8<85),7%, 
        IF(AND(C8>84,C8<90),7.5%, 
         IF(AND(C8>89,C8<250),8%) 
        ) 
       ) 
      ) 
     ) 
    ) 
)*D8 
+2

Вы слышали, что он делает. То, что вы, или кто-то, должно рассмотреть, заменяет его таблицей и формулой VLOOKUP. :) Это будет более ремонтопригодным, когда ставки меняются в какой-то момент. –

+0

Кроме того, если я правильно помню, вы можете вложить только выражения IF 7 в Excel, ограничение, с которым вы не столкнетесь с VLOOKUP. –

+0

Согласен с тем, что поиск или vlookup будет лучше - ограничение 7 вложенных функций распространяется на Excel 2003 или более ранние версии, более поздние версии допускают до 64, но я бы не рекомендовал никуда приблизиться! –

ответ

2

AND функция принимает два логических входа и возвращает TRUE, если они оба являются истинными.

Вся формула выглядит на значении ячейки C8 и возвращает следующее:

5%, если C8 находится в пределах от 59 до 65 лет,

5,5%, если C8 находится в пределах от 64 до 70 лет,

6%, если C8 находится между 69 и 75 ... и т.д.

О, и умножается на то, что находится в ячейке D8

0

AND() функция означает, что «все параметры должны быть истинными» для функции оценки в действительности. Таким образом, ваша первая строка, =IF(AND(C8>59,C8<65),5%,... означает «если C8 находится между 69 и 65, верните 5%, в противном случае перейдите к следующей строке». Поскольку выражения excel IF имеют структуру IF(conditional, true result, false result), если утверждение в каждой строке вашего уравнения неверно, оценка продолжается до следующей строки. В противном случае он останавливается и возвращает процент на этой строке.

0

Excel и принимает 2 или более аргументов, что все они должны оценить, чтобы верно для конечного результата, чтобы быть правдой. В этом случае ячейку C8 сравнивают с 2 значениями, чтобы создать «между» подобную конструкцию.

переписан в какой-то псевдокод это то, что она может выглядеть следующим образом:

if ((C8>59) and (C8<65)) then 
    // meaning, for all values between 60 and 64, return 5% 
    returnvalue = 5% 
else 
    if ((C8>64) and (C8<70)) then 
     // meaning, for all values between 65 and 70, return 5.5% 
     returnvalue = 5.5% 

и так далее

2

Это (почти), что эквивалентно:

60 64 0.05 
65 69 0.055 
70 74 0.06 
75 79 0.065 
80 84 0.07 
85 89 0.075 
90  0.08 

=VLOOKUP(C8,$A$1:$C$7,3,TRUE) 
+0

+1 Не задание для 'IF'. – brettdj

0

Easy чтение. .

IF C8> 59 и C8 < 65 Результат D8 * 5%
ЕСЛИ С8> 64 и С8 < 70 В результате D8 * 5,5%
ЕСЛИ С8> 69 и С8 < 75 Результат D8 * 6%
ЕСЛИ С8> 74 и С8 < 80 в результате D8 * 6,5%
ЕСЛИ С8> 79 и С8 < 85 результат D8 * 7%
ЕСЛИ С8> 84 и С8 < 90 в результате D8 * 7.5%
ЕСЛИ С8> 89 и C8 < 250 Результат D8 * 8%

Итак, если ваш С8 66 и D8 5 то результат 5 * 0,55 = 2.75

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