Оглавление
В этом кратком уроке мы расскажем о функции Excel SMALL, о том, как она работает и как использовать ее для поиска N-го наименьшего числа, даты или времени.
Нужно найти несколько наименьших чисел в рабочем листе? Это довольно легко сделать с помощью функции Excel Sort. Не хотите тратить время на повторную сортировку данных при каждом изменении? Функция SMALL поможет вам быстро найти наименьшее значение, второе наименьшее, третье наименьшее и так далее.
Функция МАЛОЕ в Excel
SMALL - это статистическая функция, которая возвращает n-ое наименьшее значение в наборе данных.
Синтаксис функции SMALL включает два аргумента, оба из которых являются обязательными.
SMALL(array, k)
Где:
- Массив - массив или диапазон ячеек, из которых нужно извлечь наименьшее значение.
- K - целое число, указывающее позицию от наименьшего значения для возврата, т.е. k-го наименьшего.
Функция доступна во всех версиях Excel для Office 365, Excel 2021, Excel 2019, Excel 2016, Excel 2013, Excel 2010 и более ранних версиях.
Совет. Чтобы найти k-е наименьшее значение с критериями, используйте формулу Excel МАЛОЕ ЕСЛИ.
Основная формула SMALL в Excel
Формулу SMALL в ее базовой форме очень легко построить - вы просто указываете диапазон и позицию от наименьшего элемента для возврата.
В списке чисел в B2:B10, предположим, вы хотите извлечь 3-е наименьшее значение. Формула проста:
=SMALL(B2:B10, 3)
Чтобы вам было легче проверить результат, столбец B отсортирован в порядке возрастания:
4 вещи, которые вы должны знать о функции SMALL
Следующие указания по использованию помогут вам лучше понять поведение функции SMALL и избежать путаницы при построении собственных формул.
- Любой пустые ячейки , текст значения, и логический значения TRUE и FALSE в массив аргумент игнорируется.
- Если массив содержит один или несколько ошибки , возвращается ошибка.
- В случае, если есть дубликаты в массив Например, если две ячейки содержат число 1, а функция SMALL настроена на возврат наименьшего и второго наименьшего значения, то в обоих случаях вы получите 1.
- Предполагая, что n - это количество значений в массив , SMALL(array,1) вернет наименьшее значение, а SMALL(array,n) выберет наибольшее значение.
Как использовать функцию SMALL в Excel - примеры формул
А теперь давайте рассмотрим еще несколько примеров использования функции Excel SMALL, которые выходят за рамки ее базового применения.
Найдите нижние значения 3, 5, 10 и т.д.
Как вы уже знаете, функция SMALL предназначена для вычисления n-го наименьшего значения. Данный пример показывает, как это сделать наиболее эффективно.
В таблице ниже, предположим, вы хотите найти 3 нижних значения. Для этого введите числа 1, 2 и 3 в отдельные ячейки (D3, D4 и D5 в нашем случае). Затем введите следующую формулу в E3 и проведите ее вниз через E5:
=SMALL($B$2:$B$10, D3)
В E3 формула извлекает наименьшее значение, используя число в D3 для k аргумент. Главное - поставить правильные ссылки на ячейки, благодаря которым формула корректно копируется в другие ячейки: абсолютные для массив и относительно для k .
Не хотите возиться с набором рангов вручную? Используйте функцию ROWS с помощью функции расширение ассортимента ссылка для предоставления k Для этого мы делаем абсолютную ссылку для первой ячейки (или фиксируем только координату строки, как B$2) и относительную ссылку для последней ячейки:
=SMALL($B$2:$B$10, ROWS(B$2:B2))
В результате ссылка на диапазон расширяется по мере копирования формулы вниз по столбцу. В D2, ROWS(B$2:B2) выдает 1 для k В D3, ROWS(B$2:B3) дает 2, и мы получаем вторую наименьшую стоимость, и так далее.
Просто скопируйте формулу через 5 ячеек, и вы получите 5 нижних значений:
Сумма нижних значений N
Хотите найти общее количество наименьших n значений в наборе данных? Если вы уже извлекли значения, как показано в предыдущем примере, самым простым решением будет формула SUM:
=SUM(E3:E5)
Или вы можете составить независимую формулу, используя функцию SMALL вместе с SUMPRODUCT:
СУМПРОДУКТ(МАЛЕНЬКИЙ( массив , {1, ..., n }))Чтобы получить сумму 3 нижних значений в нашем наборе данных, формула принимает следующий вид:
= СУММАРНЫЙ ПРОДУКТ(SMALL(B2:B10, {1,2,3}))
Функция SUM даст тот же результат:
=SUM(SMALL(B2:B10, {1,2,3}))
Примечание. Если вы используете ссылки на ячейки а не константа массива для k В Excel 365, который поддерживает динамические массивы, SUM SMALL работает как обычная формула в любом случае.
Как работает эта формула:
В обычной формуле SMALL возвращает одно k-ое наименьшее значение в диапазоне. В данном случае в качестве аргумента k мы используем константу массива {1,2,3}, что заставляет SMALL возвращать массив из трех наименьших значений:
{29240, 43610, 58860}
Функция SUMPRODUCT или SUM суммирует числа в массиве и выводит итог. Вот и все!
Формула INDEX MATCH SMALL для получения наименьших совпадений
В ситуации, когда вы хотите получить данные, связанные с наименьшим значением, используйте классическую комбинацию INDEX MATCH с SMALL для значения поиска:
ИНДЕКС( массив возврата , MATCH(SMALL( массив поиска , n ), массив поиска , 0))Где:
- Return_array это диапазон, из которого извлекаются связанные данные.
- Lookup_array это диапазон, в котором следует искать наименьшее n-ое значение.
- N это положение наименьшего значения, представляющего интерес.
Например, чтобы получить название проекта с наименьшей стоимостью, формула в E3 имеет следующий вид:
=INDEX($A$2:$A$10, MATCH(SMALL($B$2:$B$10, D3), $B$2:$B$10, 0))
Где A2:A10 - названия проектов, B2:B10 - затраты, а D3 - ранг от наименьшего.
Скопируйте формулу в ячейки ниже (E4 и E5), и вы получите названия 3 самых дешевых проектов:
Примечания:
- Это решение отлично работает для набора данных, в котором нет дубликатов. Однако два или более дублированных значения в числовом столбце могут создать "связи" в ранжировании, что приведет к неверным результатам. В этом случае используйте более сложную формулу для устранения связей.
- В Excel 365 эта задача может быть решена с помощью новых функций динамического массива. Помимо того, что этот подход намного проще, он автоматически решает проблему связей. Для получения подробной информации см. статью Как отфильтровать нижние N значений в Excel.
Сортировка чисел от наименьшего к наибольшему с помощью формулы
Думаю, все знают, как расположить числа по порядку с помощью функции Excel Sort. Но знаете ли вы, как выполнить сортировку с помощью формулы? Пользователи Excel 365 могут сделать это простым способом с помощью новой функции SORT. В Excel 2019, 2016 и более ранних версиях SORT, увы, не работает. Но немного веры, и SMALL придет на помощь :)
Как и в первом примере, мы используем функцию ROWS с расширенной ссылкой на диапазон для инкремента k на 1 в каждой строке, куда копируется формула:
=SMALL($A$2:$A$10, ROWS(A$2:A2))
Введите формулу в первую ячейку, а затем перетащите ее вниз на столько ячеек, сколько значений имеется в исходном наборе данных (C2:C10 в данном примере):
Совет. Для сортировки по убывающей используйте функцию LARGE вместо SMALL.
Формула Excel SMALL для дат и времени
Поскольку даты и время также являются числовыми значениями (во внутренней системе Excel даты хранятся как последовательные числа, а время - как десятичные дроби), функция SMALL может работать и с ними без каких-либо дополнительных усилий с вашей стороны.
Как вы можете видеть на скриншотах ниже, базовая формула, которую мы использовали для чисел, прекрасно работает и для дат и времени:
=SMALL($B$2:$B$10, D2)
Простая формула для нахождения 3 самых ранних дат:
Формула SMALL для получения кратчайшего 3 раза:
Следующий пример показывает, как функция SMALL может помочь вам выполнить более конкретную задачу, связанную с датами.
Найти предыдущую дату, ближайшую к сегодняшней или указанной дате
Предположим, что в списке дат нужно найти ближайшую дату перед указанной датой. Это можно сделать с помощью функции SMALL в сочетании с COUNTIF.
При наличии списка дат в B2:B10 и целевой даты в E1, следующая формула вернет предыдущую дату, наиболее близкую к целевой:
=SMALL(B2:B10, COUNTIF(B2:B10, "<"&E1))
Чтобы извлечь дату, которая находится за две даты до даты в E1, т.е. предыдущую, но одну дату, формула выглядит следующим образом:
=SMALL(B2:B10, COUNTIF(B2:B10, "<"&E1)-1)
Чтобы найти прошедшую дату ближе всего к сегодняшнему дню , используйте функцию TODAY для критерия COUNTIF:
=SMALL(B2:B10, COUNTIF(B2:B10, "<"&TODAY()))
Совет. Чтобы предотвратить ошибки в ситуации, когда дата, соответствующая вашим критериям, не найдена, вы можете обернуть функцию IFERROR вокруг вашей формулы, как показано ниже:
=IFERROR(SMALL(B2:B10, COUNTIF(B2:B10, "<"&E1)-1), "Not Found")
Как работают эти формулы:
Общая идея состоит в том, чтобы подсчитать количество дат, меньших, чем целевая дата, с помощью COUNTIF. И этот подсчет - именно то, что нужно функции SMALL для функции k аргумент.
Чтобы лучше понять эту концепцию, давайте посмотрим на нее под другим углом:
Если бы 1-авг-2020 (целевая дата в E1) появилась в нашем наборе данных, она была бы 7-й по величине датой в списке. Следовательно, есть шесть дат меньше нее. Это означает, что 6-я наименьшая дата - это предыдущая дата, ближайшая к целевой дате.
Итак, сначала подсчитаем, сколько дат меньше, чем дата в E1 (результат - 6):
COUNTIF(B2:B10, "<"&E1)
Затем вставьте подсчет во 2-й аргумент SMALL:
=SMALL(B2:B10, 6)
Чтобы получить предыдущую, но одну дату (в нашем случае это 5-я наименьшая дата), мы вычитаем 1 из результата COUNTIF.
Как выделить нижние значения в Excel
Чтобы выделить наименьшие значения n в таблице с помощью условного форматирования Excel, вы можете использовать либо встроенную опцию Top/Bottom, либо создать собственное правило на основе формулы SMALL. Первый метод быстрее и проще в применении, в то время как второй обеспечивает больший контроль и гибкость. Следующие шаги помогут вам создать пользовательское правило:
- Выберите диапазон, в котором вы хотите выделить нижние значения. В нашем случае числа находятся в B2:B10, поэтому мы выбираем его. Если вы хотите выделить целые строки, то выберите A2:B10.
- На Главная во вкладке Стили группу, нажмите Условное форматирование > Новое правило .
- В Новое правило форматирования диалоговое окно, выберите Используйте формулу, чтобы определить, какие ячейки форматировать.
- В Форматируйте значения, для которых эта формула истинна введите формулу, подобную этой:
=B2<=SMALL($B$2:$B$10, 3)
Где B2 - крайняя левая ячейка проверяемого числового диапазона, $B$2:$B$10 - весь диапазон, а 3 - значение n нижние значения для выделения.
В вашей формуле обратите внимание на типы ссылок: крайняя левая ячейка - относительная ссылка (B2), а диапазон - абсолютная ссылка ($B$2:$B$10).
- Нажмите кнопку Формат и выберите любой формат, который вам нравится.
- Нажмите OK дважды, чтобы закрыть оба диалоговых окна.
Готово! Нижние 3 значения в столбце B выделены:
Для получения дополнительной информации см. раздел Условное форматирование Excel на основе формулы.
Функция Excel SMALL не работает
Как вы только что убедились из наших примеров, использовать функцию SMALL в Excel довольно просто, и у вас вряд ли возникнут с ней какие-либо трудности. Если ваша формула не работает, скорее всего, это будет ошибка #NUM!, которая может возникнуть по следующим причинам:
- Массив пуст или не содержит ни одного числового значения.
- Сайт k значение меньше нуля (глупая опечатка может стоить вам нескольких часов поиска неисправностей!) или превышает количество значений в массиве.
Вот как использовать формулу МАЛО в Excel, чтобы найти и выделить нижние цифры в наборе данных. Если вы знаете другие сценарии, в которых эта функция может пригодиться, вы можете поделиться ими в комментариях. Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!
Рабочая тетрадь для тренировок для скачивания
Примеры формул Excel SMALL (файл.xlsx)