Условные вычисления
Как вы знаете, в программировании важнейшую роль играют условные операторы (ветвления), позволяющие выбирать один из двух (или нескольких) вариантов обработки данных. В табличных процессорах тоже возможны условные вычисления, при которых в ячейку заносится то или иное значение в зависимости от выполнения какого-то условия.
Предположим, что в книжном интернет-магазине «Бука» доставка покупок бесплатна для тех, кто сделал заказ на сумму более 500 рублей, а для остальных доставка стоит 20% от суммы (рис. 9.25).
Рис. 9.25
Таким образом, есть два варианта вычисления стоимости доставки, поэтому в формулах столбца С нужно использовать ветвление. Например, алгоритм вычисления значения ячейки С2 может выглядеть так: «если В2>500, записать в ячейку 0, иначе записать значение В2*0,2». В программе на Паскале мы бы записали:
В табличных процессорах для условных вычислений используют функцию IF (ЕСЛИ):
=IF(B2>500;0;B2*0,2) =ЕСЛИ(В2>500;0;В2*0,2)
У этой функции три аргумента, разделённые точками с запятой:
1) условие (В2>500);
2) значение ячейки в том случае, когда условие истинно (0);
3) значение ячейки в том случае, когда условие ложно (В2*0,2).
Первый аргумент может быть сложным условием, которое строится с помощью функций NOT (НЕ, отрицание), AND (И, логическое умножение) и OR (ИЛИ, логическое сложение). Например, если бесплатная доставка распространяется только на заказы, у которых номер меньше 1500 и сумма больше 500 рублей, в ячейку С2 нужно записать такую формулу:
=IF(AND(A2<1500;B2>500);0;B2*0,2)
Здесь использовано сложное условие AND(A2<1500;B2>500), которое истинно только при одновременном выполнении обоих простых условий: А2<1500 и В2>500.
Второй и третий аргументы функции IF могут содержать вложенные вызовы этой функции. Пусть, например, для заказов стоимостью более 200 рублей (но не больше 500) стоимость доставки составляет 10% от суммы:
В табличном процессоре этот алгоритм запишется в виде:
=IF(B2>500;0;IF(B2>200;B2*0,l;B2*0,2))
Следующая страница Связь двух рядов данных