Съдържание
В този урок ще намерите няколко примера за разширени формули, които показват как да използвате функциите VLOOKUP и SUM или SUMIF на Excel, за да търсите и сумирате стойности въз основа на един или няколко критерия.
Опитвате ли се да създадете обобщаващ файл в Excel, който да идентифицира всички случаи на една конкретна стойност и след това да събере други стойности, които са свързани с тези случаи? Или трябва да намерите всички стойности в масив, които отговарят на зададено от вас условие, и след това да съберете свързаните с тях стойности от друг работен лист? А може би сте изправени пред по-конкретно предизвикателство, като например да прегледате таблица сфактури на вашата компания, идентифициране на всички фактури на определен доставчик и след това сумиране на всички стойности на фактурите?
Задачите могат да се различават, но същността е една и съща - искате да търсите и сумирате стойности с един или няколко критерия в Excel. Какви стойности? Всякакви числови стойности. Какви критерии? Всякакви : ) Като се започне от число или препратка към клетка, съдържаща правилната стойност, и се стигне до логически оператори и резултати, връщани от формулите на Excel.
И така, разполага ли Microsoft Excel с някаква функционалност, която може да помогне при изпълнението на горните задачи? Разбира се, че разполага! Можете да намерите решение, като комбинирате функциите VLOOKUP или LOOKUP на Excel с функциите SUM или SUMIF. Примерите с формули, които следват по-долу, ще ви помогнат да разберете как работят тези функции на Excel и как да ги прилагате към реални данни.
Моля, обърнете внимание, че това са примери за напреднали, които предполагат, че сте запознати с общите принципи и синтаксис на функцията VLOOKUP. Ако не сте, първата част на нашия урок за начинаещи за VLOOKUP със сигурност заслужава вниманието ви - синтаксис на Excel VLOOKUP и общи употреби.
Excel VLOOKUP и SUM - намиране на сумата на съвпадащите стойности
Ако работите с цифрови данни в Excel, често се налага не само да извлечете свързани стойности от друга таблица, но и да съберете числата в няколко колони или редове. За целта можете да използвате комбинация от функциите SUM и VLOOKUP, както е показано по-долу.
Източник на данни:
Да предположим, че имате списък с продукти с данни за продажбите за няколко месеца, по една колона за всеки месец. Източните данни се намират на лист с име Месечни продажби :
Сега искате да направите обобщена таблица с общите продажби за всеки продукт.
Решението е да се използва масив в третия параметър ( col_index_num ) на функцията VLOOKUP на Excel. Ето една обща формула:
SUM(VLOOKUP( стойност за търсене , диапазон на търсене , {2,3,...,n}, FALSE))Както виждате, използваме константа на масив в третия аргумент, за да извършим няколко търсения в рамките на една и съща формула VLOOKUP, за да получим сумата на стойностите в колони 2,3 и 4.
А сега нека настроим тази комбинация от функциите VLOOKUP и SUM за нашите данни, за да намерим общата сума на продажбите в колони B - M в горната таблица:
=SUM(VLOOKUP(B2, 'Месечни продажби'! $A$2:$M$9, {2,3,4,5,6,7,8,9,10,11,12,13}, FALSE)
Важно! Тъй като изграждате формула за масив, не забравяйте да натиснете Ctrl + Shift + Enter вместо обикновеното натискане на клавиш Enter, когато приключите с писането. Когато направите това, Microsoft Excel загражда формулата ви в къдрави скоби по следния начин:
{=SUM(VLOOKUP(B2, 'Месечни продажби'!$A$2:$M$9, {2,3,4,5,6,7,8,9,10,11,12,13}, FALSE))}
Ако натиснете бутона Въведете ключ, както обикновено, ще бъде обработена само първата стойност в масива, което ще доведе до некоректни резултати.
Съвет. Може би ви е интересно защо формулата показва [@Product] като стойност за търсене на снимката по-горе. Това е така, защото преобразувах данните си в таблица ( Вмъкване на tab> Таблица ). смятам, че е много удобно да работя с напълно функционални таблици на Excel и техните структурирани препратки. например, когато въведете формула в една клетка, Excel автоматично я копира в цялата колона и по този начин ви спестява няколко ценни секунди :)
Както виждате, използването на функциите VLOOKUP и SUM в Excel е лесно. Това обаче не е идеалното решение, особено ако работите с големи таблици. Въпросът е, че използването на формули от масиви може да се отрази неблагоприятно на производителността на работната книга, тъй като всяка стойност в масива изисква отделно извикване на функцията VLOOKUP. Така че колкото повече стойности има в масива и колкото повече формули от масиви има вработната си книга, толкова по-бавно работи Excel.
Можете да заобиколите този проблем, като използвате комбинация от функциите INDEX и MATCH вместо SUM и VLOOKUP, а в следващата статия ще ви покажа няколко примера за формули.
Изтеглете тази извадка за VLOOKUP и SUM
Как да извършвате други изчисления с функцията VLOOKUP на Excel
Преди малко разгледахме пример за това как можете да извлечете стойности от няколко колони в таблицата за търсене и да изчислите сумата на тези стойности. По същия начин можете да извършвате други математически изчисления с резултатите, върнати от функцията VLOOKUP. Ето няколко примера за формули:
Операция | Пример за формула | Описание |
---|---|---|
Изчисляване на средната стойност | {=AVERAGE(VLOOKUP(A2, 'Lookup Table'$A$2:$D$10, {2,3,4}, FALSE))} | Формулата търси стойността на клетка А2 в "Таблицата за търсене" и изчислява средната стойност на стойностите в колони B,C и D в същия ред. |
Намиране на максимална стойност | {=MAX(VLOOKUP(A2, 'Lookup Table'$A$2:$D$10, {2,3,4}, FALSE))} | Формулата търси стойността на клетка А2 в "Таблицата за търсене" и намира максималната стойност в колони B,C и D в същия ред. |
Намиране на минимална стойност | {=MIN(VLOOKUP(A2, 'Lookup Table'$A$2:$D$10, {2,3,4}, FALSE))} | Формулата търси стойността на клетка А2 в "Таблицата за търсене" и намира минималната стойност в колони B,C и D в същия ред. |
Изчисляване на % от сумата | {=0.3*SUM(VLOOKUP(A2, 'Lookup Table'$A$2:$D$10, {2,3,4}, FALSE))} | Формулата търси стойността на клетка А2 в "Таблица за търсене", сумира стойностите в колони B,C и D в същия ред и след това изчислява 30% от сумата. |
Забележка. Тъй като всички горепосочени формули са формули за масиви, не забравяйте да натиснете Ctrl+Shift+Enter, за да ги въведете правилно в клетка.
Ако добавим горните формули към таблицата "Обобщени продажби" от предишния пример, резултатът ще изглежда по следния начин:
Изтеглете тази извадка за изчисления на VLOOKUP
LOOKUP AND SUM - търсене в масив и сумиране на съвпадащите стойности
Ако параметърът ви за търсене е масив, а не единична стойност, функцията VLOOKUP е безполезна, тъй като не може да търси в масиви от данни. В този случай можете да използвате функцията LOOKUP на Excel, която е аналог на VLOOKUP, но работи с масиви, както и с отделни стойности.
Нека разгледаме следния пример, за да разберете по-добре за какво говоря. Предполагаме, че имате таблица, в която са изброени имената на клиентите, закупените продукти и количеството ( Основна маса ). Имате и втора таблица, която съдържа цените на продуктите ( Таблица за търсене ). Вашата задача е да съставите формула, която да намери общата сума на всички поръчки, направени от даден клиент.
Както си спомняте, не можете да използвате функцията VLOOKUP на Excel, тъй като имате няколко екземпляра на стойността за търсене (масив от данни). Вместо това използвате комбинация от функциите SUM и LOOKUP по следния начин:
=SUM(LOOKUP($C$2:$C$10,'Lookup table'!$A$2:$A$16,'Lookup table'!$B$2:$B$16)*$D$2:$D$10*($B$2:$B$10=$G$1))
Тъй като това е формула за масив, не забравяйте да натиснете Ctrl + Shift + Enter, за да я завършите.
А сега нека анализираме съставките на формулата, за да разберете как работи всяка от функциите и да можете да я адаптирате към собствените си данни.
За момент ще оставим настрана функцията SUM, тъй като нейното предназначение е очевидно, и ще се съсредоточим върху трите компонента, които се умножават:
LOOKUP($C$2:$C$10, "Търсене на таблица"!$A$2:$A$16, "Търсене на таблица"!$B$2:$B$16)
Тази функция LOOKUP търси стоките, изброени в колона C в основната таблица, и връща съответната цена от колона B в таблицата за търсене.
$D$2:$D$10
Този компонент връща количеството на всеки продукт, закупен от всеки клиент, който е посочен в колона D в основната таблица. Умножен по цената, която се връща от функцията LOOKUP по-горе, той дава цената на всеки закупен продукт.
$B$2:$B$10=$G$1
Тази формула сравнява имената на клиентите в колона B с името в клетка G1. Ако бъде намерено съвпадение, тя връща "1", в противен случай "0". Използвате я просто, за да "отрежете" имената на клиентите, различни от името в клетка G1, тъй като всички знаем, че всяко число, умножено по нула, е нула.
Тъй като нашата формула е формула за масиви, тя повтаря описания по-горе процес за всяка стойност в масива за търсене. И накрая функцията SUM сумира произведенията на всички умножения. Нищо трудно, нали?
Забележка: За да работи правилно формулата LOOKUP, трябва да сортирате колоната за търсене в таблицата за търсене във възходящ ред (от A до Z). Ако сортирането не е приемливо за вашите данни, разгледайте страхотната формула SUM / TRANSPOSE, предложена от Leo.
Изтеглете тази извадка за LOOKUP и SUM
VLOOKUP и SUMIF - търсене на & сумиране на стойности с критерии
Функцията SUMIF на Excel е подобна на SUM, която току-що обсъдихме, тъй като също сумира стойности. Разликата е, че функцията SUMIF сумира само онези стойности, които отговарят на зададените от вас критерии. Например най-простата формула SUMIF =SUMIF(A2:A10,">10")
добавя стойностите в клетките от A2 до A10, които са по-големи от 10.
Това е много лесно, нали? А сега нека разгледаме малко по-сложен сценарий. Да предположим, че имате таблица, в която са изброени имената и идентификационните номера на търговците ( Lookup_table ). Имате друга таблица, която съдържа същите идентификатори и свързаните с тях данни за продажбите ( Main_table ). Вашата задача е да намерите общата сума на продажбите, извършени от дадено лице по неговия идентификационен номер. При това има 2 усложняващи фактора:
- Пощенската таблица съдържа множество записи за един и същ идентификатор в произволен ред.
- Не можете да добавите колоната "Имената на продавачите" към основната таблица.
А сега нека създадем формула, която, първо, намира всички продажби, извършени от дадено лице, и второ, сумира намерените стойности.
Преди да започнем с формулата, нека ви припомня синтаксиса на функцията SUMIF:
SUMIF(обхват, критерии, [sum_range])обхват
- този параметър е разбираем - просто диапазон от клетки, които искате да оцените по зададените критерии.критерии
- условието, което указва на формулата какви стойности да събере. То може да бъде предоставено под формата на число, референция към клетка, израз или друга функция на Excel.sum_range
- Този параметър не е задължителен, но е много важен за нас. Той определя диапазона, в който ще се добавят стойностите на съответните клетки. Ако се пропусне, Excel сумира стойностите на клетките, които са посочени в аргумента за диапазона (1-ви параметър).
Като имаме предвид горната информация, нека определим трите параметъра за нашата функция SUMIF. Както си спомняте, искаме да съберем всички продажби, направени от дадено лице, чието име е въведено в клетка F2 в основната таблица (моля, вижте изображението по-горе).
- Обхват - тъй като търсим по ID на търговеца, обхват параметър за нашата функция SUMIF е колона B в основната таблица. Така че можете да въведете диапазона B:B или ако преобразувате данните в таблица, можете да използвате името на колоната:
Main_table[ID]
- Критерии - тъй като имаме имена на търговци в друга таблица (таблица за търсене), трябва да използваме формулата VLOOKUP, за да намерим идентификатора, съответстващ на дадено лице. Името на лицето е записано в клетка F2 в основната таблица, така че го търсим, като използваме тази формула:
VLOOKUP($F$2,Lookup_table,2,FALSE)
Разбира се, можете да въведете името в критериите за търсене на функцията VLOOKUP, но използването на абсолютна препратка към клетката е по-добър подход, тъй като по този начин се създава универсална формула, която работи за всяко име, въведено в дадена клетка.
- Обхват на сумата - Това е най-лесната част. Тъй като нашите продажби са в колона C, наречена "Продажби", ние просто поставяме
Main_table [Продажби]
.Сега е необходимо само да съберете частите на формулата и вашата формула SUMIF + VLOOKUP е готова:
=SUMIF(Main_table[ID], VLOOKUP($F$2, Lookup_table, 2, FALSE), Main_table[Sales])
Изтеглете тази извадка за VLOOKUP и SUMIF
Начин за извършване на vlookup в Excel без формули
И накрая, позволете ми да ви представя инструмента, който може да търси, сравнява и обединява вашите таблици без никакви функции или формули. Инструментът Merge Tables (Обединяване на таблици), включен в нашия Ultimate Suite for Excel, е проектиран и разработен като спестяваща време и лесна за използване алтернатива на функциите VLOOKUP и LOOKUP на Excel и може да бъде много полезен както за начинаещи, така и за напреднали потребители.
Вместо да се занимавате с формули, просто посочвате главната таблица и таблиците за търсене, дефинирате обща колона или колони и казвате на съветника какви данни искате да извлече.
След това давате няколко секунди на съветника да потърси, сравни и предостави резултатите. Ако смятате, че тази добавка може да се окаже полезна в работата ви, можете да изтеглите пробна версия, като използвате връзката по-долу.
Налични изтегляния
VLOOKUP със SUM и SUMIF - примери за формули (.xlsx файл)
Ultimate Suite - пробна версия (.exe файл)