В простейшем случае функция ЕСЛИ реализует алгоритм выбора (рис. 3) одного из двух выражений.
Да, |
Условие |
Нет, |
|
выполняется? |
|||
выполняется |
не выполняется |
Выражение 1 |
|
Выражение 2 |
||
|
|
|
|
|
|
|
|
|
|
Рис. 3. Алгоритм выбора одного из двух выражений
Примеры применения логических функций
Рассмотрим несколько примеров использования логических функций в табличном процессоре Excel. В приведенных примерах логические функции работают как самостоятельно, так и в сочетаниях.
Пример 1
Условие: Распределить переменные по ячейкам и написать формулу Excel для вычисления следующей величины:
|
a x2 − |
36 |
|
b2 −4 t |
|
+10−4 |
|
|
|
, если x +14 <10a+4 |
||||||
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
z = |
|
2 |
|
2 |
|
|
|
3 |
|
|
|
x |
|
|
a+4 |
|
|
|
|
|
|
|
|
|
|
||||||||
lg |
|
3 y |
|
−76 ,4 t |
|
sin a + |
|
|
+9 |
, если x +14 ≥10 |
|
|||||
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Решение:
Представим решение в виде последовательности операций, которые необходимо выполнить для получения решения:
Операция 1: Определим все переменные, используемые в данном формульном выражении: a , x , b, t , y .
Операция 2: Распределим переменные по ячейкам. Пусть в ячейке А1 будет располагаться переменная a , в ячейке А2 – x , в ячейке А3 – b , в ячейке А4 – t , в ячейке А5 – y .
Операция 3: Поскольку в формульном выражении рассматриваются два условия, то очевидным является использование функции ЕСЛИ.
Операция 4: Сформулируем логическое условие (лог_выражение), которое необходимо проверить: A2 + 14 < 10 ^ (A1 + 4).
7
Операция 5: Для условия, сформулированного в операции 4, сформулируем остальные аргументы функции ЕСЛИ:
значение_если_истина:
КОРЕНЬ(А1 А2 ^ 2 − 36 ABS (A3 ^ 2 − 4 A4))+ 1E −04
значение_если_ложь:
LOG10 (ABS (3 A5 ^ 2 −76 ,4 A4 ^ 3 SIN (A1 + A2 / 2)))^ 2 + 9
Операция 6: Запишем окончательный вид формульного выражения для Excel:
ЕСЛИ( A2 + 14 < 10 ^ (A1 + 4);
КОРЕНЬ(А1 А2 ^ 2 − 36 ABS (A3^ 2 − 4 A4))+ 1E −04; LOG10 (ABS (3 A5 ^ 2 −76 ,4 A4 ^ 3 SIN (A1 + A2 / 2)))^ 2 + 9 )
Пример 2
Условие: Распределить переменные по ячейкам и написать формулу Excel для вычисления следующей величины:
|
|
ea2 x2 +1 , если а2 |
+ х2 |
< 2 |
|||||
|
|
|
|
x +3 |
|
|
|
|
|
|
|
|
|
, если а2 |
|
х2 |
|
||
W = |
|
tg |
|
|
|
+ |
> 6 |
||
|
a |
|
|||||||
|
|
a2 |
|
, если 2 ≤ а2 |
+ х2 ≤ 6 |
||||
|
|
− x2 |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Решение:
Представим решение в виде последовательности операций, которые необходимо выполнить для получения решения:
Операция 1: Определим все переменные, используемые в данном формульном выражении: a , x .
Операция 2: Распределим переменные по ячейкам. Пусть в ячейке А1 будет
|
располагаться переменная a , в ячейке А2 – |
x . |
|
|||
Операция 3: |
Для правильного вычисления величины W достаточно проверки |
|||||
|
двух из трех указанных условий, т.к. невыполнение (ложное зна- |
|||||
|
чение) любых двух условий означает выполнение (истинность) |
|||||
|
третьего условия. Т.о. очевидным является использование двух |
|||||
|
функций ЕСЛИ, которые будут вложенными одна в другую, т.е. |
|||||
|
для первой функции ЕСЛИ в качестве значение_если_ложь бу- |
|||||
|
дет выступать вторая функция ЕСЛИ, которая будет проверять |
|||||
|
второе логическое условие. |
|
|
|
|
|
Операция 4: |
Сформулируем логическое условие (лог_выражение), которое |
|||||
|
необходимо |
проверить |
в |
первой |
функции |
ЕСЛИ: |
|
A1^ 2 + A2 ^ 2 < 2 . |
|
|
|
|
|
Операция 5: |
Для условия, сформулированного в операции 4, сформулируем |
|||||
|
остальные аргументы функции ЕСЛИ: |
|
|
|||
значение_если_истина: |
EXP( A1^ 2 A2 ^ 2 + 1 ) |
|
8
значение_если_ложь:
ЕСЛИ( A1^ 2 + A2 ^ 2 > 6 ;TAN (( A2 + 3 ) / A1); ABS( A1^ 2 − A2 ^ 2 ))
Операция 6: Запишем окончательный вид формульного выражения для Excel:
ЕСЛИ( A1^ 2 + A2 ^ 2 < 2;EXP( A1^ 2 A2 ^ 2 + 1 );
ЕСЛИ( A1^ 2 + A2 ^ 2 > 6;TAN (( A2 + 3 ) / A1); ABS( A1^ 2 − A2 ^ 2 )))
Пример 3
Условие: Вычислить (без использования компьютера) следующую формулу Excel, сопровождая ответ промежуточными расчетами:
=ЕСЛИ(НЕ(ИЛИ(A1>C1;ЛОЖЬ));ЕСЛИ(A1+1>=C1;A1+1; B1-1);И(A1<=B1+1;ИСТИНА))
Содержимое ячеек: A1 = 1; B1 = 2; C1 = 3 .
Решение:
Представим решение в виде последовательности операций, которые необходимо выполнить для получения решения:
Операция 1: Разложим приведенную формулу на составные элементы:
лог_выражение значение_если_истина
=ЕСЛИ(НЕ(ИЛИ(A1>C1;ЛОЖЬ));ЕСЛИ(A1+1>=C1;A1+1;B1-1); И(A1<=B1+1;ИСТИНА))
значение_если_ложь
Операция 2: Проверим логическое выражение НЕ(ИЛИ(A1>C1;ЛОЖЬ)), подставив в него числовые данные, содержащиеся в ячейках. Данную операцию выполняем, соблюдая правило, что вначале выполняются операции во вложенных скобках, а затем во внешних. Таким образом, получаем:
Операция 2.1: Рассматриваем ИЛИ(A1>C1;ЛОЖЬ). Подставляем числовые данные: ИЛИ(1>3;ЛОЖЬ). Функция ИЛИ возвращает значение ИСТИНА, если хотя бы один аргумент имеет значение ИСТИНА, и возвращает значение ЛОЖЬ, если все аргументы принимают значение ЛОЖЬ. В нашем случае получим: ИЛИ(ЛОЖЬ;ЛОЖЬ), т.е. данное выражение принимает значение
ЛОЖЬ.
Операция 2.2: Подставляем значение, полученное в операции 2.1 в оставшуюся часть логического выражения: НЕ(ЛОЖЬ). Функция НЕ изменяет логическое значение своего аргумента на противоположное. Таким образом, логическое выражение НЕ(ИЛИ(A1>C1;ЛОЖЬ)) при заданных исходных данных1 при-
1 Необходимо обратить внимание, что при других числовых данных в ячейках А1, В1, С1 результаты могут получаться совершенно другими
9
нимает значение ИСТИНА.
Операция 3: Поскольку лог_выражение принимает значение ИСТИНА то пе-
реходим к значение_если_истина: ЕСЛИ(A1+1>=C1;A1+1;B1- 1). Значение_если_ложь при заданных исходных данных рассматриваться не будет.
Операция 4: В качестве значение_если_истина выступает логическая функция ЕСЛИ, которую также можно разложить на составляющие:
лог_выражение значение_если_истина
ЕСЛИ(A1+1>=C1;A1+1;B1-1)
значение_если_ложь
Операция 5: Проверим логическое выражение A1+1>=C1, подставив в него исходные числовые данные, т.е. проверяем неравенство 1+1>=3. Данное логическое выражение принимает значение ЛОЖЬ, таким образом переходим к значение_если_ложь, а значение значение_если_истина не рассматриваем.
Операция 6: В качестве значение_если_ложь выступает арифметическое выражение B1-1, подставив в которое числовые данные получим: 2- 1=1. Таким образом, формульное выражение
ЕСЛИ(НЕ(ИЛИ(A1>C1;ЛОЖЬ));ЕСЛИ(A1+1>=C1;A1+1;B1- 1);И(A1<=B1+1;ИСТИНА)) принимает значение 1.
Пример 4
Условие: Пусть в ячейку А2 введена формула
=ЕСЛИ(НЕ(И(A1<B1;B1<C1));ЛОЖЬ;ИСТИНА)
Вычислить (без использования компьютера) следующую формулу Excel, сопровождая ответ промежуточными расчетами:
=ЕСЛИ(ИЛИ(A2;A1+1=B1);ЕСЛИ(B1=C1- 1;"весна";"лето");ЕСЛИ(B1<=C1;"осень";"зима"))
Содержимое ячеек: A1 = 1; B1 = 1; C1 = 1.
Решение:
Представим решение в виде последовательности операций, которые необходимо выполнить для получения решения:
Операция 1: Разложим формулу, введенную в ячейку А2 на составные элементы:
лог_выражение значение_если_истина
=ЕСЛИ(НЕ(И(A1<B1;B1<C1));ЛОЖЬ;ИСТИНА)
значение_если_ложь
10
Операция 2: Проверим логическое выражение НЕ(И(A1<B1;B1<C1)), подставив в него числовые данные, содержащиеся в ячейках. Данную операцию выполняем, соблюдая правило, что вначале выполняются операции во внутренних скобках, а затем во внешних. Таким образом, получаем:
Операция 2.1: Рассматриваем И(A1<B1;B1<C1). Подставляем числовые данные: И(1<1;1<1). Функция И возвращает значение ИСТИНА, если все аргументы имеют значение ИСТИНА, и возвращает значение ЛОЖЬ, если хотя бы один аргумент имеет значение ЛОЖЬ В нашем случае получим: И(ЛОЖЬ;ЛОЖЬ), т.е. данное выражение принимает значение ЛОЖЬ.
Операция 2.2: Подставляем значение, полученное в операции 2.1 в оставшуюся часть логического выражения: НЕ(ЛОЖЬ). Функция НЕ изменяет логическое значение своего аргумента на противоположное. Таким образом, логическое выражение НЕ(И(A1<B1;B1<C1)) при заданных исходных данных принимает значение ИСТИНА.
Операция 3: Поскольку лог_выражение принимает значение ИСТИНА то пе-
реходим к значение_если_истина: ЛОЖЬ. Значение_если_ложь
при заданных исходных данных рассматриваться не будет. Таким образом, формульное выражение в ячейке А2 при заданных исходных данных принимает значение ЛОЖЬ.
Операция 4: Приступаем к рассмотрению формульного выражения, значение которого необходимо вычислить. Разложим его на составляющие:
лог_выражение значение_если_истина
=ЕСЛИ(ИЛИ(A2;A1+1=B1);ЕСЛИ(B1=C1-1;"весна";"лето"); ЕСЛИ(B1<=C1;"осень";"зима"))
значение_если_ложь
Операция 5: Проверим логическое выражение ИЛИ(A2;A1+1=B1), подставив в него числовые данные, содержащиеся в ячейках. Таким образом, получаем: ИЛИ(ЛОЖЬ;1+1=1). Функция ИЛИ возвращает значение ИСТИНА, если хотя бы один аргумент имеет значение ИСТИНА, и возвращает значение ЛОЖЬ, если все аргументы принимают значение ЛОЖЬ. В нашем случае получим: ИЛИ(ЛОЖЬ;ЛОЖЬ), т.е. данное выражение принимает значение
ЛОЖЬ.
Операция 6: Поскольку логическое выражение принимает значение ЛОЖЬ, то переходим к значение_если_ложь, а значение значе-
ние_если_истина не рассматриваем.
11