Общие сведения о логических выражениях
Создайте в рабочей книге Excel новый лист «Логика».
Введите в ячейку А1 формулу =7>5. Она вернет значение Истина. Теперь введите в ячейку А2 формулу =3>5. Эта формула вернет значение Ложь. Правые части обеих формул представляют собой высказывания, т.е. утверждение, относительно которых можно заключить, верны они или нет. Арифметические формулы, которые были рассмотрены выше, например формула =A1*B1, высказываниями не являются. Арифметические формулы предписывают, как по исходным данным вычислить значение и вопрос об их истинности или ложности не имеет смысла.
Рассмотрим другой пример. Введите в ячейку А4 число 2, а в ячейку B4 формулу =А4>3. Формула возвращает значение ЛОЖЬ. Теперь исправьте содержимое ячейки А4 – введите число 6. Формула возвращает значение ИСТИНА. В ячейке В4 записан предикат, т.е. высказывание с переменными (в данном случае переменная одна). В зависимости от значения переменных предикат может принимать значения Истина или ЛОЖЬ. В этом примере формула как бы дает ответ на вопрос: «Число (или результат вычислений по формуле), хранящийся в ячейке А4, превышает число 3?» В зависимости от значения А4 ответ будет либо ДА (ИСТИНА) либо НЕТ (ЛОЖЬ).
Сравнение двух арифметических выражений, содержащих переменные, дает предикат. В формуле =А4>3 ее составные части (А4 и 3) можно считать арифметическими выражениями, только очень простыми. Более сложный пример: =3*(A4^2-1)>(2*A4+1)/5.
Таблица 2
Операции сравнения
> | >= | < | <= | = | <> |
больше | больше или равно | меньше | меньше или равно | равно | не равно |
Обратите внимание, что символ отношения «больше или равно» изображается двумя знаками. Причина в том, что на клавиатуре отсутствует знак ≥.
Высказывание и предикат имеют общее название – логическое выражение. Имеются логические операции, которые позволяют строить сложные логические выражения. Эти операции реализованы в Excel как функции, перечень которых приведен в таблице 3 в порядке убывания приоритета.
Таблица 3
Логические операции
Название | Обозначение | Функция Excel |
Отрицание | ⌐ | НЕ |
Конъюнкция | & | И |
Дизъюнкция | V | ИЛИ |
На самом деле в Excel приоритет логических операций не имеет значения, так как они реализованы виде функций.
У логических функций аргументы могут принимать только два значения: ИСТИНА или ЛОЖЬ. Поэтому логические функции можно задавать таблицей, где перечислены все возможные значения аргументов и соответствующие им значения функций. Такие таблицы называются таблицами истинности (таблица 4 и таблица 5).
Функция НЕ может иметь только один аргумент, а функции И и ИЛИ два и более аргументов.
Таблица 4
Таблица истинности для функции НЕ
х | НЕ(х) |
ЛОЖЬ | ИСТИНА |
ИСТИНА | ЛОЖЬ |
Таблица 5
Таблица истинности для функций И и ИЛИ
х | у | И(х,у) | ИЛИ(х,у) |
ЛОЖЬ | ЛОЖЬ | ЛОЖЬ | ЛОЖЬ |
ЛОЖЬ | ИСТИНА | ЛОЖЬ | ИСТИНА |
ИСТИНА | ЛОЖЬ | ЛОЖЬ | ИСТИНА |
ИСТИНА | ИСТИНА | ИСТИНА | ИСТИНА |
На практике в числом виде логические выражения как правило не используются. Логическое выражение служит первым аргументом функции ЕСЛИ:
ЕСЛИ(лог_выражение; значение_если_истина; значение_если_ложь).
В языках программирования высокого уровня этой функции соответствует оператор
если лог_выражение то действие1 иначе действие2
IF лог_выражение THEN действие1 ELSE действие2
Лог_выражение – это любое значение или выражение, принимающее значения ИСТИНА или ЛОЖЬ. Например, A10=100 – это логическое выражение; если значение в ячейке A10 равно 100, то выражение принимает значение ИСТИНА. В противном случае – ЛОЖЬ.
Например, сведения о предполагаемых и фактических расходах сведены в таблице в интервале A1:C4.
Предполагаемые расходы | Фактические расходы | Бюджет |
Проверьте сведения на превышение бюджета. Для этого введите в ячейку С2 следующую формулу, которую затем скопируйте в ячейки С3 и С4 =ЕСЛИ(A2<B2;"Превышение бюджета";"Бюджет не превышен")
Частичные операции
В Excel есть термин – частичная сумма, которым обозначается операция суммирования чисел из заданного диапазона, но «не всех подряд», а только тех, которые удовлетворяют определенному условию. Например, функции СУММЕСЛИ и СЧЕТЕСЛИ.
Рассмотрим частичную операцию суммирования на примере подсчета суммы комиссионных для стоимости имущества более 250 000 руб.
Рисунок 17 – Частичная операция суммирования
В ячейку В6 введена функция СУММЕСЛИ, аргументы которой показаны в диалоговом окне на рисунке
Рисунок 18 – Диалоговое окно СУММЕСЛИ
В поле Диапазон задан диапазон А2:А5 в котором содержатся данные о стоимости имущества. Функция СУММЕСЛИ сравнивает каждое значение из диапазона вычисляемых ячеек А2:А6 с критерием отбора >250000, заданным в поле Критерий. Ячейки в поле Диапазон_суммирования суммируются, только если соответствующие им ячейки в аргументе «диапазон» удовлетворяют критерию. Если Диапазон_суммирования опущен, то суммируются ячейки в аргументе «диапазон».
В нашем случае в поле Диапазон_суммирования присутствуют фактические ячейки для суммирования – значения комиссионных. Функция СУММЕСЛИ просуммировала только те значения комиссионных (21 000р. + 28 000р.), для которых стоимость имущества превышает 250 000р.
Microsoft Excel предлагает дополнительные функции, которые можно применять для анализа данных с использованием условий. Например, для подсчета числа появлений текстовой строки или числа в пределах диапазона ячеек, можно воспользоваться функцией СЧЁТЕСЛИ.
Для получения формулы, возвращающей в зависимости от выполнения условия одно из двух значений, например вознаграждение по указанному объему продаж, можно воспользоваться функцией ЕСЛИ. Расширим понятие частичная сумма и введем термин частичная операция, которым будем обозначать любую из следующих операций – суммирование, подсчет количества чисел, поиск минимального или максимального числа, которые выполняются над числами, принадлежащими заданному диапазону и удовлетворяющие заданному пользователем критерию.
Будем считать, что компонента из диапазона будет включена в частичную операцию, если для нее выполняются заданные условия. Необходимо подчеркнуть, что условие включения в частичную операцию проверяется для каждой компоненты диапазона.
Формулы массива
Для поиска частичного максимума ли минимума, а также частичные подсчет и суммирование сложных условий могут быть выполнены с помощью формул массива. Такие формулы состоят из внешней функции СУММ, МАКС или МИН (собственно выполняющих их необходимую частичную операцию) и одной или нескольких вложенных функций ЕСЛИ, создающих виртуальный массив, над которыми эти операции выполняются.
Формула массива является мощным вычислительным элементом Excel. В отличие от обычных (скалярных) формул, вычисляющих значение только для одной ячейки, формулы массива вычисляют значения как для одной ячейки, так и для нескольких ячеек одновременно. Формулы массива заключены в фигурные скобки {}. Завершение ввода формулы массива осуществляется не простым нажатием клавиши Enter, а нажатием комбинации клавиш Ctrl+Shift+Enter, после чего формула автоматически «обрамляется» фигурными скобками.
Допустим, требуется вычислить сумму абсолютных значений чисел, содержащихся в диапазоне А1:А5. Если не использовать формулу массива, то единственный способ решения этой задачи состоит в том, чтобы в соседнем диапазоне, например, В1:В5, с помощью обычной функции ABS создать абсолютные значения и потом просуммировать их, например, в ячейке С1 с помощью функции СУММ.
Для того, чтобы ускорить процесс вычислений с помощью единственной формулы воспользуемся формулой массива {=СУММ(ABS(A1:A5))}.
Специально подчеркнем, что хотя функция ABS в этой формуле массива и возвращает пять значений, но ни в какие ячейки они не записываются, а просто используются в качестве слагаемых функцией СУММ. В этом случае можно говорить, что в формуле массива функция ABS возвращает виртуальный массив значений.
С учетом вышеизложенного, формулы массива, реализующие рассматриваемые задачи частичных операций могут быть записаны в следующем виде:
подсчет | {=СУММ(ЕСЛИ(Усл; 1; 0))} | суммирует единицы |
суммирование | {=СУММ(ЕСЛИ(Усл; А; 0))} | суммирует отобранные элементы |
максимальный | {=МАКС(ЕСЛИ(Усл; А))} | находит наибольшее среди отобранных |
минимальный | {=МИН(ЕСЛИ(Усл; А))} | находит наименьшее среди отобранных |
Рассмотрим использование формул массива на примере поиска минимальной выручки торговой точки, превышающую заданную величину, например 1000 р.
Исходные данные для решения задачи содержатся в диапазоне A1:B10 рабочего листа Excel. Размер выручки записан в ячейках диапазона В2:В10. Если для нахождения величины минимальной выручки ввести в ячейку С2 функцию =МИН(B2:B10) – вы найдете самую минимальную выручку 850 р., которая не удовлетворяет заданному условию – меньше 1000р. Для того, чтобы «отсечь» лишние значения и сформировать виртуальный диапазон, в котором отсутствуют компоненты, неудовлетворяющие заданному условию включим в функцию МИН функцию ЕСЛИ, задающую условия отбора.
{=МИН(ЕСЛИ(В2:В10>1000; В2:В10))}
Функция ЕСЛИ в части условия будет поэлементно сравнивать значения в диапазоне В2:В10 c заданным критерием отбора >1000 и формировать виртуальный массив из которого будут исключены элементы неудовлетворяющие заданному критерию, т.е элементы 900р. и 850р..
Значение критерия отбора можно задавать в отдельной ячейке для того, чтобы меняя его, получать новое требуемое значение.
Лекция №3. Моделирование функций И и ИЛИ в формулах массива. Извлечение данных из массива значений. Задание критериев для извлечения данных из массива