Съдържание
В този кратък урок ще разкажем за функцията SMALL на Excel, как работи тя и как да я използваме, за да намерим N-тото най-малко число, дата или час.
Трябва да намерите няколко най-малки числа в работен лист? Това е съвсем лесно да се направи с функцията Excel Sort (Сортиране). Не искате да губите време за повторно сортиране на данните при всяка промяна? Функцията SMALL ще ви помогне бързо да намерите най-ниската стойност, втората най-малка, третата най-малка и т.н.
Функция SMALL на Excel
SMALL е статистическа функция, която връща n-тата най-малка стойност в даден набор от данни.
Синтаксисът на функцията SMALL включва два аргумента, като и двата са задължителни.
SMALL(масив, k)
Къде:
- Масив - масив или набор от клетки, от които да се извлече най-малката стойност.
- K - цяло число, което указва позицията от най-ниската стойност за връщане, т.е. k-тата най-малка.
Функцията е налична във всички версии на Excel за Office 365, Excel 2021, Excel 2019, Excel 2016, Excel 2013, Excel 2010 и по-ранни.
Съвет. За да намерите k-тата най-ниска стойност с критерии, използвайте формулата SMALL IF на Excel.
Основна формула SMALL в Excel
Формулата SMALL в нейната основна форма е много лесна за създаване - просто задавате диапазона и позицията от най-малкия елемент, който трябва да се върне.
В списъка с числа в B2:B10, да предположим, че искате да извлечете третата най-малка стойност. Формулата е толкова проста, колкото:
=SMALL(B2:B10, 3)
За да ви е по-лесно да проверите резултата, колона В е подредена във възходящ ред:
4 неща, които трябва да знаете за функцията SMALL
Следващите бележки за употреба ще ви помогнат да разберете по-добре поведението на функцията SMALL и да избегнете объркване при създаването на собствени формули.
- Всички празни клетки , текст стойности и логически стойности TRUE и FALSE в масив се игнорират.
- Ако масив съдържа един или повече грешки , се връща съобщение за грешка.
- В случай че има дубликати в масив например, ако две клетки съдържат числото 1 и функцията SMALL е конфигурирана да връща най-малката и втората най-малка стойност, и в двата случая ще получите 1.
- Ако приемем, че n е броят на стойностите в масив , SMALL(array,1) ще върне най-ниската стойност, а SMALL(array,n) ще избере най-високата стойност.
Как да използвате функцията SMALL в Excel - примери за формули
А сега нека разгледаме още няколко примера за функцията SMALL на 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 и получаваме втората най-ниска цена, и т.н.
Просто копирайте формулата през 5 клетки и ще получите долните 5 стойности:
Сума на долните N стойности
Искате да намерите общата сума на най-малките n стойности в набор от данни? Ако вече сте извлекли стойностите, както е показано в предишния пример, най-лесното решение е формулата SUM, например:
=SUM(E3:E5)
Или можете да създадете независима формула, като използвате функцията SMALL заедно със SUMPRODUCT:
СУМАРЕН ПРОДУКТ (МАЛЪК( масив , {1, ..., n }))За да получим сумата от долните 3 стойности в нашия набор от данни, формулата придобива следния вид:
=SUMPRODUCT(SMALL(B2:B10, {1,2,3})
Функцията SUM ще даде същия резултат:
=SUM(SMALL(B2:B10, {1,2,3})
Забележка. Ако използвате препратки към клетките а не константа на масива за k , трябва да натиснете Ctrl + Shift + Enter, за да я превърнете във формула за масиви. В Excel 365, който поддържа динамични масиви, SUM SMALL работи като обикновена формула и в двата случая.
Как работи тази формула:
В обикновена формула SMALL връща една единствена k-тата най-малка стойност в даден диапазон. В този случай за аргумента k подаваме константа за масив като {1,2,3}, което налага връщането на масив от най-малките 3 стойности:
{29240, 43610, 58860}
Функцията SUMPRODUCT или SUM сумира числата в масива и извежда общата сума. Това е всичко!
Формула INDEX MATCH SMALL за получаване на най-малките съвпадения
В случаите, когато искате да извлечете данни, свързани с най-малката стойност, използвайте класическата комбинация INDEX MATCH със стойност SMALL за търсене:
INDEX( return_array , MATCH(SMALL( lookup_array , n ), lookup_array , 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) и ще получите имената на трите най-евтини проекта:
Забележки:
- Това решение работи добре за набор от данни, който няма дублиращи се стойности. Две или повече дублиращи се стойности в числова колона обаче могат да създадат "връзки" в класирането, което ще доведе до грешни резултати. В този случай използвайте малко по-сложна формула за прекъсване на връзките.
- В Excel 365 тази задача може да бъде изпълнена с помощта на новите функции за динамични масиви. Освен че е много по-прост, този подход автоматично решава проблема с връзките. За пълна информация вижте Как да филтрираме долните N стойности в Excel.
Сортиране на числата от най-малкото до най-голямото с формула
Вярвам, че всеки знае как да подрежда числата с функцията за сортиране на Excel. Но знаете ли как да извършвате сортиране с формула? Потребителите на 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 за дати и времена
Тъй като датите и часовете също са числови стойности (във вътрешната система на Excel датите се съхраняват като поредни числа, а часовете - като десетични дроби), функцията SMALL може да ги обработва и без допълнителни усилия от ваша страна.
Както можете да видите на снимките по-долу, основната формула, която използвахме за числата, работи чудесно и за датите и часовете:
=SMALL($B$2:$B$10, D2)
МАЛКА формула за намиране на най-ранните 3 дати:
МАЛКА формула за получаване на най-краткия 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) се появи в нашата съвкупност от данни, тя ще бъде седмата по големина дата в списъка. Следователно има шест дати, по-малки от нея. Това означава, че шестата по големина дата е предходната дата, която е най-близка до целевата дата.
Затова първо изчисляваме колко дати са по-малки от датата в E1 (резултатът е 6):
COUNTIF(B2:B10, "<"&E1)
И след това включете броя във втория аргумент на SMALL:
=SMALL(B2:B10, 6)
За да получим предпоследната дата (която в нашия случай е петата най-малка дата), изваждаме 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 стойности в колона В са маркирани:
За повече информация вижте Условно форматиране на Excel въз основа на формула.
Функцията SMALL на Excel не работи
Както току-що видяхте от нашите примери, използването на функцията SMALL в Excel е доста лесно и е малко вероятно да срещнете някакви трудности с нея. Ако формулата ви не работи, най-вероятно това ще бъде грешка #NUM!, която може да възникне поради следните причини:
- Масив е празен или не съдържа нито една числова стойност.
- Сайтът k е по-малка от нула (една глупава печатна грешка може да ви коства часове отстраняване на неизправности!) или надвишава броя на стойностите в масива.
Ето как да използвате формулата SMALL в Excel, за да откриете и подчертаете най-долните числа в набор от данни. Ако знаете други сценарии, в които функцията е полезна, можете да споделите в коментарите. Благодаря ви, че прочетохте, и се надявам да се видим в нашия блог следващата седмица!
Практическа работна тетрадка за изтегляне
Примери за формули на Excel SMALL (.xlsx файл)