Перейти до основного матеріалу

Як vlookup повернути кілька значень в одній комірці в Excel?

Як правило, в Excel, коли ви використовуєте функцію VLOOKUP, якщо є кілька значень, що відповідають критеріям, ви просто можете отримати перше. Але, іноді, ви хочете повернути всі відповідні значення, які відповідають критеріям, в одну комірку, як показано на наступному скріншоті, як ви могли це вирішити?

Vlookup для повернення кількох значень в одну комірку з функцією TEXTJOIN (Excel 2019 та Office 365)

Vlookup для повернення кількох значень в одну клітинку з користувацькою функцією

Vlookup для повернення кількох значень в одну комірку з корисною функцією


Vlookup для повернення кількох значень в одну комірку з функцією TEXTJOIN (Excel 2019 та Office 365)

Якщо у вас вища версія Excel, така як Excel 2019 та Office 365, є нова функція - ТЕКСТЬ, за допомогою цієї потужної функції ви можете швидко переглядати та повертати всі відповідні значення в одну комірку.

Vlookup для повернення всіх відповідних значень в одну комірку

Будь ласка, застосуйте наведену нижче формулу до порожньої комірки, куди ви хочете ввести результат, а потім натисніть Ctrl + Shift + Enter клавіші разом, щоб отримати перший результат, а потім перетягніть маркер заповнення вниз до комірки, в якій ви хочете використовувати цю формулу, і ви отримаєте всі відповідні значення, як показано на знімку екрана нижче:

=TEXTJOIN(",",TRUE,IF($A$2:$A$11=E2,$C$2:$C$11,""))

Примітка: У наведеній вище формулі A2: A11 - діапазон пошуку містить дані пошуку, E2 - значення пошуку, C2: C11 - діапазон даних, з якого потрібно повернути відповідні значення, ","є розділювачем для розділення декількох записів.

Vlookup для повернення всіх відповідних значень без дублікатів в одну комірку

Якщо ви хочете повернути всі відповідні значення на основі даних пошуку без дублікатів, нижченаведена формула може вам допомогти.

Скопіюйте та вставте наступну формулу в порожню комірку, а потім натисніть Ctrl + Shift + Enter клавіші разом, щоб отримати перший результат, а потім скопіюйте цю формулу, щоб заповнити інші клітинки, і ви отримаєте всі відповідні значення без дублікатів, як показано нижче:

=TEXTJOIN(",", TRUE, IF(IFERROR(MATCH($C$2:$C$11, IF(E2=$A$2:$A$11, $C$2:$C$11, ""), 0),"")=MATCH(ROW($C$2:$C$11), ROW($C$2:$C$11)), $C$2:$C$11, ""))

Примітка: У наведеній вище формулі A2: A11 - діапазон пошуку містить дані пошуку, E2 - значення пошуку, C2: C11 - діапазон даних, з якого потрібно повернути відповідні значення, ","є розділювачем для розділення декількох записів.

Vlookup для повернення кількох значень в одну клітинку з користувацькою функцією

Вищевказана функція TEXTJOIN доступна лише для Excel 2019 та Office 365, якщо у вас інші версії Excel нижчого рівня, для завершення цього завдання слід використовувати деякі коди.

Vlookup для повернення всіх відповідних значень в одну комірку

1. Утримуйте клавішу ALT + F11 і відкриває Microsoft Visual Basic для додатків вікна.

2. Клацання Insert > Модуліта вставте наступний код у Вікно модуля.

Код VBA: Vlookup для повернення кількох значень в одну комірку

Function ConcatenateIf(CriteriaRange As Range, Condition As Variant, ConcatenateRange As Range, Optional Separator As String = ",") As Variant
'Updateby Extendoffice
Dim xResult As String
On Error Resume Next
If CriteriaRange.Count <> ConcatenateRange.Count Then
    ConcatenateIf = CVErr(xlErrRef)
    Exit Function
End If
For i = 1 To CriteriaRange.Count
    If CriteriaRange.Cells(i).Value = Condition Then
        xResult = xResult & Separator & ConcatenateRange.Cells(i).Value
    End If
Next i
If xResult <> "" Then
    xResult = VBA.Mid(xResult, VBA.Len(Separator) + 1)
End If
ConcatenateIf = xResult
Exit Function
End Function

3. Потім збережіть і закрийте цей код, поверніться до робочого аркуша та введіть цю формулу: =CONCATENATEIF($A$2:$A$11, E2, $C$2:$C$11, ", ") у певну порожню комірку, де ви хочете помістити результат, а потім перетягніть маркер заповнення вниз, щоб отримати всі відповідні значення в одній комірці, яку ви хочете, див. знімок екрана:

Примітка: У наведеній вище формулі A2: A11 - діапазон пошуку містить дані пошуку, E2 - значення пошуку, C2: C11 - діапазон даних, з якого потрібно повернути відповідні значення, ","є розділювачем для розділення декількох записів.

Vlookup для повернення всіх відповідних значень без дублікатів в одну комірку

Щоб ігнорувати дублікати у повернутих відповідних значеннях, виконайте наведені нижче коди.

1. Утримуйте клавішу Alt + F11 ключі, щоб відкрити Microsoft Visual Basic для додатків вікна.

2. Клацання Insert > Модуліта вставте наступний код у Вікно модуля.

Код VBA: Vlookup і повернення декількох унікальних значень, що збігаються, в одну комірку

Function MultipleLookupNoRept(Lookupvalue As String, LookupRange As Range, ColumnNumber As Integer)
'Updateby Extendoffice
    Dim xDic As New Dictionary
    Dim xRows As Long
    Dim xStr As String
    Dim i As Long
    On Error Resume Next
    xRows = LookupRange.Rows.Count
    For i = 1 To xRows
        If LookupRange.Columns(1).Cells(i).Value = Lookupvalue Then
            xDic.Add LookupRange.Columns(ColumnNumber).Cells(i).Value, ""
        End If
    Next
    xStr = ""
    MultipleLookupNoRept = xStr
    If xDic.Count > 0 Then
        For i = 0 To xDic.Count - 1
            xStr = xStr & xDic.Keys(i) & ","
        Next
        MultipleLookupNoRept = Left(xStr, Len(xStr) - 1)
    End If
End Function

3. Після вставки коду натисніть Tools > посилання у відкритому Microsoft Visual Basic для додатків вікно, а потім, у спливаючому Посилання - VBAProject діалогове вікно, поставте галочку Виконання сценаріїв Microsoft опція в Доступні посилання списку, див. скріншоти:

4. Потім натисніть OK щоб закрити діалогове вікно, збережіть і закрийте вікно коду, поверніться до аркуша та введіть цю формулу: =MultipleLookupNoRept(E2,$A$2:$C$11,3) into a blank cell where you want to output the result, and then drag the fill hanlde down to get all matching values, see screenshot:

Примітка: У наведеній вище формулі A2: C11 діапазон даних, який ви хочете використовувати, E2 - значення пошуку, число 3 - номер стовпця, який містить повернені значення.

Vlookup для повернення кількох значень в одну комірку з корисною функцією

 Якщо у вас є наш Kutools для Excel, З його Розширені комбіновані ряди функцію, ви можете швидко об'єднати або об'єднати рядки, виходячи з того самого значення, і зробити деякі обчислення, як вам потрібно.

Примітка:Щоб застосувати це Розширені комбіновані ряди, по-перше, вам слід завантажити Kutools для Excel, а потім швидко та легко застосувати функцію.

після установки Kutools для Excel, будь ласка, виконайте наступне:

1. Виберіть діапазон даних, для якого потрібно об’єднати дані одного стовпця на основі іншого стовпця.

2. Клацання Кутулс > Злиття та розділення > Розширені комбіновані ряди, див. скріншот:

3. В вискочив Розширені комбіновані ряди діалогове вікно:

  • Клацніть назву ключового стовпця, яке потрібно об’єднати, а потім клацніть Первинний ключ
  • Потім клацніть інший стовпець, для якого потрібно об’єднати його дані на основі ключового стовпця, і клацніть Поєднувати вибрати один роздільник для розділення об’єднаних даних.

4. Потім натисніть OK , і ви отримаєте такі результати:

Завантажте та безкоштовну пробну версію Kutools для Excel зараз!


Більше відносних статей:

  • Функція VLOOKUP з деякими основними та вдосконаленими прикладами
  • У Excel функція VLOOKUP - це потужна функція для більшості користувачів Excel, яка використовується для пошуку значення в крайньому лівому куті діапазону даних і повернення відповідного значення в тому ж рядку із вказаного вами стовпця. Цей підручник розповідає про те, як використовувати функцію VLOOKUP з деякими основними та вдосконаленими прикладами в Excel.
  • Повернути кілька значень відповідності на основі одного або декількох критеріїв
  • Зазвичай пошук певного значення та повернення відповідного елемента є простим для більшості з нас за допомогою функції VLOOKUP. Але, ви коли-небудь намагалися повернути кілька відповідних значень на основі одного або кількох критеріїв? У цій статті я познайомлюсь із деякими формулами вирішення цього складного завдання в Excel.
  • Перегляд і повернення декількох значень по вертикалі
  • Зазвичай ви можете використовувати функцію Vlookup для отримання першого відповідного значення, але, іноді, ви хочете повернути всі відповідні записи на основі певного критерію. У цій статті я розповім про те, як шукати і повертати всі відповідні значення вертикально, горизонтально або в одну клітинку.
  • Перегляд і повернення декількох значень зі спадного списку
  • Як в Excel можна шукати та повертати кілька відповідних значень зі спадного списку, що означає, що коли ви вибираєте один елемент зі спадного списку, усі його відносні значення відображаються одночасно. У цій статті я буду представляти рішення поетапно.

Найкращі інструменти продуктивності офісу

🤖 Kutools AI Aide: Революціонізуйте аналіз даних на основі: Інтелектуальне виконання   |  Згенерувати код  |  Створення спеціальних формул  |  Аналізуйте дані та створюйте діаграми  |  Викликати функції Kutools...
Популярні функції: Знайдіть, виділіть або визначте дублікати   |  Видалити порожні рядки   |  Об’єднайте стовпці або клітинки без втрати даних   |   Раунд без Формули ...
Супер пошук: VLookup за кількома критеріями    Багатозначний VLookup  |   VLookup на кількох аркушах   |   Нечіткий пошук ....
Розширений розкривний список: Швидке створення випадаючого списку   |  Залежний спадний список   |  Виберіть розкривний список, що вибирається ....
Менеджер колонок: Додайте конкретну кількість стовпців  |  Перемістити стовпці  |  Перемкнути статус видимості прихованих стовпців  |  Порівняйте діапазони та стовпці ...
Особливості: Фокус сітки   |  Перегляд дизайну   |   Велика панель формул    Диспетчер робочих книг і аркушів   |  Бібліотека ресурсів (автотекст)   |  Вибір дати   |  Об’єднайте робочі аркуші   |  Шифрування/розшифрування клітинок    Надсилайте листи за списком   |  Супер фільтр   |   Спеціальний фільтр (фільтр жирний/курсив/закреслений...) ...
Топ-15 наборів інструментів12 текст Tools (додати текст, Видалити символи, ...)   |   50 + Графік типи (діаграма Ганта, ...)   |   40+ Практичний Формули (Розрахуйте вік на основі дня народження, ...)   |   19 вставка Tools (Вставте QR-код, Вставити зображення зі шляху, ...)   |   12 Перетворення Tools (Числа до слів, Валютна конверсія, ...)   |   7 Злиття та розділення Tools (Розширені комбіновані ряди, Розділені клітини, ...)   |   ... і більше

Покращуйте свої навички Excel за допомогою Kutools для Excel і відчуйте ефективність, як ніколи раніше. Kutools для Excel пропонує понад 300 додаткових функцій для підвищення продуктивності та економії часу.  Натисніть тут, щоб отримати функцію, яка вам найбільше потрібна...

Опис


Вкладка Office Передає інтерфейс із вкладками в Office і значно полегшує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
Comments (43)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I have created a problem.
"I" have combined a "Textjoin" end "Vlookup" to return multiple values in to one single cell.
My problem is that the formula have to have an exact value to look for and I want it to lookup an "almost" match or Partial match.

Example: I have made a schedule how we ate going to work and a D1 is working from 07:30-16:00. And to lookup D1 is not the problem, the problem is that my boss sometimes puts other stuff togeather with the D1... Like "D1 +" or "D1 meeting".
Since my formula only lookup "D1" it misses for example the "D1 +".

My formula (that I have gotten from the web) =TEXTJOIN(" och ";SANT;OM($B$3:$B$15=$C$22:$F$22;$A$3:$A$15;""))It´s in swedish so "SANT" is "TRUE" and "OM" is "IF".

How can I make the formula lookup all the cells that have some form of "D1" in it and return all those to the same cell?
No matter if it says "D1 +" or "D1 meeting" or whatever.
The reson I want this, is because the boss always leave "D1" but can add other text behind the "D1"... and just because of that, my boss messes up my formula.
This comment was minimized by the moderator on the site
Hi!
This is a great VBA-Code which could help me a lot.But when I start the Function MultipleLookupNoRept Excel crashs...I´ve got a Dataset with about 6.000 Rows (Excel 2013).... is this too much for the VBA Function?

Thanks!
This comment was minimized by the moderator on the site
Hello Mr.XXL,Sorry to hear that. The row limit for Excel 2013 is 1048576. Therefore, maybe the VBA code is the reason for the crash.
Anyway, I would love to offer you another VBA code for Vlookup To Return All Matching Values Without Duplicates Into One Cell. Please use the VBA code below:
Option Explicit

Function Lookup_concat(Search_string As String, _
Search_in_col As Range, Return_val_col As Range)

Dim i As Long
Dim temp() As Variant
Dim result As String
ReDim temp(0)

For i = 1 To Search_in_col.Count
If Search_in_col.Cells(i, 1) = Search_string Then
temp(UBound(temp)) = Return_val_col.Cells(i, 1).Value
ReDim Preserve temp(UBound(temp) + 1)
End If
Next

If temp(0) <> "" Then
ReDim Preserve temp(UBound(temp) - 1)
Unique temp
For i = LBound(temp) To UBound(temp)
result = result & " " & temp(i)
Next i
Lookup_concat = Trim(result)
Else
Lookup_concat = ""
End If

End Function

Function Unique(tempArray As Variant)

Dim coll As New Collection
Dim Value As Variant

On Error Resume Next
For Each Value In tempArray
If Len(Value) > 0 Then coll.Add Value, CStr(Value)
Next Value
On Error GoTo 0

ReDim tempArray(0)

For Each Value In coll
tempArray(UBound(tempArray)) = Value
ReDim Preserve tempArray(UBound(tempArray) + 1)
Next Value

End Function

After you insert this VBA code in the Module, please type the formula =Lookup_concat(E2,$A$2:$A$14,$C$2:$C$14) into a blank cell where you want to output the result, and then drag the fill hanlde down to get all matching values. Please see the file I uploaded in this comment. Hope it solves your problem. 
Sincerely,Mandy

This comment was minimized by the moderator on the site
Hi, Thanks so much this worked!I used it to pull dates, that populated in the serial number format (<span style="letter-spacing: 0.2px; color: inherit; font-family: inherit; font-style: inherit; font-variant-ligatures: inherit; font-variant-caps: inherit; font-weight: inherit;">Changing the format to short date format using =TEXT(A2,”mm/dd/yy”) OR =DATEVALUE(A2) are not working. Do you have any solutions?</span>
This comment was minimized by the moderator on the site
Thank you for the explanations, however the function 'MultipleLookupNoRept' does not work on my file, could you tell me if an error exists.
This comment was minimized by the moderator on the site
Hi, Hasnae,Please check if you miss the third step -  check Microsoft Scripting Runtime option in the Available References list box.

This comment was minimized by the moderator on the site
Thank you so much for the code. Is there a way I can use the code to look up multiple values from multiple sheets? I tried to combine your function with IFERROR function but it doesn't seem to work.
This comment was minimized by the moderator on the site
Can this be modified to place the sum of those values? Instead of (400 400 400 400 400 400), can it sum them to show (2400)?
This comment was minimized by the moderator on the site
How with HLookUp function?
This comment was minimized by the moderator on the site
thanks for the code. I have modified it to allow you to optionally specify your own separator, Default is " ", if you specify the separator as"#cr" it will insert a CR/LF so the values will be on a separate line in the cell. It only applies the separator if there are multiple values

Function MYVLOOKUP(pValue As String, pWorkRng As Range, pIndex As Long, Optional ByVal pSep As Variant)

' ### Returns multiple values from a table into 1 cell ###

' pValue is the key value to lookup

' WorkRng is the Table you want to look up

' pIndex is the column # for the values to be returned from the pWorkRng

' pSep (optional) is the separator to be used. if omitted then default is a space (it doesn't apply the separator for the 1st entry)

' if the separtor = "#cr" it will separate the values on different line in the cell

Dim rng As Range

Dim sSep As String

Dim xResult As String

Dim Item1 As Boolean

Item1 = True



If IsMissing(pSep) = True Then

sSep = vbCr

Else

If pSep = "#cr" Then

sSep = vbCrLf

Else

sSep = pSep

End If

End If



xResult = ""

For Each rng In pWorkRng

If rng = pValue Then

If Item1 Then

xResult = xResult & rng.Offset(0, pIndex - 1)

Item1 = False

Else

xResult = xResult & sSep & rng.Offset(0, pIndex - 1)

End If

End If

Next

MYVLOOKUP = xResult

End Function
This comment was minimized by the moderator on the site
Thank you for this, the line breaks are what i needed to top this formula off! Question, is there a way to modify the code so that two values are compared? For example, similar to what we see with index and match, can i look for Product and Quantity columns, and based on those parameters it outputs results from the Region Column?
This comment was minimized by the moderator on the site
Thanks a lot for this code, it is very helpful. Does anyone know away to sum the values in the cell to just have at total of them.
Cheers
This comment was minimized by the moderator on the site
Hello, James, to sum values based on the corresponding items, the following article may help you, please chek it:
https://www.extendoffice.com/documents/excel/1268-excel-combine-duplicate-rows-and-sum.html
This comment was minimized by the moderator on the site
I have a server, it has connected with multiple applications. I want to compare compare two column and get the related applications details for that server.

What is the command for that.
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations