Как да VLOOKUP няколко стойности в една клетка в Excel (2 лесни метода)

  • Споделя Това
Hugh West

Докато работите с големи количества данни в Excel, понякога може да се окажете в ситуация, в която трябва да потърсите стойности, които се появяват многократно в набора от данни. Затова трябва да видите тези данни в една клетка. В този урок ще ви покажем как да използвате VLOOKUP за няколко стойности в една клетка в Excel.

Като цяло не използваме директно VLOOKUP Тук ще намерим няколко стойности в една клетка, което ще бъде подобно на функцията VLOOKUP. Надяваме се, че този урок ще ви бъде полезен.

Изтегляне на работна тетрадка за практика

Vlookup Няколко стойности в една клетка.xlsm

2 лесни метода за 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.

Хю Уест е опитен обучител и анализатор на Excel с над 10 години опит в индустрията. Има бакалавърска степен по счетоводство и финанси и магистърска степен по бизнес администрация. Хю има страст към преподаването и е разработил уникален подход на преподаване, който е лесен за следване и разбиране. Неговите експертни познания по Excel са помогнали на хиляди студенти и професионалисти по целия свят да подобрят уменията си и да постигнат отлични резултати в кариерата си. Чрез своя блог Хю споделя знанията си със света, като предлага безплатни уроци за Excel и онлайн обучение, за да помогне на хората и фирмите да достигнат пълния си потенциал.