Как сделать сравнение в Excel

Это глава из книги: Майкл Гирвин. Ctrl+Shift+Enter. Освоение формул массива в Excel.

Предыдущая глава       Оглавление          Следующая глава

Выборки, основанные на одном или нескольких условиях. Ряд функций Excel используют операторы сравнения. Например, СУММЕСЛИ, СУММЕСЛИМН, СЧЁТЕСЛИ, СЧЁТЕСЛИМН, СРЗНАЧЕСЛИ и СРЗНАЧЕСЛИМН. Эти функции осуществляют выборки на основе одного или нескольких условий (критериев). Проблема в том, что эти функции могут только складывать, подсчитывать количество, и находить среднее. А если вы хотите наложить условия на поиск, например, максимального значения или стандартного отклонения? В этих случаях, поскольку не существует встроенной функции, вы должны изобрести формулу массива. Нередко это связано с использованием оператора сравнения массивов. Первый пример в этой главе, показывает, как рассчитать минимальное значения при одном условии.

Воспользуемся функцией ЕСЛИ, чтобы выбрать элементы массива, отвечающие условию. На рис. 4.1 в левой таблице присутствуют столбец с названиями городов и столбец с временем. Требуется найти минимальное время для каждого города и поместить это значение в соответствующую ячейку правой таблицы. Условие для выборки – название города. Если вы используете функцию МИН, то сможете найти минимальное значение столбца В. Но как вы выберите только те числа, что относятся только к Окленду? И как вам скопировать формулы вниз по колонке? Поскольку в Excel нет встроенной функции МИНЕСЛИ, вам необходимо написать оригинальную формулу, совмещающую функции ЕСЛИ и МИН.

Как сделать сравнение в Excel

Рис. 4.1. Цель формулы: выбрать минимальное время для каждого города

Скачать заметку в формате Word или pdf в формате Excel2013

Как показано на рис. 4.2, вам следует начать ввод формулы в ячейку E3 с функции МИН. Но вы же не можете поместить в аргумент число1 все значения столбца B!? Вы хотите отобрать только те значения, которые относятся к Окленду.

Рис. 4.2. Начните с ввода функции МИН

Как показано на рис. 4.3, на следующем этапе введите функцию ЕСЛИ в качестве аргумента число1 для МИН. Вы вложили ЕСЛИ внутрь МИН.

Рис. 4.3. Добавьте ЕСЛИ внутрь МИН

Разместив курсор в месте введения аргумента лог_выражение функции ЕСЛИ (рис. 4.4), вы выделяете диапазон с названиями городов А3:А8, а затем нажимаете F4, чтобы сделать ссылки на ячейки абсолютными (подробнее см., например, Относительные, абсолютные и смешанные ссылки на ячейки в Excel). Затем вы набираете сравнительный оператор – знак равенства. Наконец, вы выделите ячейку слева от формулы – D3, оставляя ссылку на нее относительной. Сформулированное условие позволит выбрать только Окленды при просмотре диапазона А3:А8.

Как сделать сравнение в Excel

Рис. 4.4. Создайте оператор массива в аргументе лог_выражение функции ЕСЛИ

Итак, вы создали оператор массива с помощью оператора сравнения. В любой момент обработки массива оператор массива является оператором сравнения, так что результатом его работы будет массив, состоящий из значений ИСТИНА и ЛОЖЬ. Чтобы убедиться в этом, выделите массив (для этого щелкните во всплывающей подсказке на аргумент лог_выражение) и нажмите F9 (рис. 4.5). Обычно вы используете один аргумент лог_выражение, возвращающее либо ИСТИНУ, либо ЛОЖЬ; здесь же результирующий массив вернет несколько значений ИСТИНЫ и ЛЖИ, так что функция МИН выберет минимальное число только для тех городов, которые соответствуют значению ИСТИНА.

Как сделать сравнение в Excel

Рис. 4.5. Чтобы увидеть массив, состоящий из значений ИСТИНА и ЛОЖь, щелкните во всплывающей подсказке на аргумент лог_выражение и нажмите F9

Надеюсь, вы не забыли (см. главу 2), чтобы «не испортить» формулу после F9 нажмите Ctrl+Z, и формула вернется в исходное состояние.

Как показано на рис. 4.7, далее следует ввести точку с запятой, чтобы перейти к вводу аргумента значение_если_истина функции ЕСЛИ (обратите внимание, что во всплывающей подсказке выделился второй аргумент функции ЕСЛИ). Ведите диапазон В3:В8 и нажмите F4. Выделенный диапазон должен иметь такой же размер, как и массив аргумента лог_выражение (в нашем случае в каждом массиве по 6 элементов). На этом ввод можно завершить, так как аргумент значение_если_ложь является необязательным, и вы, действительно, не хотите что-то считать, для тех ячеек, где аргумента лог_выражение принимает значение ЛОЖЬ. Функция МИН запрограммирована так, что проигнорирует логические значения.

Как сделать сравнение в Excel

Рис. 4.7. Введите диапазон в аргумент значение_если_истина

Как только вы ввели закрывающую скобку функции ЕСЛИ, всплывающая подсказка «сообразила», что ввод функции ЕСЛИ завершен, и стала показывать синтаксис функции МИН (рис. 4.8). Обратите внимание, что вся функция ЕСЛИ разместилась в аргументе число1 функции МИН.

Как сделать сравнение в Excel

Рис. 4.8. Функция ЕСЛИ заняла место число1 среди аргументов функции МИН

Чтобы увидеть массив, возвращаемый функцией ЕСЛИ, во всплывающей подсказке щелкните на аргумент1, и нажмите F9 (рис. 4.9). Видно, что массив вернул 4 ЛОЖНЫХ логических значения, когда город не совпадает с Oakland и два числа – 9 и 6 – когда город совпадает с Oakland. Это удивительное использование функции ЕСЛИ позволяет отфильтровать значения, которые вам не нужны и найти минимум только среду «нужных» значений. Аналогичным образом вы можете использовать функцию ЕСЛИ и в других агрегатных функций, таких как МАКС и СТАНДОТКЛОН (СТАНДОТКЛОН.В и СТАНДОТКЛОН.Г в версии Excel2010).

Как сделать сравнение в Excel

Рис. 4.9. Во всплывающей подсказке щелкните на аргумент1, и нажмите F9, чтобы увидеть результирующий массив

Введите вторую закрывающую скобку (для функции МИН). Чтобы убедится, что функция ЕСЛИ не была изначально запрограммирована для обработки массивов, поместите курсор обратно в аргумент лог_выражение функции ЕСЛИ (кликните во всплывающей подсказке на этом аргументе, чтобы выделить содержимое, относящееся к нему). Обратите внимание, что весь массив «сидит» в аргументе лог_выражение (рис. 4.10). Т.е. Excel не понимает, что перед ним функция массива, эта функция не была изначально запрограммирована для обработки массивов, поэтому чтобы завершить ввод формулы в ячейку нажмите Ctrl+Shift+Enter. После этого Excel поместит фигурные скобки в начале и в конце формулы.

Рис. 4.10. Функция ЕСЛИ изначально не предназначена для работы с массивами, поэтому для корректного ввода формулы нажмите Ctrl+Shift+Enter

Вы можете скопировать формулы массива вниз столбца; фигурные скобки также копируются (рис. 4.12). Если вы измените исходные данные (названия городов и/или время), формулы массива отработают эти изменения и немедленно покажут новый результат.

Как сделать сравнение в Excel

Рис. 4.12 Формулу массива можно «протащить» вниз по столбцу

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

Функции для работы с базами данных

В Excel есть группа из 12 функций для работы с базами данных (их еще называют БД-функции). Эти функции могут производить расчеты на основе критериев. Например, ДМИН, ДМАКС, БДСУММ. Эти функции отлично справятся с работой, если у вас один-единственный расчет, а колонки имеют заголовки. На рис. 4.13 показано, как можно использовать функцию ДМИН для вычисления минимального времени по городу Окленд. Преимущество БД-функций заключается в том, что если вам нужно сделать единственное вычисление, например, найти минимальное время для Окленда (а по Сиэтлу и др. не интересует), то ДМИН создать проще, чем описанную выше =МИН(ЕСЛИ()) формулу массива. Да и работать ДМИН будет быстрее, чем формула массива (что важно при больших объемах данных). К недостатку БД-функции можно отнести требование формировать аргумент критерий из двух полей: заголовка и собственно критерия (рис. 4.14).

Как сделать сравнение в Excel

Рис. 4.13. Функция ДМИН

Рис. 4.14. Аргумент критерий должен содержать заголовок (D2) и критерий (D3)

На рис. 4.15 показано, во что может превратиться конструкция с ДМИН, если вам необходимо извлечь данные для нескольких городов. К тому же вам не удастся «протянуть» формулу вдоль колонки. На рис. 4.15 показаны формулы, которые необходимые ввести для каждого города.

Как сделать сравнение в Excel

Рис. 4.15. «Протащить» БД-функцию по колонке не получится

Если бы вам требовалось извлечь минимальное время для большого числа городов, функция ДМИН доставила бы вам много хлопот. Рис. 4.16 показывает метод, который использует БД-функцию совместно с опцией Excel Таблицей данных для облегчения выборки по большому количеству городов (в главе 21 Таблицы данных рассматриваются более подробно).

Как сделать сравнение в Excel

Рис. 4.16. БД-функция и Таблица данных, работая вместе, могут заменить функцию массива

Чтобы получить результат как на рис. 4.16, выполните следующее:

Шаг 1.       Создайте формулу ДМИН в ячейке Е3.

Шаг 2.       Поместите названия городов в ячейки D6:D8.

Шаг 3.       В ячейке Е5 создайте ссылку на ячейку Е3.

Шаг 4.       Выделите область D5:Е8.

Шаг 5.       Откройте диалоговое окно Таблицы данных, для чего нажмите Alt Д, а затем Т, или пройдите по меню Данные — Работа с данными — Анализ «что если» — Таблица данных

Шаг 6.       Введите D3 в область «Подставлять значения по строкам в:» (всё равно, какую ссылку вы введете – абсолютную или относительную).

Итак, когда использовать ДМИН, а когда формулу массива МИН(ЕСЛИ(…))? Если вам нужно выполнить единственное вычисление, и данные у вас организованы надлежащим образом (имеются заголовки), используйте ДМИН. Если у вас много вычислений и/или данные не организованы для быстрого использования БД-функций, воспользуйтесь формулой массива. Рассмотрите также возможность совместного использования БД-функции и инструмента Таблица данных.

Сводные таблицы

Если вам не требуется, чтобы после внесения изменений в исходные данные, результаты мгновенно обновлялись (что характерно для формул), рассмотрите возможность использования сводной таблицы, которая позволит применить один или несколько критериев для отбора данных. Почему? Потому что сводные таблицы довольно легко создать. Особенно они будут полезны, если критериев много, и/или они весьма «заковыристые». Этот раздел просматривает одну-вычисление условия. Рис. 4.17 показан завершенный сводная Таблица для расчета минимального с одним условием.

Как сделать сравнение в Excel

Рис. 4.17. Создать сводную таблицу быстро и просто

Чтобы получить результат как на рис. 4.16, выполните следующее:

Шаг 1.       Убедитесь, что все колонки имеют имена и нет пустых строк и колонок.

Шаг 2.       Встаньте на любую ячейку исходных данных перейдите на вкладку ленты Вставить и в области Таблицы кликните на Сводная таблица.

Шаг 3.       В открывшемся диалоговом окне Создание сводной таблицы включите На существующий лист и в поле Диапазон введите D1.

Шаг 4.       Перетащите Город поле Строки и Время, ч в поле Значения.

Шаг 5.       Щелкните правой кнопкой мыши на одной из ячеек диапазона Е1:Е4 и в контекстном меню выберите опцию Параметры полей значений; в открывшемся окне на вкладке Операция выберите Минимум.

Шаг 6.       Встаньте на любую ячейку сводной таблицы, и сделайте активной вкладку Работа со сводными таблицами – Конструктор; в области Макет кликните на Общие итоги и выберите Отключить для строк и столбцов; там же (в области Макет) кликните на Макет отчета и выберите Показать в табличной форме.

Шаг 7.       Кликните на ячейке D1 и введите Город, кликните на Е1 и введите Минимальное время.

Так что же предпочесть: сводную таблицу или формулу массива? Главный недостаток сводных таблиц заключается в том, что они не обновляются сразу же после изменения исходных данных (нужно встать на любую ячейку сводной таблицы, кликнуть правой кнопкой мыши и выбрать Обновить). В то же время формулы обновляются моментально. Если у вас несколько критериев для отбора, сводные таблицы позволяют проще справиться с ними, перетаскивая поля в области строк, колонн, значений и фильтра. Формулы массива с каждым дополнительным критерием становятся всё сложнее и сложнее. Если вы хотите изменить функцию, в сводной таблице вы просто щелкните правой кнопкой мыши и выберите одну из операций: Сумма, Количество, Минимум… (всего их 11). Используя формулу массива, необходимо перестроить формулу, но… в вашем распоряжении не 11, а 350 функций Excel. Сводные таблице занимают место на листе, их сложнее форматировать. Если в вашем арсенале будет и то, и другое, вы сможете гибче решать стоящие перед вами задачи.

Операции сравнения массивов с несколькими условиями

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

Как сделать сравнение в Excel

Рис. 4.18. Цель – рассчитать максимальный объем продаж для каждого сотрудника на западе

Вы хотите написать формулу, которую можно «протянуть» по столбцу, также вы хотите, чтобы формула автоматически обновлялась при изменении исходных данных. Вы можете решить задачу с помощью функции МАКС с двумя вложенными функциями ЕСЛИ. Начните ввод формулы в ячейку F5 с функции МАКС; в качестве аргумента число1 вложите функцию ЕСЛИ, которая позволит вам выбрать только те значения, которые соответствуют вашим условиям (рис. 4.19).

Рис. 4.19. Наберите =МАКС(ЕСЛИ(

В качестве первого аргументу лог_выражение функции ЕСЛИ наберите оператор сравнения, спрашивающий: «совпадает ли значение в столбце Регион с условием в ячейке F2?» (рис. 4.20). В качестве результата оператор сравнения $A$3:$A$12=$F$2 вернет последовательность значений ИСТИНА и ЛОЖЬ.

Как сделать сравнение в Excel

Рис. 4.20. Введите оператор массива

Далее введите разделитель – точка с запятой, и всплывающая подсказка покажет, что вы переместились из области набора аргумента лог_выражение к набору аргумента значение_если_истина (рис. 4.21). Обычно, здесь вводят значение, которые хотят получить в случае если аргумент лог_выражение вернул значение ИСТИНА, но ведь у вас есть еще одно условие, поэтому введите еще одну функцию ЕСЛИ (рис. 4.22). В качестве первого аргумента введите оператор массива, спрашивающий: «совпадает ли значение в столбце Представитель с условием в ячейке Е5?»

Рис. 4.21. Введите разделитель – точку с запятой – это перенесет вас в область набора следующего аргумента

Как сделать сравнение в Excel

Рис. 4.22. Добавьте вторую функцию ЕСЛИ и оператор массива, проверяющий второе условие

Просто чтобы убедиться, что вторая ЕСЛИ «сидит» в аргументе значение_если_истина первой ЕСЛИ, встаньте курсором на втором слове ЕСЛИ (рис. 4.23). Видно, что во всплывающей подсказке выделился аргумент значение_если_истина. До Excel 2007, вы могли вложить друг в друга до семи функций ЕСЛИ; начиная с Excel 2007 вы можете вложить до 64 функций.

Рис. 4.23. Вторая ЕСЛИ «сидит» в аргументе значение_если_истина первой ЕСЛИ

Введите разделитель – точку с запятой. Теперь вы можете добавлять массив Продажи в качестве аргумента значение_если_истина второй ЕСЛИ (рис. 4.24). Эмпирическое правило для внедрения друг в друга функций ЕСЛИ гласит: продолжайте последовательно вводить функции ЕСЛИ в качестве аргумента лог_выражение предыдущей ЕСЛИ, пока у вас не закончатся условия. Затем вы можете ввести в качестве аргумента значение_если_истина. При этом все значения аргументов значение_если_ложь могут быть опущены, поскольку функция МАКС (и целый ряд других) игнорирует логические значения.

Как сделать сравнение в Excel

Рис. 4.24. Введите диапазон значений для аргумента значение_если_истина второй ЕСЛИ

Три закрывающие скобки завершат набор формулы (рис. 4.25). Вы можете проверить, что вы набрали правильное число закрывающих скобок, следя за их цветом. Последняя закрывающая скобка должна иметь тот же цвет, что и первая открывающая.

Рис. 4.25. Черная закрывающая скобка означает, что набор формулы завершен

Если во всплывающей подсказке вы щелкните на аргумент число1, а затем нажмете клавишу F9, то увидите, что две вложенные функции ЕСЛИ отобрали только те значения, которые соответствуют обоим критериям (рис. 4.26). Числа 914 и 610 были выбраны потому, что они относятся, как к региону Запад, так и к представителю Chin.

Рис. 4.26. Две вложенные функции ЕСЛИ отобрали только те значения, которые соответствуют обоим критериям

Примечание: рассмотренный пример демонстрирует И критерии. С И критериями, все условия функций ЕСЛИ должны вернуть значение ИСТИНА. В главе 11, вы познакомитесь с ИЛИ критерием; для истинности всего выражения, по крайней мере, одна ЕСЛИ должна вернуть значение ИСТИНА.

Еще пара слов о том, как работает формула. Каждая из двух функций ЕСЛИ проверяет свой массив: первая – А3:А12 на предмет совпадения со значением в F2, вторая – В3:В12 на совпадение с Е5. Только в том случае, когда оба условия выполнены, функция ЕСЛИ возвращает соответствующие значения из третьего массива – С3:С12. Формула выглядит так:

=МАКС(ЕСЛИ({ИСТИНА:ЛОЖЬ:ИСТИНА:ИСТИНА:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ:ИСТИНА}; ЕСЛИ({ИСТИНА:ЛОЖЬ:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ЛОЖЬ:ИСТИНА:ЛОЖЬ:ЛОЖЬ:ЛОЖЬ}; {914:355:590:610:506:825:710:280:363:685})))

Мы знаем, что функция ЕСЛИ не была изначально запрограммирована на работу с массивами, поэтому для ввода формулы в ячейку нажмите Ctrl+Shift+Enter. После того, как вы введете формулу массива, убедитесь, что появились фигурные скобки в начале и в конце формулы. Поскольку они есть, вы можете скопировать формулу вниз по столбцу (рис. 4.29).

Как сделать сравнение в Excel

Рис. 4.29. Формула массива работает в трех ячейках

После того, как вы создали формулу массива, можно задуматься и о том, как решать задачу другим способом? Как и в первом примере этой главы вам придут на помощь функция для работы с базами данных ДМАКС (рис. 4.30) и сводная таблица (рис. 4.31).

Как сделать сравнение в Excel

Рис. 4.30. ДМАКС легко найдет максимальное значение при двух условиях, а вот копирование формулы по столбцу затруднено

Как сделать сравнение в Excel

Рис. 4.31. Сводная таблица очень удобна для отыскания максимального значения при двух условиях, но она требует обновления, если исходные данные изменились

Следующий раздел описывает, как использовать оператор сравнения НЕ и некоторые новые удивительные функции Excel доступные с версии 2010 г., которые могут осуществлять выборки на основе условий (например, нахождение минимума или максимума), без Ctrl+Shift+Enter.

Определение минимума при двух условиях, одно из которых НЕ. Рис. 4.32 показаны результаты нескольких гонок на велосипедах BMX (маленькие гоночные велосипеды). Результаты представлены в трех колонках: название трассы, имя гонщика, время прохождения трассы. Задача – найти лучшее время каждого гонщика, но, поскольку трасса PI гораздо короче других, вы не хотите ее учитывать. Это значит, что вам нужна функция массива МИН с двумя условиями: соответствие имени гонщика и «все трассы, кроме PI». Можно использовать функцию МИН с двумя ЕСЛИ. Первая функция ЕСЛИ выбирает только трассы, которые не являются PI (обратите внимание, что оператор сравнения НЕ вводится как два последовательных символа «меньше» и «больше» <>). Вторая функция ЕСЛИ сравнивает имена гонщиков. (Для ввода функции используйте Ctrl+Shift+Enter.)

Как сделать сравнение в Excel

Рис. 4.32. Цель – найти минимальное время для каждого гонщика на всех трасса, кроме PI

Если вы используете Excel 2010 года или более позднюю версию, вы можете использовать новую функцию АГРЕГАТ, чтобы еще больше упростить расчет, и обойтись без Ctrl+Shift+Enter. (Функция АГРЕГАТ имеет множество различных применений, но в этой книге рассматриваются только те, что относятся к функциям массива.)

Функция АГРЕГАТ

Рассмотрим туже задачу, что и в предыдущем разделе. Как показано на рис. 4.33, если начать вводить в ячейку F5 название функции АГРЕГАТ, всплывающая подсказка предложит выбрать из двух вариантов. Выберите верхний, содержащий массива в качестве третьего аргумента. Наличие массива в качестве аргумент делает функцию АГРЕГАТ способной обрабатывать операции с массивами без использования Ctrl+Shift+Enter.

Рис. 4.33. Начните вводить АГРЕГАТ и подсказка предложит вам выбрать из двух вариантов

Первый аргумент функции АГРЕГАТ позволяет вам выбрать одну из 19 различных функций (рис. 4.34). Функции с 1-й по 13-ю не могут обработать массивы; функции с 14-й по 19-ю – могут. Кажется странным, что функция 5, МИН, не может быть использовано для операций с массивом, но вы сможете обойти эту проблему с помощью функции 15, НАИМЕНЬШИЙ, устанавливая четвертый аргумент (k) равным единице, т.е. выбирая первое наименьшее число, оно же минимальное.

Как сделать сравнение в Excel

Рис. 4.34. Первый аргумент функции АГРЕГАТ

Второй аргумент позволяет выбрать один из 7 вариантов обработки строк массива (рис. 4.35). Вариант №6 поможет в нашем случае, потому что позволит игнорировать ошибку, когда хотя бы одно из условий не выполняется.

Как сделать сравнение в Excel

Рис. 4.35. Второй аргумент функции АГРЕГАТ

Итак, начав набирать функцию АГРЕГАТ, выберите во всплывающем меню в качестве первого аргумента функцию 15, НАИМЕНЬШИЙ (рис. 4.36). А в качестве второго аргумента опцию под номером 6 (рис. 4.37).

Как сделать сравнение в Excel

Рис. 4.36. Выберите в качестве первого аргумента функцию 15, НАИМЕНЬШИЙ

Как сделать сравнение в Excel

Рис. 4.37. Выберите в качестве второго аргумента опцию 6 – Пропускать ошибочные значения

После ввода разделите – точки с запятой, третий аргумент функции АГРЕГАТ – массив – выделяется полужирным шрифтом (рис. 4.38). Т.е. третий аргумент функции АГРЕГАТ изначально запрограммирован для обработки массива без использования клавиш Ctrl+Shift+Enter (помните, что это верно только для функций с 14-й по 19-ю).

Рис. 4.38. Третий аргумент функции АГРЕГАТ – массив – изначально запрограммирован для обработки без использования клавиш Ctrl+Shift+Enter

Теперь можно в качестве третьего аргумента функции АГРЕГАТ ввести полученную ранее функцию ЕСЛИ (точнее две вложенные функции ЕСЛИ) для отбора по имени гонщика и всем трекам, кроме PI:

ЕСЛИ($A$3:$A$13<>$F$2;ЕСЛИ($B$3:$B$13=E5;$C$3:$C$13)

Заметим, что если у вас есть массив, который помещен в любой из аргументом функции ЕСЛИ ввод формулы требует нажатия Ctrl+Shift+Enter, даже несмотря на то, что саму функцию ЕСЛИ вы поместите внутрь функции, умеющей работать с массивами, например АГРЕГАТ или СУММПРОИЗВ. Образно говоря, функция ЕСЛИ является козырной и бьет другие функции. Если вы стремитесь избежать ввода Ctrl+Shift+Enter, постарайтесь обойтись без ЕСЛИ.

Чтобы проверить это правило, введите формулу:

=АГРЕГАТ(15;6;ЕСЛИ($A$3:$A$13<>$F$2;ЕСЛИ($B$3:$B$13=E5;$C$3:$C$13));1)

Вы получаете ошибку #ЗНАЧ! Если же вы введете формулу с помощью клавиш Ctrl+Shift+Enter, то формула будет работать, но… это признание вашего поражения, так как вспомните, что цель была – придумать формулу массива, которая не требовала нажатия Ctrl+Shift+Enter. Поэтому, если вы хотите остаться верным своей цели, вы должны скорректировать формулу в аргументе массив и избавиться от ЕСЛИ. Решение основано на замечательном свойстве функции АГРЕГАТ пропускать ошибочные значения! Замените ЕСЛИ($A$3:$A$13<>$F$2;ЕСЛИ($B$3:$B$13=E5;$C$3:$C$13) на $C$3:$C$13/(($A$3:$A$13<>$F$2)*($B$3:$B$13=E5)). Заметьте, что в знаменателе вы должны добавить скобки для каждого оператора сравнения, а также дополнительный набор скобок для всего знаменателя.

Вы поместили в числитель массив значений (время), а в знаменатель – произведение двух условий (операторы сравнения массивов). Только в том случае, когда оба условия вернут значение ИСТИНА, знаменатель будет равен единице.[1] Если хотя бы одно сравнение неверно, знаменатель обращается в ноль. Деление на ноль даст ошибку, и функция АГРЕГАТ ее пропустит.

Если вы выделите аргумент массив в формуле АГРЕГАТ и нажмете F9, то увидите результирующий массив (рис. 4.39).

Как сделать сравнение в Excel

Рис. 4.39. Выделите аргумент массив в формуле АГРЕГАТ (а) и нажмете F9 (б)

Результирующий массив содержит только числа, которые удовлетворяют обоим условиям (И критерий). Фактически ваша формула массива отфильтровала числа, отвечающие обоим условиям. Теперь вы, наверное, понимаете, почему следовало применить деление. Оно привело к возникновению ошибки #ДЕЛ/0! Произведение не подошло бы, так как привело к появлению элементов массива равным нулю. Именно один их этих нулей и выбрала бы функция МИН. В тоже время ошибки #ДЕЛ/0! не составляют проблемы для функции АГРЕГАТ, поскольку второй ее аргумент содержит опцию 6, дающий команду функции пропускать ошибочные значения. Поскольку мы избавились от функции ЕСЛИ внутри функции АГРЕГАТ, ввод нашей формулы не требует нажатия Ctrl+Shift+Enter. Вы с легкостью «протянете» формулу по столбцу F.

Так что же использовать, функцию АГРЕГАТ с двоичными условиями или формулу с МИН и двумя ЕСЛИ? По времени работы и сложности написания эти две конструкции примерно одинаковы. Но… функция АГРЕГАТ не требует нажатия Ctrl+Shift+Enter. Поэтому я предпочту ее.

Посмотрите, как можно решить эту же задачу с использованием ДМИН (рис. 4.41) и сводной таблицы (рис. 4.42). Обратите внимание на фильтр сводной таблицы не позволяет выбрать «НЕ PI». После создания сводной таблицы используйте фильтр в поле Трасса поставьте галочку в Выделить несколько элементов и снимите галочку напротив PI.

Как сделать сравнение в Excel

Рис. 4.41. Решение с помощью функции ДМИН и Таблицы данных

Как сделать сравнение в Excel

Рис. 4.42. Решение с помощью сводной таблицы

Использование условий при вычислении стандартного отклонения. Итак, в этой главе вы узнали, как сделать выборки для нахождения минимума или максимума с использованием функции АГРЕГАТ, конструкции ЕСЛИ(ЕСЛИ()), функции базы данных ДМИН или сводной таблицы. Однако, если бы вам потребовалось рассчитать стандартное отклонение вы могли бы использовать соответствующую БД-функцию, сводную таблицу и конструкцию с ЕСЛИ, но не функцию АГРЕГАТ. Почему? Потому что два стандартных отклонения функции АГРЕГАТ (под номерами 7 и 8 ) не могут обработать массивы.

Для расчета стандартного отклонения воспользуйтесь функцией СТАНДОТКЛОН.В (СТАНДОТКЛОН в версии Excel до 2010) и вложенными функциями ЕСЛИ (рис. 4.43).

Как сделать сравнение в Excel

Рис. 4.43. Вычисление стандартного отклонения с одним условием

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

Какой метод выборки на основе критериев предпочесть?

Время работы формул, использованных в этой главе. Как говорилось в главе 2, формулы массива обрабатывающие большие наборы данных, могут увеличить время расчета. Иногда я буду приводить данные о времени работы формул. Это неофициальные результаты, которые получил лично я. Время зависит от многих факторов, и в вашей конкретной ситуации могут время может отличаться (рис. 4.44).

Как сделать сравнение в Excel

Рис. 4.44. БД-функция работает быстрее, чем конструкция МИН(ЕСЛИ(ЕСЛИ(…))) и АГРЕГАТ

[1] В Excel есть так называемое неявное преобразование типов. Логическое значение ИСТИНА соответствует числу 1, а ЛОЖЬ = 0. Подробнее это будет рассмотрено в главе 11. См. также, например, Что такое -- или как превратить ИСТИНА в 1, а ЛОЖЬ в 0?

Оцените статью
Как в офисе.ru
Добавить комментарий