Оглавление
При работе с большими объемами данных в Excel иногда возникает ситуация, когда вам нужно найти значения, которые появляются несколько раз в вашем наборе данных. Таким образом, вам нужно увидеть эти данные в одной ячейке. В этом руководстве мы покажем вам, как использовать VLOOKUP для нескольких значений в одной ячейке в Excel.
Вообще говоря, мы не используем напрямую VLOOKUP Здесь мы собираемся найти несколько значений в одной ячейке, что будет аналогично функции VLOOKUP. Надеемся, что этот урок будет вам полезен.
Скачать Рабочую тетрадь для практических занятий
Vlookup Несколько значений в одной ячейке.xlsm2 простых способа Vlookup для нескольких значений в одной ячейке
Сейчас мы покажем вам два способа поиска нескольких значений в одной ячейке в 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 и МАТЧ Эта формула немного сложна в использовании, но, несомненно, она даст желаемые значения.
📌 СТЕПЕНИ
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 несколько значений в одной ячейке без дублирования.
🔎 Разбивка формулы
Мы используем эту разбивку только для человека "Джон".
➤ ROW(C5:C13)
Он возвращает массив {5;6;7;8;9;10;11;12;13}
➤ MATCH(ROW(C5:C13), ROW(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 (без дубликатов)
Теперь UNIQUE Функция UNIQUE доступна только в Excel 365. Поэтому, если вы используете Excel 365, вы можете использовать эту формулу. Предыдущая формула немного сложна, но эта формула облегчит поиск значений в одной ячейке. Функция UNIQUE возвращает список уникальных значений в списке или диапазоне. Теперь, разница между первой и третьей формулой заключается в использовании функции UNIQUE функция перед ЕСЛИ функция.
Основной синтаксис функции UNIQUE:
=UNIQUE (array, [by_col], [exactly_once])
массив - Диапазон или массив, из которого нужно извлечь уникальные значения.
by_col - [необязательно] Способ сравнения и извлечения. По строке = FALSE (по умолчанию); по столбцу = TRUE.
точно_однократно - [необязательно] 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,""))))
Окончательный результат Мобильный телефон, телевизор, холодильник
Читать далее: Как с помощью Vlookup вернуть несколько значений в раскрывающемся списке
2. Использование кодов VBA для Vlookup нескольких значений в одной ячейке
Сайт TEXTJOIN функция доступна только для MS Excel 2019 и MS Excel 365 Итак, если вы хорошо знакомы с кодами VBA Excel, эти два кода будут очень практичными для вас. Первый - с дубликатами, второй - без дубликатов. Так что выбирайте метод в зависимости от вашей проблемы.
2.1 VBA Кодирование нескольких значений в одной ячейке
📌 СТЕПЕНИ
1. Первый. Нажмите Alt+F11 чтобы открыть редактор Visual Basic.
2. Затем нажмите на Вставка> Модуль .
3. Далее введите следующий код:
Function 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. Затем нажмите ENTER.
6. Наконец, перетащите значок Fill Handle на диапазон ячеек. F6:F7.
В итоге мы использовали VLOOKUP несколько значений в одной ячейке .
Читать далее: VLOOKUP для возврата нескольких значений по горизонтали в Excel
2.2 Коды VBA для LOOKUP нескольких значений в одной ячейке (без дубликатов)
📌 СТЕПЕНИ
1. Первый. Нажмите Alt+F11 чтобы открыть редактор Visual Basic.
2. Затем нажмите на Вставка> Модуль .
3. Далее введите следующий код:
Function 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 =outcome & " " & search_range.Cells(i, ColumnNumber) & "," Skip: End If Next i ValuesNoDup = Left(outcome, Len(outcome) - 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. Скачайте рабочую тетрадь и попробуйте сделать это самостоятельно. Несомненно, это будет способствовать развитию ваших знаний Excel. Кроме того, не стесняйтесь оставлять отзывы в разделе комментариев. Ваши ценные отзывы поддерживают нашу мотивацию создавать много подобных статей. Не забудьте заглянуть на наш сайт ExcelWIKI для решения проблем и задач, связанных с Excel.