Зміст
У цьому короткому уроці ми поговоримо про функцію SMALL в Excel, про те, як вона працює і як її використовувати для знаходження N-го найменшого числа, дати або часу.
Потрібно знайти кілька найменших чисел на аркуші? Це досить легко зробити за допомогою функції Сортування Excel. Не хочете витрачати час на повторне сортування даних при кожній зміні? Функція МАЛЕ допоможе швидко знайти найменше значення, друге найменше, третє найменше і так далі.
Функція Excel SMALL
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)
Для того, щоб Вам було легше перевірити результат, колонка В відсортована за зростанням:
4 речі, які варто знати про функцію SMALL
Наступні примітки щодо використання допоможуть вам краще зрозуміти поведінку функції SMALL і уникнути плутанини при побудові власних формул.
- Будь-який порожні клітинки , текст цінності та логічний значення TRUE та FALSE в масив ігноруються.
- Якщо масив містить один або декілька помилки повертається помилка.
- У разі наявності дублікати в масив Наприклад, якщо в двох комірках міститься число 1, а функція SMALL налаштована на повернення найменшого і 2-го найменшого значення, то в обох випадках ви отримаєте 1.
- Нехай n - кількість значень у масив SMALL(array,1) поверне найменше значення, а SMALL(array,n) вибере найбільше значення.
Як використовувати функцію СРЗНАЧ в Excel - приклади формул
А тепер давайте розглянемо ще кілька прикладів використання функції МАЛІ в Excel, які виходять за рамки її базового застосування.
Знаходження нижніх 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, і ми отримуємо 2-гу найменшу вартість, і так далі.
Просто скопіюйте формулу через 5 комірок, і ви отримаєте 5 нижніх значень:
Сума нижніх N значень
Хочете знайти суму найменших n значень у наборі даних? Якщо ви вже витягли значення, як показано в попередньому прикладі, найпростішим рішенням буде формула SUM, як показано в попередньому прикладі:
=SUM(E3:E5)
Або можна зробити самостійну формулу, використовуючи функцію СЧЕТЕСЛИ разом з СУММЕСЛИ:
SUMPRODUCT(SMALL( масив , {1, ..., n }))Для отримання суми 3-х нижніх значень у нашому наборі даних формула набуває такого вигляду:
=SUMPRODUCT(SMALL(B2:B10, {1,2,3}))
Функція SUM дасть такий самий результат:
=SUM(SMALL(B2:B10, {1,2,3}))
Примітка: якщо ви використовуєте посилання на клітинки замість константи масиву для k потрібно натиснути Ctrl + Shift + Enter, щоб вона стала формулою масиву. В Excel 365, що підтримує динамічні масиви, СУММЕСЛИ в обох випадках працює як звичайна формула.
Як працює ця формула:
У звичайній формулі SMALL повертає одне k-те найменше значення в діапазоні. В даному випадку ми задаємо константу масиву типу {1,2,3} для аргументу k, змушуючи її повертати масив з 3 найменших значень:
{29240, 43610, 58860}
Функція СУММЕСЛИ або SUM підсумовує числа в масиві і виводить загальну суму. І все!
Формула INDEX MATCH SMALL для отримання найменших збігів
У ситуації, коли ви хочете отримати деякі дані, пов'язані з найменшим значенням, використовуйте класичну комбінацію INDEX MATCH з SMALL в якості шуканого значення:
INDEX( return_array , MATCH(SMALL( lookup_array , n ), lookup_array , 0))Де:
- Return_array це діапазон, з якого витягуються пов'язані з ним дані.
- Lookup_array діапазон, в якому слід шукати найменше n-те значення.
- N позиція з найменшим значенням інтересу.
Наприклад, щоб отримати назву проекту, який має найнижчу вартість, формула в Е3 має вигляд:
=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. Але чи знаєте ви, як виконати сортування за формулою? Користувачі Excel 365 можуть зробити це простим способом за допомогою нової функції СОРТУВАННЯ. В Excel 2019, 2016 і більш ранніх версіях СОРТУВАННЯ, на жаль, не працює. Але є трохи віри, і SMALL прийде на допомогу :)
Як і в першому прикладі, використовуємо функцію СРЗНАЧ з розширенням діапазону по посиланню на приріст 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)
SMALL формула для знаходження найбільш ранніх 3 дат:
SMALL формула, щоб отримати найкоротший шлях в 3 рази:
Наступний приклад показує, як функція SMALL може допомогти вам виконати більш конкретне завдання, пов'язане з датами.
Знайти попередню дату, найближчу до сьогоднішньої або вказаної дати
У списку дат, припустимо, потрібно знайти найближчу дату до вказаної дати. Це можна зробити за допомогою функції SMALL у поєднанні з функцією COUNTIF.
З переліком дат у B2:B10 та цільовою датою в E1, наступна формула поверне попередню дату, найближчу до цільової дати:
=SMALL(B2:B10, COUNTIF(B2:B10, "<"&E1))
Для вилучення дати, яка на дві дати передує даті в Е1, тобто попередній, але на одну дату, використовується формула:
=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), "Не знайдено")
Як працюють ці формули:
Загальна ідея полягає в тому, щоб підрахувати кількість дат, менших за цільову дату за допомогою COUNTIF. І цей підрахунок є саме тим, що потрібно функції SMALL для k аргумент.
Щоб краще зрозуміти концепцію, подивимося на неї під іншим кутом:
Якби 1 серпня 2020 року (цільова дата в E1) з'явилася в нашому наборі даних, вона була б 7-ю за величиною датою в списку. Отже, є шість дат, менших за неї. Тобто, 6-ю найменшою датою є попередня дата, найближча до цільової дати.
Отже, спочатку порахуємо, на скільки дат менше, ніж дата в Е1 (результат - 6):
COUNTIF(B2:B10, "<"&E1)
А потім підставити підрахунок у 2-й аргумент МАЛОГО:
=SMALL(B2:B10, 6)
Щоб отримати попередню, але одну дату (у нашому випадку це 5-а найменша дата), ми віднімаємо 1 від результату COUNTIF.
Як виділити нижні значення в Excel
Щоб виділити найменші n значень у вашій таблиці за допомогою умовного форматування Excel, ви можете використовувати або вбудовану опцію Верх/Ниж, або створити власне правило на основі формули 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 нижніх значення в колонці В підсвічуються:
Для отримання додаткової інформації див. розділ Умовне форматування в Excel на основі формули.
Не працює функція Excel SMALL
Як ви щойно переконалися з наших прикладів, використовувати функцію СРЗНАЧ в Excel досить просто, і навряд чи у вас виникнуть з нею якісь труднощі. Якщо ж ваша формула не працює, то, швидше за все, це буде помилка #NUM!, яка може виникнути з наступних причин:
- Масив пустий або не містить жодного числового значення.
- На сьогоднішній день, на жаль, це не так. k значення менше нуля (дурна помилка може коштувати вам годин пошуку та усунення несправностей!) або перевищує кількість значень у масиві.
Ось так можна використовувати формулу SMALL в Excel для пошуку та виділення нижніх чисел у наборі даних. Якщо ви знаєте інші сценарії, де ця функція стає в нагоді, будь ласка, поділіться ними в коментарях. Дякую за увагу і сподіваюся побачити вас на нашому блозі наступного тижня!
Практичний посібник для завантаження
Приклади формул Excel SMALL (файл .xlsx)