Функция в excel наименьший

Анализ топовых значений функциями НАИБОЛЬШИЙ и НАИМЕНЬШИЙ

Скорее всего вам известны простые функции МИН (MIN) и МАКС (MAX) , позволяющие быстро найти минимальное или максимальное значение в таблице. Но что если нам требуется найти, например, не самое большое, а 2-е или 5-е значение в ТОПе? Здесь помогут функции НАИБОЛЬШИЙ (LARGE) и НАИМЕНЬШИЙ (SMALL) .

Синтаксис этих функций похож:

=НАИБОЛЬШИЙ( Диапазон ; Позиция )

=НАИМЕНЬШИЙ( Диапазон ; Позиция )

  • Диапазон – диапазон ячеек с числами, которые мы проверяем.
  • Позиция – целое число, представляющее собой позицию (ранг, номер в рейтинге) извлекаемого элемента.

Например, если у нас есть таблица с прибылями по товарам, то с помощью функции НАИБОЛЬШИЙ можно легко определить максимальное (первое в рейтинге) значение из диапазона прибыли (B2:B22), которое фактически будет тождественно формуле МАКС(B2:B22):

Аналогичным образом, функция

… выдаст следующее за ним максимальное (2-е в рейтинге) и т.д.

Массив констант и сумма ТОПов

Что интересно, аргумент Позиция может быть не просто числом, а набором чисел — массивом констант в фигурных скобках. Так, например, для получения суммы первых трех максимальных значений в диапазоне можно использовать формулу с прописанным внутри массивом констант для первых трех позиций (сочетание Ctrl+Shift+Enter в конце можно не нажимать, хотя по факту это и формула массива):

Сортировка формулой

Функцию НАИМЕНЬШИЙ (SMALL) очень удобно использовать для сортировки формулой набора числовых значений. Для этого достаточно сделать вспомогательную нумерацию (1, 2, 3. ) и ссылаться на нее во втором аргументе:

Если вместо НАИМЕНЬШИЙ использовать функцию НАИБОЛЬШИЙ, то сортировка, естественно, будет уже по убыванию.

Только числа

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

В этом примере функция ЕСЛИ (IF) в столбце С проверяет наименование на соответствие заданному (Огурцы) и выводит сумму или логическую ЛОЖЬ. А для извлечения потом всех полученных сумм из столбца С используется наша функция НАИМЕНЬШИЙ, которая игнорирует ЛОЖЬ — и мы получаем список стоимостей всех сделок по нужному товару.

Функция SMALL (НАИМЕНЬШИЙ) в Excel. Как использовать

Функция НАИМЕНЬШИЙ (SMALL) в Excel используется для получения минимального значения из заданного диапазона ячеек.

Более того, с помощью функции НАИМЕНЬШИЙ в Excel вы сможете задать очередность наименьшего числа по величине. Например из диапазона (1,3,5) вы сможете получить с помощью функции второе по меньшинству число (3).

Что возвращает функция

Возвращает минимальное значение из заданного диапазона (включая заданную очередность наименьшего числа по величине).

=SMALL(array, k) – английская версия

=НАИМЕНЬШИЙ(массив;k) – русская версия

  • array (массив) – массив или диапазон ячеек из которого вы хотите вычислить минимальное значение;
  • k – ранг (очередность наименьшего числа по величине), которую вам нужно вычислить из диапазона данных.

Дополнительная информация

  • если аргумент функции array пустой, то функция выдаст ошибку;
  • если аргумент K ≤ 0 или его значение больше чем количество чисел в диапазоне, то функция выдаст ошибку;
  • вы можете указать значение “n” в аргументе k если вы хотите получить первое (наибольшее) число в диапазоне. Если вы укажете значение “1” в качестве аргумента k то по умолчанию получите минимальное значение из заданного диапазона;

Примеры использования функции НАИМЕНЬШИЙ в Excel

Пример 1. Вычисляем наименьшее число из списка

Представим, что у нас есть список чисел в диапазоне ( A2:A4 ) и нам необходимо вычислить наименьшее число из этого списка. Для этого мы можем использовать формулу:

=SMALL(A2:A4,1) – английская версия

=НАИМЕНЬШИЙ(A2:A4;1) – русская версия

В этой функции значение аргумента K равно 1, таким образом функция понимает, что нам необходимо отразить минимальное значение.

Пример 2. Вычисляем второе наименьшее число из списка

Для того чтобы вычислить из указанного выше диапазона данных ( A2:A4 ) второе по счету наименьшее число, нам поможет формула:

=SMALL(A2:A4,2) – английская версия

=НАИМЕНЬШИЙ(A2:A4;2) – русская версия

Так как значение аргумента функции K равно “2”, то функция понимает что нам необходимо отразить второе по порядку наименьшее значение.

Пример 3. Использование функции НАИМЕНЬШИЙ с пустыми ячейками

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

Пример 4. Использование функции НАИМЕНЬШИЙ с текстовыми значениями в ячейках

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

Пример 5. Использование функции НАИМЕНЬШИЙ с дублированными данными

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

Пример 6. Использование функции НАИМЕНЬШИЙ в Excel с ошибками

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

Примеры использования функций НАИБОЛЬШИЙ и НАИМЕНЬШИЙ в Excel

Функции НАИБОЛЬШИЙ и НАИМЕНЬШИЙ в Excel являются противоположными по своему смыслу и используются для определения соответственно наибольшего и наименьшего числового элемента в массиве данных.

Примечание: В Excel массивом является набор данных, представленный в виде единого объекта (например, диапазон ячеек). Массив в Excel может быть принят в качестве аргумента.

Особенности условий в функциях НАИБОЛЬШИЙ и НАИМЕНЬШИЙ

Функции НАИБОЛЬШИЙ и НАИМЕНЬШИЙ возвращают k-е максимальное и минимальное значения соответственно в выбранном массиве данных. Данные функции применяют для поиска значений, которые занимают определенное относительное положение в множестве данных.

Примечание: для простого поиска наименьшего и наибольшего значений в диапазоне данных принято использовать функции МИН и МАКС, принимающие единственный параметр на вход – диапазон данных. НАИБОЛЬШИЙ и НАИМЕНЬШИЙ предлагают расширенный функционал для поиска 1-го, 2-го… k-го наибольшего/наименьшего значений в массиве.

Обе функции имеют схожий синтаксис, поэтому не будем рассматривать его отдельно для каждой функции. Рассмотрим синтаксис для НАИБОЛЬШИЙ:

  1. Массив – диапазон либо массив числовых значений, для которого вычисляется k-е наибольшее значение. Является обязательным аргументом.
  2. K – аргумент, указывающий на позицию в наборе данных или массиве начиная с наименьшего значения. Также является обязательным аргументом функции.
  1. Если значение аргумента k превышает количество элементов в массиве данных, равно нулю или взято из диапазона отрицательных чисел, результатом работы функций НАИБОЛЬШИЙ и НАИМЕНЬШИЙ будет ошибка #ЧИСЛО!;
  2. Ошибка #ЧИСЛО! возникает также в случае, если массив окажется пустым;
  3. Функции НАИБОЛЬШИЙ и НАИМЕНЬШИЙ игнорируют текстовые данные, которые могут содержаться в массиве.
  4. Если при использовании функции НАИМЕНЬШИЙ в качестве аргумента k указать 1 (единицу), результат будет тождественен результату работы функции МИН;
  5. Если при использовании НАИМЕНЬШИЙ в качестве аргумента k указать размер массива (количество элементов, содержащихся в нем), будет получен результат, тождественный результату работы функции МАКС.



Примеры работы в Excel с функциями НАИБОЛЬШИЙ и НАИМЕНЬШИЙ

Пример 1. В конструкторском отделе предприятия работают 8 инженеров. Необходимо определить четвертую наибольшую и наименьшую зарплаты соответственно.

Внесем данные в таблицу:

Для определения наименьшей 4-й зарплаты в отделе введем следующую формулу в ячейку C2:

Читать еще:  Или функция эксель

Аргументами данной функции являются:

  1. B3:B10 – массив значений заработной платы для всех сотрудников;
  2. 4 – порядок искомого наименьшего значения в массиве.

Чтобы определить наибольшую 4-ю зарплату вводим формулу в ячейке D2:

Аргументы этой функции соответствуют тем, которые принимала функция НАИМЕНЬШИЙ в рамках данного примера.

Получаем следующие результаты:

То есть, наименьшая и наибольшая четвертые зарплаты в отделе равны 3200 и 4000 денежных единиц соответственно.

Четвертое наименьшее значение в массиве чисел

Пример 2. Для наглядности работы функции определим 1-й, 2-й, 3-й, 4-й и 5-й элементы массива данных, состоящего из пяти элементов. Из полученных результатов составим новую таблицу, произведя таким образом, по сути, сортировку элементов массива по возрастанию.

Внесем данные в таблицу:

Для решения будем использовать функцию НАИМЕНЬШИЙ, находя последовательно наименьшее 1-е, 2-е, … ,5-е значения и занося их в новую таблицу. Для примера рассмотрим процесс нахождение наименьшего 1-го значения. В ячейке C2 введем следующую формулу:

Функция принимает следующие аргументы:

  1. B2:B6 – диапазон значений исходного массива;
  2. 1 – порядок искомого наименьшего значения.

Аналогичным способом заполним ячейки C3, C4, C5 и C6, указывая в качестве аргумента k числа 2, 3, 4 и 5 соответственно.

В результате получим:

То есть, нам удалось отсортировать исходный массив и наглядно продемонстрировать работу функции НАИМЕНЬШИЙ.

  1. Подобным способом можно выполнить обратную сортировку (от большего к меньшему) используя функцию НАИБОЛЬШИЙ;
  2. Для сортировки лучше использовать другие возможности Excel, данный пример приведен лишь с целью наглядной демонстрации работы.

Формула функций НАИБОЛЬШИЙ с массивом и СУММ

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

Внесем данные о зарплате сотрудников в таблицу:

Очевидно, что зарплата у любого из двух руководителей больше, чем у любого из остальных сотрудников. Поэтому мы можем использовать функцию НАИБОЛЬШИЙ для поиска значений зарплаты гендиректора и заместителя. Для решения запишем следующую формулу:

Аргументами функции СУММ являются значения, которые вернет функция НАИБОЛЬШИЙ. Последняя принимает следующие аргументы:

  1. B3:B10 – массив, хранящий данные о зарплатах всех работников фирмы;
  2. <1;2>– интервал, соответствующий первому и второму искомым величинам.

Примечание: <1;2>– вариант записи массивов в Excel. С помощью этой записи было указано о необходимости вернуть первые два наибольших значения из массива B3:B10. Полученные значения будут просуммированы функцией СУММ.

В результате получим сумму зарплат директора и заместителя:

Теперь определим общую сумму зарплат оставшихся работников используя функцию СУММ в ячейке D2.

Визуально видно, что сотрудник оказался прав. Однако используем функционал Excel для отображения результата решения задачи в ячейке D6:

=ЕСЛИ(C3>D3;»Сотрудник оказался прав»;»Сотрудник неправ»)

Функция ЕСЛИ принимает следующие аргументы:

  1. C3>D3 – логическое выражение, в котором C3 – суммарная з/п руководителей, D3 – суммарная з/п остальных сотрудников;
  2. «Сотрудник оказался прав» – текст, который будет отображен в случае, если C3>D3 – истина;
  3. «Сотрудник неправ» – текст, который отобразится в случае, если C3>D3 – ложь.

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

Функция наименьший в Excel

Если ранее вы не сталкивались с формулами массива, рекомендую прочитать:

    Excel. Транспонирование строк в столбцы (или столбцов в строки) с помощью формулы массива

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

Основное достоинство формул массивов состоит в том, что они позволяют выполнять очень широкий круг вычислений, который другими способами выполнить нельзя. К сожалению, формулы массивов — это наиболее сложное и непонятное средство Excel.

Если вы уже постигли азы, предлагаю вам продолжить знакомство с формулами массива вместе с Джоном Уокенбахом и его книгой MS Excel 2007. Библия пользователя. — М.: Издательский дом «Вильямс», 2008. — 816 с.

Cкачать заметку в формате Word, примеры в формате Excel

Создание массивов на основе значений ячеек диапазона

На рис. 1 показан рабочий лист, содержащий данные в диапазоне A1:C4. Диапазон D8:F11 содержит массив, созданный на основе этих данных с помощью формулы

Рис. 1. Создание массива на основе значений ячеек диапазона

Массив в диапазоне D8:F11 связан со значениями диапазона A1:C4. Если изменить какое-либо значение в последнем диапазоне, то автоматически изменится соответствующее значение в массиве D8:F11.

Создание массива констант на основе значений диапазона ячеек

В предыдущем примере формула массива в ячейках D8:F11, по существу, являлась ссылкой на диапазон A1:C4. Чтобы «разорвать» эту связь и создать массив констант, выполните ряд действий.

  1. Выделите диапазон, содержащий формулу массива (в этом примере — D8:F11).
  2. Нажмите клавишу , чтобы перейти в режим редактирования формулы.
  3. Нажмите клавишу , чтобы преобразовать ссылки на ячейки в соответствующие значения.
  4. Нажмите комбинацию клавиш .

Теперь в диапазоне D8:F11 находится следующий массив: <1; " кот " ;3:4;5; " собака " :7;89;9,12: " обезьяна " ;11;44>. На рис. 2 показано, как этот массив выглядит в строке формул.

Рис. 2. После нажатия клавиши в строке формул отобразится массив констант

Выполнение операций над массивами

Следующая формула массива создает прямоугольный массив и умножает каждый его элемент на 2: <=<1;2;3;4:5;6;7;8:9;10;11;12>*2> (рис. 3)

Рис. 3. Результат умножения массива на 2

Следующая формула умножает каждый элемент массива на самого себя: <=<1;2;3;4:5;6;7;8:9;10;11;12>*<1;2;3;4:5;6;7;8:9;10;11;12)>. Эту формулу можно переписать в более компактном виде: <=<1;2;3;4:5;6;7;8:9;10;11;12>^2>. Если массив хранится в диапазоне ячеек (допустим, А1:С4), то подобная формула возвратит квадрат каждого элемента этого массива: <=А1:С4^2>(рис. 4).

Рис. 4. Возведение значений массива в квадрат

Применение функций к массивам

В операциях над массивами можно использовать функции. Следующая формула массива, которую нужно ввести в вертикальный диапазон, состоящий из 10 ячеек, вычисляет квадратные корни каждого элемента массива: <=КОРЕНЬ(<1:2:3:4:5:6:7:8:9:10))>. Если массив хранится в диапазоне ячеек (например, А1:А10), подобная формула выполнит эти же вычисления для каждого элемента массива: <=КОРЕНЬ(А1:А10)>(рис. 5).

Рис. 5. Извлечение квадратного корня из элементов массива

Транспонирование массивов

При транспонировании массива его строки становятся столбцами, а столбцы — строками. Если массив одномерный, то при транспонировании горизонтальный массив становится вертикальным и наоборот. Для выполнения операции транспонирования используется функция Excel ТРАНСП. Допустим, имеется одномерный горизонтальный массив <1; 2; 3; 4; 5>, расположенный в диапазоне А1:Е1. С помощью функции ТРАНСП можно преобразовать его в вертикальный массив. Для этого выделите вертикальный диапазон, состоящий из пяти ячеек, введите формулу =ТРАНСП(А1:Е1) и нажмите комбинацию клавиш (рис. 6).

Рис. 6. Транспонирование одномерного массива

Транспонирование двухмерных массивов выполняется подобным образом. На рис. 7 показан двухмерный массив в диапазоне A1:D3. Формула <=TPAHCП(A1:D3)>создает в диапазоне F1:H4 транспонированный массив.

Рис. 7. Транспонирование двумерного массива

Генерирование последовательности натуральных чисел

С помощью формул массивов легко генерировать последовательности натуральных чисел. Для этого идеально подходит функция СТРОКА, возвращающая номер строки. Рассмотрим формулу массива, введенную в вертикальный диапазон, состоящий из 12 ячеек: <=СТРОКА(1:12)>. Эта формула возвращает массив из 12 элементов, содержащий числа от 1 до 12 (рис. 8). Отметим, что данная формула возвращает правильный результат, независимо от того, где расположен диапазон, в который вводится эта формула.

Рис. 8. Последовательности натуральных чисел на основе функции СТРОКА

Если вы поэкспериментируете с приведенной формулой, то обнаружите присущий ей недостаток: при добавлении новой строки выше диапазона, где расположена эта формула, Excel изменит номера строк, и формула автоматически преобразуется в формулу, возвращающую значения от 2 до 13: <=СТРОКА(2:13)>(рис. 9).

Рис. 9. Добавление строки над массивом изменяет ряд чисел

Приведем формулу массива, которая лишена этого недостатка: <=СТРОКА(ДВССЫЛ( " 1:12 " ))>. Эта формула использует функцию ДВССЫЛ, аргументом которой является текстовая строка. Excel не изменяет этот аргумент при вставке или удалении строк на рабочем листе, поэтому данная формула всегда возвращает правильный результат, состоящий из чисел от 1 до 12 (рис. 10).

Рис. 10. Последовательность натуральных чисел на основе функции ДВССЫЛ не меняется при добавлении строк над массивом

Функции, возвращающие массив. Результатом выполнения некоторых функций Excel является массив. Чтобы такие функции возвращали правильный результат, выделите диапазон, введите формулу, содержащую одну из этих функций, как формулу массива. Вот несколько функций, которые возвращают массив: ПРЕДСКАЗ, ЧАСТОТА, РОСТ, ЛИНЕЙН, ЛГРФПРИБЛ, МОБР, МУМНОЖ и ТЕНДЕНЦИЯ. Дополнительную информацию об этих функциях можно найти в справочной системе Excel.

Формулы массивов для отдельных ячеек

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

Подсчет количества символов в диапазоне

Если необходимо подсчитать общее количество символов в определенном диапазоне, то традиционный метод выполнения этой задачи состоит в том, чтобы найти количество символов в каждой ячейке диапазона, например, с помощью формулы =ДЛСТР(А1), и затем суммировать эти значения (рис. 11). Формула массива <=СУММ(ДЛСТР(А1:А10))>выполняет эти вычисления без промежуточных формул. Эта формула с помощью функции ДЛСТР создает виртуальный массив в памяти компьютера, содержащий количество символов каждой ячейки диапазона, а затем суммирует элементы виртуального массива.

Рис. 11. Одна формула массива заменяет целый ряд отдельных формул

Суммирование трех наименьших значений диапазона

Предположим, что имеется диапазон чисел, названный Данные, и вы хотите узнать сумму трех наименьших чисел этого диапазона. Формула массива решает эту задачу: <=СУММ(НАИМЕНЬШИЙ(Данные;<1;2;3>))> (рис. 12). Здесь в качестве второго аргумента в функции НАИМЕНЬШИЙ используется массив констант. Это вынуждает Excel сгенерировать виртуальный массив, содержащий три наименьших значения из диапазона Данные. Затем к этому виртуальному массиву применяется функция СУММ, которая суммирует его элементы и возвращает искомый результат.

Рис. 12. Формула массива возвращает сумму трех наименьших значений поименованного диапазона Данные (A1:А10)

Подсчет количества ячеек, содержащих текст

В следующей формуле функция ЕСЛИ используется для проверки содержимого каждой ячейки диапазона. Затем создается виртуальный массив (того же размера, что и исходный), в котором содержатся числа 1 (если в ячейке находится текст) и 0 (в противном случае). Новый массив передается в функцию СУММ, которая возвращает сумму элементов массива. В итоге получаем количество ячеек, содержащих текст: <=СУММ(ЕСЛИ(ЕТЕКСТ(А1:D5);1;0))>. На рис. 13 показан пример использования этой формулы в ячейке С8. В результате выполнения функции ЕСЛИ создается виртуальным массив <0;1;1;1:1;0;0;0:1;0;0;0:1;0;0;0:1;0;0;0>. Обратите внимание на то, что виртуальный массив состоит из пяти строк, содержащих по четыре элемента (т.е. тот же размер, что и исходный массив). Функция СУММ суммирует значения этого виртуального массива.

Рис. 13. Формула массива возвращает число ячеек диапазона, содержащих текст

Следующая формула выполняет туже работу, но записана в более компактном виде <=СУММ(ЕТЕКСТ(A1:D5)*1)>. Здесь вместо функции ЕСЛИ используется тот факт, что ИСТИНА*1=1, а ЛОЖЬ*1=0

Исключение промежуточных формул

Одно из достоинств формул массивов заключается в том, что они позволяют исключать промежуточные формулы (и соответственно результаты промежуточных вычислений) с рабочих листов. Это делает таблицы на рабочих листах более компактными и понятными. На рис. 14 показан рабочий лист, содержащий баллы студентов до и после выполнения тестов. В столбце D содержатся формулы, вычисляющие разность между этими баллами, в ячейке D12 — формула, вычисляющая среднее значение этих разностей: =CPЗHAЧ(D2:D11).

Рис. 14. Вычисление среднего с помощью промежуточных формул и с помощью одной формулы массива

С помощью следующей формулы массива, записанной в ячейке С15, можно исключить промежуточные вычисления в столбце D: <=СРЗНАЧ(С2:С11-В2:В11)>. В этой формуле используются два массива, содержащиеся в диапазонах С2:С11 и В2:В11. Формула создает виртуальный массив, состоящий из разностей значений этих двух массивов. Этот виртуальный массив хранится в памяти компьютера, а не в рабочем листе Excel. Функция СРЗНАЧ использует этот виртуальный массив в качестве своего аргумента и возвращает среднее его элементов. Виртуальный массив имеет вид <27;18;18;10;3;8;0;17;8;-8>. Поэтому в данном случае предыдущая формула принимает вид =СРЗНАЧ(<27;18;18;10;3;8;0;17;8;-8>)

Аналогично создаются и работают формулы массивов, вычисляющие различные характеристики диапазонов данных. Например, следующая формула находит максимальное число среди разностей значений диапазонов С2:С11 и В2:В11: <=МАКС(C2:C11-B2:B11)>. Эта формула вернет число 27. А эта формула <=МИН(C2:C11-B2:B11)>возвращает наименьшее число разностей значений двух диапазонов. Формула вернет число −8.

Использование массивов вместо ссылок на диапазоны

Если в формулах используются ссылки на диапазоны, то их можно заменить на массивы констант. Это очень удобно, если значения в диапазонах, на которые указывают ссылки, не будут изменяться. [1]

На рис. 15 представлена таблица, в которой производится поиск названия заданного числа. Например, если 9 — искомое значение, то формула вернет слово Девять. В ячейку С1 введена следующая формула: =ВПР(В1;D1:Е10;2;ЛОЖЬ). Вместо ссылки на таблицу можно использовать двухмерный массив. Формула, приведенная ниже, работает аналогично предыдущей, но не использует таблицу, которая находится в диапазоне D1:E10.

Рис. 15. Таблицу, в которой производится поиск, можно заменить массивом констант

Если вас заинтересовали формулы массива, рекомендую книгу Майкл Гирвин. Ctrl+Shift+Enter. Освоение формул массива в Excel

[1] К сожалению, в функциях, работающих с базами данных (например, БДСУММ), нельзя заменить ссылку на диапазон, содержащий критерии, массивом констант.

#2. Решаем задачи в Excel. Поиск наибольшего значения

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

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

Давайте решим задачу таким образом, чтобы получился список всех сотрудников, имеющих максимальный возраст.

Итак, первым делом мы по-прежнему должны определить максимальный возраст. Для этого вполне подойдет функция МАКС , которую мы уже использовали ранее.

Ну а далее нам нужно сравнивать возраст каждого сотрудника с максимальным и в случае совпадения выводить имя сотрудника в столбце F ниже.

На первый взгляд ничего сложного, но не так все просто, как кажется и сейчас вы в этом убедитесь.

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

Формула массива является частью стандартного функционала Экселя и многие даже не догадываются об ее существовании.

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

Не буду сейчас вдаваться в подробности, так как эта заметка и так будет довольно длинной. Если вы хотите узнать больше о формуле массива, то напишите об этом в комментариях и я раскрою тему подробнее в одной из следующих заметок.

Итак, давайте решим задачу.

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

Первый ее аргумент — массив значений. Выбираем все ячейки с именами сотрудников.

Далее мы должны указать второй аргумент — номер строки, из которой будет возвращено значение. Нам нужно выводить значение из столбца A той строки, в которой значение в столбце B равно вычисленному значению максимального возраста (находится в ячейке F1), и тут идеально подойдет функция ЕСЛИ — если вычисленное значение из ячейки F1 равно одному из значений диапазона B2:B6, то нам нужно вывести номер этой строки. Определить номер строки довольно просто и в этом нам поможет функция СТРОКА , которая выводит фактический номер строки, определяемый адресом ячейки.

Так, например, пустая функция СТРОКА() выведет номер строки Экселя, в которой находится сама эта формула. Мы же в формуле должны вывести номер строки из диапазона значений и у нас в первой строке Экселя находится заголовок таблицы, учитывать который не нужно. Поэтому из полученного номера строки вычтем единицу, чтобы исключить строку заголовка.

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

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

Думаю, что проще будет объяснять уже на готовой формуле. Отличаться она будет лишь дополнительной функцией НАИМЕНЬШИЙ , которой мы «обернем» наше условие.

Эта функция возвращает k -ое наименьшее значение во множестве данных. Множество данных определяется результатом функции ЕСЛИ , а вот аргумент k , нужно будет вычислять, так как он должен изменяться.

Для его вычисления снова воспользуемся функцией СТРОКА , но перед этим давайте разберемся с функцией НАИМЕНЬШИЙ , так как она не самая простая для понимания.

Рассмотрим ее на таком примере — введем диапазон значений 1, 2, 3, 4, 5 и укажем формулу:

То есть нам нужно вывести третье наименьшее значение в диапазоне.

Логично, что в диапазоне чисел третье наименьшее равно 3. Если же мы изменим в диапазоне 3 на 1, то и результат также изменится — на 2.

То есть функция проходит весь диапазон значений и, выстраивает их по возрастанию, а затем отсчитывает k -ое (в нашем примере третье) значение по списку.

Если изменить в диапазоне 2 на 1, то функция вернет единицу, так как третье наименьшее равно ей.

Надеюсь, работа этой функции прояснилась.

Теперь возвращаемся к нашей формуле. Выглядеть она будет так:

Здесь формула СТРОКА()-1 вычисляет аргумент k для функции НАИМЕНЬШИЙ .

Как я уже упоминал, пустая функция СТРОКА возвращает номер строки с формулой. Так как у нас формула находится во второй строке Экселя, то мы можем использовать это значение для вычисления соответствующего аргумента k . Чуть дальше мы рассмотрим работу формулы и вам станет понятен принцип вычисления.

Чтобы сделать формулу формулой массива необходимо нажать не Enter , а сочетание клавиш Ctrl+Shift+Enter .

На то, что формула стала формулой массива указывают фигурные скобки, в которые она была заключена.

Это не текстовые скобки, то есть нельзя их просто набрать с клавиатуры. Эти скобки появляются лишь при нажатии сочетания клавиш Ctrl+Shift+Enter и они указывают на то, что программа воспринимает данную формулу, как формулу массива.

Вы видите, что в ячейке F2 появился правильный результат.

Давайте проанализируем формулу с помощью соответствующего инструмента со вкладки Формулы .

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

Так как мы имеем дело с формулой массива, то на выходе будем иметь не одно значение, а массив данных, что мы сейчас и увидим.

В первую очередь проверяется условие в функции ЕСЛИ (текущее вычисление подчеркивается).

Мы видим, что условие выдало пять ответов, то есть массив значений, равный по размеру диапазону ячеек с именами сотрудников. Из пяти ответов только последний ИСТИНА , что мы можем также подтвердить, взглянув на первоначальный диапазон значений, в котором пока только у одного сотрудника возраст равен максимальному.

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

Поскольку условие у нас выполняется только в последней строке, то мы получим четыре пустых значения (кавычки) и цифру 5, соответствующую пятой строке массива данных:

Переходим к функции НАИМЕНЬШИЙ , которая должна вернуть нам первое наименьшее значение. И как раз для того, чтобы автоматически вычислять это значение и была вставлена формула СТРОКА()-1 . Мы изначально вставили формулу во вторую строку Экселя, поэтому она выдаст единицу, а значит функция НАИМЕНЬШИЙ выдаст первое наименьшее значение, которое будет равно 5.

Соответственно, функция ИНДЕКС выдаст значение, находящееся в пятой строке столбца А, а это и есть имя сотрудника с максимальным возрастом:

Чтобы получить диапазон значений нужно размножить эту формулу автозаполнением, но мы столкнемся с проблемой.

Во-первых, в изначальной формуле использовались относительные ссылки и при автозаполнении это проявилось, то есть диапазоны «съехали».

Во-вторых, функция выводит сообщение #ЧИСЛО! из-за особенностей вычислений. Давайте разберемся в этой ситуации.

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

Не забудем в конце нажать сочетание Ctrl+Shift+Enter , чтобы сделать формулу формулой массива.

Теперь снова автозаполнением протянем формулу на весь диапазон и проанализируем вычисление во второй строке. На определенном этапе в функции НАИМЕНЬШИЙ мы будем искать второе наименьшее значение в диапазоне:

Но в диапазоне есть только одна цифра и именно поэтому появляется ошибка #ЧИСЛО! , поскольку формула возвращает недопустимое значение.

Чтобы избавиться от этой ошибки воспользуемся функцией ЕСЛИОШИБКА . Она работает следующим образом — если вычисление по формуле проходит без ошибок, то возвращается вычисленное значение, а если возникает ошибка, то функция вернет значение, которое мы сами укажем. То есть мы эту функцию пишем в самом начале формулы и затем добавляем еще одно условие — двойные кавычки. Это означает, что если вычисления приведут к ошибке, то в ячейке ничего не отобразится.

Делаем формулу формулой массива с помощью сочетания клавиш и вновь протягиваем ее по диапазону. Ошибки исчезли.

Ну а теперь проверим работу формулы, изменив возраст у сотрудников.

С моей точки зрения, наиболее сложный для понимания элемент формулы — это функция НАИМЕНЬШИЙ и вычисление аргумента k . Поэтому предлагаю посмотреть видео на эту тему, в котором более детально изложен материал:

Похожие статьи

Ссылка на основную публикацию
Похожие публикации
Adblock
detector