Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
informatika.doc
Скачиваний:
72
Добавлен:
03.05.2019
Размер:
12.78 Mб
Скачать

§11. Excel. Логические функции

Под логическими функциями будем понимать функции, в результате применения которых к разным вариантам исходных данных требуются разные действия и получаются различные результаты. В экономических приложениях логические функции являются инструментом для автоматизации принятия того или решения на основе формализации и анализа исходной ситуации.

Таблица 2.11

Основные и дополнительные логические функции Еxcel

Функция

Назначение

ЕСЛИ

Возвращает одно значение, если заданное условие при вычислении дает значение ИСТИНА, и другое значение, если ЛОЖЬ

И

Возвращает логические значение ИСТИНА, если все ее аргументы принимают значение ИСТИНА

ИЛИ

Возвращает логические значение ИСТИНА, если хотя бы один из ее аргументов принимает значение ИСТИНА

ИСТИНА

Возвращает логическое значение ИСТИНА

ЛОЖЬ

Возвращает логическое значение ЛОЖЬ

НЕТ

Меняет логическое значение аргумента на противоположное

СЧЕТЕСЛИ

Подсчитывает количество ячеек внутри диапазона, удовлетворяющих заданному критерию

СУММЕСЛИ

Суммирует значения ячеек, заданных определенным критерием

Основой каждой логической функции является логическое выражение. Под логическим выражением понимают любое выражение, принимающее значения ИСТИНА или ЛОЖЬ и записанное с помощью знаков сравнения >, <, =,<>,>=,<=.

Примеры логических выражений

В34>50; А1=0; С12=”экономист”; D2 <> “экономист”.

Приведенные выше примеры – это примеры простых логических выражений. Под сложными логическими выражениями будем понимать логические выражения, состоящие из двух или более простых и соединенные логическими связками И и ИЛИ.

Примеры сложных логических выражений

ИЛИ(1+1=1;2+2=5); И(1+1=1;2+2=5); И(В34>50; А1=0; С12=”экономист”)

Наиболее универсальной и часто используемой на практике является функция ЕСЛИ. Рассмотрим ее подробнее. Формат функции:

ЕСЛИ (лог_выражение; значение_если_истина; значение_если_ложь)

Функция анализирует логическое выражение; если значение выражения – ИСТИНА, то выполняются действия, заданные вторым аргументом функции; если значение логического выражения – ЛОЖЬ, то выполняются действия, заданные третьим аргументом.

Таблица 2.12

Применение логических функций

Пример: =ЕСЛИ(B2>C2;B2-C2;"не сбалансировано")

Если число в ячейке В2>С2, то это выводим разность В2-С2 ; если число в ячейке В2 <= С2, то выводится текст "не сбалансировано".

Если для выполнения действий требуется проанализировать не одно, а несколько условий, то в качестве первого аргумента функции ЕСЛИ можно использовать функции И и ИЛИ.

И (логич_выраж._1; логич._выраж._2;…)

ИЛИ (логич._выраж._1; логич._выраж. 2;…)

Функции И и ИЛИ могут содержать от 2 до 30 аргументов.

Функция И имеет значение ИСТИНА, если истинны все ее аргументы; если хотя бы один аргумент имеет значение ЛОЖЬ, то функция имеет значение ЛОЖЬ.

Пример: в ячейках содержатся значения: А1=50, В1=0, С1=100.

И(А1>0;В1=0;С1<150) – ИСТИНА, И(А1=0 В1=0;С1=100) - ЛОЖЬ

Функция ИЛИ имеет значение ИСТИНА, если хотя бы один ее аргумент имеет значение ИСТИНА; функция имеет значение ЛОЖЬ, если ложны все ее аргументы.

Пример: ячейка А1 содержит текст «юрист»;

ИЛИ(А1=”юрист”;А1=”экономист”)–ИСТИНА,

ИЛИ(А1=”экономист”;А1=”психолог”) – ЛОЖЬ.

В качестве второго и третьего аргументов функции ЕСЛИ можно также использовать функцию ЕСЛИ. Возможно до 7 уровней вложенности.

Для уяснения механизма работы с логическими функциями решим следующую задачу. Сформировать выборку из 100 случайных дат – числа 3 квартала 2008 года. Разместить ее в диапазоне 5х20.

Найти наибольшее, наименьшее и среднее значение даты.

Ниже сформированного массива вывести массив такого же размера, полученный исходя из следующих условий:

    • Если дата находится в первой половине указанного диапазона и день недели пятница или среда, то вывести в ячейку значение «аванс=» и количество дней, прошедших от заданной в ячейке даты до максимальной умноженной на 10.

    • Если дата находится в первой половине указанного диапазона и день недели понедельник или четверг, то вывести в ячейку значение «аванс=» и количество дней, прошедших от заданной в ячейке даты до максимальной умноженной на 30.

    • Если дата находится во второй половине указанного диапазона и день недели воскресенье или вторник, то вывести в ячейку значение «зарплата=» и количество дней, прошедших от заданной в ячейке даты до максимальной увеличенной на 100.

    • Во всех других случаях ничего не выводить.

Разберем подробно решение этой задачи, делая упор на составлении условий. Определим количество условных операторов, достаточных для записи условий задачи. Поскольку условий три, то операторов ЕСЛИ должно быть 3-1=2. Теперь разберем запись логического выражения для каждого из операторов. Логическое выражение должно быть построено на основе части предложения, находящейся между словами «если ..то». В нашем случае это «дата находится в первой половине указанного диапазона и день недели пятница или». Выделим логические связки И и ИЛИ:

«дата находится в первой половине указанного диапазона И день недели пятница ИЛИ среда».

Запишем условие в формате логических операторов Еxcel:

И (дата находится в первой половине указанного диапазона; ИЛИ (день недели = пятница; день недели=среда))

Теперь осталось перевести вербальную запись в формальную с использованием адресов ячеек. Для этого сформируем данные на одном из листов электронной таблицы согласно условию задачи.

Таблица 2. 13

Применение логических функций с форматом дат

Тогда логическое выражение для левой верхней ячейки данного диапазона примет вид

И(A1<$B$23; ИЛИ(ДЕНЬНЕД(A1)=6; ДЕНЬНЕД(A1)=4)).

Рассмотрим запись «внешнего» оператора условия:

=ЕСЛИ (И(A1<$B$23; ИЛИ (ДЕНЬНЕД(A1)=6; ДЕНЬНЕД(A1)=4); «аванс= »&ДЕНЬ360(A1;$B$21)*10;….)

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

ЕСЛИ (И(A1<$B$23; ИЛИ (ДЕНЬНЕД(A1)=2; ДЕНЬНЕД(A1)=5); «аванс= »&ДЕНЬ360(A1;$B$21)*30)

С учетом третьего условия окончательно имеем:

=ЕСЛИ(И(A1<$B$23; ИЛИ(ДЕНЬНЕД(A1)=6; ДЕНЬНЕД(A1)=4)); «аванс= »&ДНЕЙ360(A1;$B$21)*10; ЕСЛИ(И(A1<$B$23; ИЛИ(ДЕНЬНЕД(A1)=2; ДЕНЬНЕД(A1)=5); «аванс= »&ДНЕЙ360(A1;$B$21)*30; ЕСЛИ(И(A1<$B$23; ИЛИ (ДЕНЬНЕД(A1)=2; ДЕНЬНЕД(A1)=5); «зарплата= »&ДНЕЙ360(A1;$B$21)*30;0)))

Сформируйте новый массив и разместите его ниже данного, начиная с 27-й строки. Формулу, приведенную выше, введите в ячейку А27.

Самостоятельная работа

Сформировать выборку из 120 случайных дат – числа 4 квартала 2007 года. Разместить ее в диапазоне 12х10.

Найти наибольшее, наименьшее значение даты, среднее значение.

Ниже сформированного массива вывести массив такого же размера, полученный, исходя из следующих условий:

  • Если дата находится во второй половине указанного диапазона и день недели вторник или среда или четверг, то вывести в ячейку значение «аванс=» и количество дней, прошедших от заданной в ячейке даты до максимальной умноженной на 30.

  • Если дата находится во второй половине указанного диапазона и день недели понедельник или пятница, то вывести в ячейку значение «аванс=» и количество дней, прошедших от заданной в ячейке даты до максимальной умноженной на 10.

  • Если дата находится в первой половине указанного диапазона и день недели воскресенье или вторник, то вывести в ячейку значение «зарплата=» и количество дней, прошедших от заданной в ячейке даты до максимальной увеличенной на 5.

  • Во всех других случаях ничего не выводить.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]