Съдържание
Докато работите с големи количества данни в Excel, понякога може да се окажете в ситуация, в която трябва да потърсите стойности, които се появяват многократно в набора от данни. Затова трябва да видите тези данни в една клетка. В този урок ще ви покажем как да използвате VLOOKUP за няколко стойности в една клетка в Excel.
Като цяло не използваме директно VLOOKUP Тук ще намерим няколко стойности в една клетка, което ще бъде подобно на функцията VLOOKUP. Надяваме се, че този урок ще ви бъде полезен.
Изтегляне на работна тетрадка за практика
Vlookup Няколко стойности в една клетка.xlsm2 лесни метода за Vlookup за множество стойности в една клетка
Сега ще ви покажем 2 начина за търсене на няколко стойности в една клетка в Excel. Първият е с помощта на Формули а вторият използва VBA кодове. В тази статия ще разгледаме както повтарящи се, така и неповтарящи се стойности. Така че можете да изберете най-подходящия метод според вашия проблем.
За да демонстрираме този проблем, ще използваме следния набор от данни:
Тук имаме някои продавачи. Имена и техните продажби Продукти . Сега целта ни е да намерим продаваните продукти на всеки продавач.
1. Използване на формули за Vlookup на няколко стойности в една клетка в Excel
Сайтът TEXTJOIN ще бъде нашата функция за прилагане на този метод. TEXTJOIN ви позволява да обединявате 2 или повече низа, като всяка стойност е разделена със знака разделител . Основно комбинираме различни функции с функцията TEXTJOIN, за да приложим нашата формула.
Сайтът TEXTJOIN Функцията е налична само за Excel 2019 и Office 365.Основен синтаксис на функцията TEXTJOIN:
=TEXTJOIN(delimiter, ignore_empty, text1, [text2], ...)
Тук нашият разделител ще бъде запетая ( ","
) за разделяне на стойности в една клетка.
1.1 Функциите TEXTJOIN и IF
Сега тази формула е доста лесна за използване. Тя ще потърси стойностите и ще ги вмъкне в една клетка с разделител, запетая. Но не забравяйте, че тази формула ще върне стойността с дубликати.
Основен синтаксис:
=TEXTJOIN(", ",TRUE,IF(lookup_value=lookup_range,,finding_range,"))
📌 Стъпки
1. Първо въведете следната формула в Клетка F5 :
=TEXTJOIN(", ",TRUE,IF(E5=B5:B13,C5:C13,""))
2. След това натиснете Въведете.
3. Накрая плъзнете Дръжка за пълнене икона над обхвата от клетки F6:F7 .
В крайна сметка успяваме да използваме VLOOKUP няколко стойности в една клетка.
🔎 Разбивка на формулата
Използваме тази разбивка само за лицето "Джон".
➤ IF(E5=B5:B13,C5:C13,"")
Тази функция връща следния масив:
{"Mobile";"";"";"TV";"";"Fridge";"";"Mobile";""}
➤ TEXTJOIN(", ",TRUE,IF(E5=B5:B13,C5:C13,""))
И накрая. TEXTJOIN функцията ще върне следния резултат:
{Мобилен телефон, телевизор, хладилник, мобилен телефон}
Прочетете още: Excel VLOOKUP за връщане на няколко стойности в една клетка, разделени със запетая
1.2 Функциите TEXTJOIN и MATCH (без дубликати)
Сега, ако искате да получите няколко стойности в една клетка, можете да използвате тази формула. Тази формула е комбинация от TEXTJOIN и MATCH Тази формула е малко по-сложна за използване, но със сигурност ще даде желаните стойности.
📌 СТЪПКИ
1. Първо въведете следната формула в Клетка F5 :
=TEXTJOIN(",", TRUE, IF(IFERROR(MATCH(C5:C13, IF(E5=B5:B13, C5:C13, ""), 0),"")=MATCH(ROW(C5:C13), ROW(C5:C13)), C5:C13, ""))
2. След това натиснете Въведете.
3. Накрая плъзнете Дръжка за пълнене икона над обхвата от клетки F6:F7 .
В крайна сметка успяваме да използваме VLOOKUP няколко стойности в една клетка без дублиращи се стойности.
🔎 Разбивка на формулата
Използваме тази разбивка само за лицето "Джон".
➤ РЕД(C5:C13)
Той връща масив от {5;6;7;8;9;10;11;12;13}
➤ СЪВПАДЕНИЕ(РЕД(C5:C13), РЕД(C5:C13))
Той се връща: {1;2;3;4;5;6;7;8;9}
➤ IF(E5=B5:B13, C5:C13, "")
Той се връща: {"Mobile";"";"";"TV";"";"Fridge";"";"Mobile";""}
➤ MATCH(C5:C13, IF(E5=B5:B13, C5:C13, "")
Тази функция връща: {8;8;7;9;7;7;7;8;7}
➤ IFERROR(MATCH(C5:C13, IF(E5=B5:B13, C5:C13, ""), 0),"")
Той се връща: {1;1;"";4;"";6;"";1;""}
➤ IF(IFERROR(MATCH(C5:C13, IF(E5=B5:B13, C5:C13, ""), 0),"")=MATCH(ROW(C5:C13), ROW(C5:C13)), C5:C13, "")
Той се връща: {"Mobile";"";"";"TV";"";"Fridge";"";"";""}
➤ TEXTJOIN(",", TRUE, IF(IFERROR(MATCH(C5:C13, IF(E5=B5:B13, C5:C13, ""), 0),"")=MATCH(ROW(C5:C13), ROW(C5:C13)), C5:C13, ""))
Крайният резултат ще бъде Мобилен телефон, телевизор, хладилник .
Прочетете още: Как да извършите VLOOKUP с няколко реда в Excel (5 метода)
1.3 Функциите TEXTJOIN и UNIQUE (без дубликати)
Сега УНИКАЛЕН Функцията е налична само в Excel 365. Така че, ако използвате Excel 365, определено можете да използвате тази формула. Предишната формула е малко трудна, но тази формула ще улесни търсенето на стойности в една клетка. Функцията UNIQUE връща списък с уникални стойности в списък или диапазон. Сега разликата между първата и третата формула е използването на функцията УНИКАЛЕН преди функцията IF функция.
Основен синтаксис на функцията UNIQUE:
=UNIQUE (масив, [by_col], [exactly_once])
масив - Обхват или масив, от който да се извлекат уникални стойности.
by_col - [незадължително] Как да се сравнява и извлича. По ред = FALSE (по подразбиране); по колона = TRUE.
exactly_once - [по избор] TRUE = стойности, които се срещат веднъж, FALSE = всички уникални стойности (по подразбиране)
📌 СТЪПКИ
1. Първо въведете следната формула в Клетка F5 :
=TEXTJOIN(", ",TRUE,UNIQUE(IF(E5=B5:B13,C5:C13,"")))
2. След това натиснете Въведете.
3. Накрая плъзнете Дръжка за пълнене икона над обхвата от клетки F6:F7.
Както можете да видите, успешно използвахме VLOOKUP няколко стойности в една клетка.
🔎 Разбивка на формулата
Използваме тази разбивка само за лицето "Джон".
➤ IF(E5=B5:B13,C5:C13,"")
Той връща {"Mobile";"";"";"TV";"";"Fridge";"";"Mobile";""}
➤ UNIQUE(IF(E5=B5:B13,C5:C13,""))
Той връща {"Mobile";"";"TV";"Fridge"}
➤ TEXTJOIN(", ",TRUE,UNIQUE(IF(E5=B5:B13,C5:C13,"")))
Краен резултат Мобилен телефон, телевизор, хладилник
Прочетете още: Как да търсите и връщате множество стойности в падащ списък
2. Използване на кодове VBA за Vlookup на няколко стойности в една клетка
Сайтът TEXTJOIN функцията е достъпна само за MS Excel 2019 и MS Excel 365 . Така че, ако сте добре запознати с кодовете VBA на Excel, тези два кода ще бъдат много практични за вас. Първият ще бъде с дубликати, а вторият - без дубликати. Така че изберете метода според проблема си.
2.1 Кодове VBA за няколко стойности в една клетка
📌 СТЪПКИ
1. Първо. Натиснете Alt+F11 за да отворите редактора на Visual Basic.
2. След това щракнете върху Вмъкване> Модул .
3. След това въведете следния код:
Функция MultipleValues(work_range As Range, criteria As Variant, merge_range As Range, Optional Separator As String = ",") As Variant Dim outcome As String On Error Resume Next If work_range.Count merge_range.Count Then MultipleValues = CVErr(xlErrRef) Exit Function End If For i = 1 To work_range.Count If work_range.Cells(i).Value = criteria Then outcome = outcome & Separator &merge_range.Cells(i).Value End If Next i If outcome "" Then outcome = VBA.Mid(outcome, VBA.Len(Separator) + 1) End If MultipleValues = outcome Exit Function End Function
4. Сега отидете в работния си лист. След това въведете следната формула в Клетка F5 :
=MultipleValues(B5:B13,E5,C5:C13,",")
5. След това натиснете ВЪВЕЖДАНЕ.
6. Накрая плъзнете иконата за дръжка на запълване върху обхвата от клетки F6:F7.
В крайна сметка използвахме VLOOKUP няколко стойности в една клетка .
Прочетете още: VLOOKUP за връщане на множество стойности хоризонтално в Excel
2.2 Кодове на VBA за търсене на няколко стойности в една клетка (без дублиране)
📌 СТЪПКИ
1. Първо. Натиснете Alt+F11 за да отворите редактора на Visual Basic.
2. След това щракнете върху Вмъкване> Модул .
3. След това въведете следния код:
Функция ValuesNoDup(target As String, search_range As Range, ColumnNumber As Integer) Dim i As Long Dim outcome As String For i = 1 To search_range.Columns(1).Cells.Count If search_range.Cells(i, 1) = target Then For J = 1 To i - 1 If search_range.Cells(J, 1) = target Then If search_range.Cells(J, ColumnNumber) = search_range.Cells(i, ColumnNumber) Then GoTo Skip End If End If Next J outcome =резултат & " " & search_range.Cells(i, ColumnNumber) & "," Пропускане: End If Next i ValuesNoDup = Left(резултат, Len(резултат) - 1) End Function
4. След като вмъкнете кода, щракнете върху Инструменти> Препратки в отворения прозорец на Microsoft Visual Basic for Applications, а след това в изскочилия прозорец Препратки - диалоговия прозорец VBAProject, маркирайте Изпълнение на Microsoft Scripting Runtime опция в Налични препратки Кликнете върху OK .
5. Сега отидете в работния си лист. След това въведете следната формула в Клетка F5 :
=ValuesNoDup(E5,B5:B13,2)
Тук 2 е номерът на колоната на набора от данни.
6. След това натиснете Въведете .
7. Накрая плъзнете Дръжка за пълнене икона над обхвата от клетки F6:F7.
Както виждате, използвахме VLOOKUP няколко стойности в една клетка без дублиране.
Прочетете още: Как да използвате VLOOKUP и да връщате множество стойности в Excel (8 метода)
Заключение
В заключение, Надявам се, че този урок ще ви помогне да vlookup Изтеглете работната тетрадка за упражнения и опитайте сами. Със сигурност това ще развие знанията ви за Excel. Също така, не се колебайте да дадете обратна връзка в раздела за коментари. Вашата ценна обратна връзка ни мотивира да създаваме много такива статии. Не забравяйте да разгледате нашия уебсайт ExcelWIKI за проблеми и решения, свързани с Excel.