Совет. Другие языки - Google-Translated. Вы можете посетить English версия этой ссылки.
Войти
x
or
x
x
Регистрация
x

or

Как конкатенировать ячейки, если одно значение существует в другом столбце в Excel?

объединить, если

Как показано на рисунке слева, вам нужно объединить ячейки второго столбца, если значения первого столбца совпадают. Как вы можете это достичь?

В этой статье мы представим три метода ее достижения.

Объединение ячеек, если такое же значение с формулами и фильтром

Объединение ячеек, если такое же значение с кодом VBA

Легко объединяйте ячейки, если они имеют одинаковое значение с Kutools для Excel


Расширенные комбинации строк: легко объединяйте ячейки, если одно значение существует в другом столбце

Kutools for Excel's Расширенные ряды комбинирования утилиту вы можете легко комбинировать ячейки в столбце, если одно и то же значение выводится в других столбцах в Excel. Смотрите скриншот:

контатат ​​того же

Kutools for Excel: с более чем 200 удобными надстройками Excel, бесплатно попробовать без ограничений в 60-дни. Скачать и бесплатно пробную версию!

Вкладка «Office» Включите редактирование и просмотр с вкладками в Office и упростите свою работу ...
Kutools для Excel добавляет расширенные функции 300 в Excel и повышает производительность на 80%
  • Super Formula Bar (легко редактировать несколько строк текста и формул); Чтение макета (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон ...
  • Объединить ячейки / строки / столбцы и хранение данных; Содержание сплит-клеток; Объединить дублирующиеся строки и сумму / среднее ... Предотвратить повторяющиеся клетки; Сравнить диапазоны ...
  • Выберите Дублировать или Уникальные строки; Выберите пустые строки (все ячейки пусты); Супер найти и нечеткая находка во многих книгах; Случайный выбор ...
  • Точное копирование нескольких ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставьте маркеры, флажки и многое другое ...
  • Любить и быстро вставлять формулы, диапазоны, графики и рисунки; Шифровать ячейки с помощью пароля; Создать список рассылки и отправлять электронные письма ...
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов подкачки; Преобразование содержимого ячеек и комментариев ...
  • Суперфильтр (сохранение и применение схем фильтрации к другим листам); Расширенный Сортировать по месяцу / неделе / ​​дню, частоте и многому другому; Специальный фильтр жирным шрифтом, курсив ...
  • Объединить рабочие тетради и рабочие листы; Объединение таблиц на основе ключевых столбцов; Разбить данные на несколько листов; Пакетное конвертирование xls, xlsx и PDF ...
  • Работает с Office 2007-2019 и 365 и поддерживает все языки. Это легко развернуть в вашей компании. Полнофункциональная 60-дневная бесплатная пробная версия.

Объединение ячеек, если такое же значение с формулами и фильтром


С помощью приведенных ниже формул вы можете объединить содержимое соответствующей ячейки, если другой столбец содержит одинаковое значение в Excel.

1. Выберите пустую ячейку, кроме второго столбца (здесь мы выбираем ячейку C2), введите формулу = IF (A2 <> A1, B2, C1 & "," & B2) в строке формул, а затем нажмите вводить ключ.

2. Затем выберите ячейку C2 и перетащите Fill Handle вниз в ячейки, которые необходимо объединить.

3. Введите формулу = ЕСЛИ (A2 <> A3, СЦЕПИТЬ (A2, "", "", C2, "" ""), "") в ячейку D2 и перетащите Fill Handle вниз в остальные ячейки.

4. Выберите ячейку D1 и нажмите дата > Фильтр, Смотрите скриншот:

5. Нажмите стрелку раскрывающегося списка в ячейке D1, снимите флажок (Бланки) и нажмите OK Кнопка.

Вы можете видеть, что ячейки объединены, если значения первого столбца одинаковы.

Внимание: Чтобы успешно использовать приведенные выше формулы, те же значения в столбце A должны быть непрерывными.


Объединение ячеек, если такое же значение с кодом VBA

Помимо формулы, в этом разделе мы покажем вам, как использовать код VBA для конкатенации ячеек при одинаковом значении.

1. Нажмите другой + F11 , чтобы открыть Приложения Microsoft Visual Basic окна.

2. в Приложения Microsoft Visual Basic окна, нажмите Вставить > модуль, Затем скопируйте и вставьте код ниже модуль окна.

Код VBA: объединить ячейки, если те же значения

Sub ConcatenateCellsIfSameValues()
	Dim xCol As New Collection
	Dim xSrc As Variant
	Dim xRes() As Variant
	Dim I As Long
	Dim J As Long
	Dim xRg As Range
	xSrc    = Range("A1", Cells(Rows.Count, "A").End(xlUp)).Resize(, 2)
	Set xRg = Range("D1")
	On Error Resume Next
	For I = 2 To UBound(xSrc)
		xCol.Add xSrc(I, 1), TypeName(xSrc(I, 1)) & CStr(xSrc(I, 1))
	Next I
	On Error GoTo 0
	ReDim xRes(1 To xCol.Count + 1, 1 To 2)
	xRes(1, 1) = "No"
	xRes(1, 2) = "Combined Color"
	For I = 1 To xCol.Count
		xRes(I + 1, 1) = xCol(I)
		For J = 2 To UBound(xSrc)
			If xSrc(J, 1) = xRes(I + 1, 1) Then
				xRes(I + 1, 2) = xRes(I + 1, 2) & ", " & xSrc(J, 2)
			End If
		Next J
		xRes(I + 1, 2) = Mid(xRes(I + 1, 2), 2)
	Next I
	Set xRg = xRg.Resize(UBound(xRes, 1), UBound(xRes, 2))
	xRg.NumberFormat = "@"
	xRg = xRes
	xRg.EntireColumn.AutoFit
End Sub

Примечания:

1. D1 в соответствии Установите xRg = Диапазон ("D1") означает, что результат будет помещен в ячейку D1.

2. Нет и Комбинированный цвет в соответствии xRes (1, 1) = «Нет» и xRes (1, 2) = «Комбинированный цвет» являются заголовками конкатенированных столбцов. Вы можете изменить их по мере необходимости.

3. нажмите F5 для запуска кода, вы получите конкатенированные результаты в указанном диапазоне.


Легко объединяйте ячейки, если они имеют одинаковое значение с Kutools для Excel (несколько кликов)

Если эти два метода сложны для вас, здесь мы покажем вам Расширенные ряды комбинирования полезности Kutools for Excel. Вы можете легко конкатенировать ячейки запятой, точкой с запятой и т. Д., Если одни и те же значения существуют в другом столбце.

Kutools for Excel : с более чем 300 удобными надстройками Excel, бесплатно попробовать без ограничений в 60-дни.

1. Выберите диапазон с ячейками, которые необходимо объединить, и нажмите Kutools > содержание > Расширенные ряды комбинирования, Смотрите скриншот:

2. в Объединить строки на основе столбца диалогового окна, вам нужно сделать следующее.

A. Выберите столбец с тем же значением, которое вы хотите объединить в ячейку, и нажмите Основной ключ Кнопка.

B. Выберите столбец, который вы хотите объединить, нажмите Сочетать , а затем укажите разделитель из контекстного меню (здесь мы выбираем Запятая).

C. Щелкните OK кнопка. Смотрите скриншот:

Теперь ячейки конкатенируются в соответствии с столбцом первичного ключа.


Объедините значения нескольких ячеек и добавьте пробел или другие разделители между словами:

Kutools for Excel's Сочетать вы можете быстро объединить несколько строк, столбцов или ячеек в столбец, строку или ячейку с определенным разделителем, как вам нужно в Excel. Смотрите скриншот:

контатат ​​того же

Kutools for Excel: с более чем 200 удобными надстройками Excel, бесплатно попробовать без ограничений в 60-дни. Скачать и бесплатно пробную версию!


Легко объединяйте ячейки, если они имеют одинаковое значение с Kutools для Excel

Kutools for Excel включает в себя более удобные инструменты Excel 300. Бесплатно, без ограничений, в 60-дни. Скачайте бесплатную пробную версию прямо сейчас!


Kutools для Excel - лучший инструмент для повышения производительности в офисе Повысьте производительность на 80%

  • Супер Формула Бар (легко редактировать несколько строк текста и формул); Макет чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон...
  • Объединить ячейки / строки / столбцы и хранение данных; Содержание сплит-клеток; Объедините дублирующиеся строки и сумму / среднее... предотвратить повторяющиеся клетки; Сравнить диапазоны...
  • Выберите Дубликат или Уникальный Ряды; Выберите пустые строки (все ячейки пусты); Супер найти и нечеткая находка во многих рабочих тетрадях; Случайный выбор ...
  • Точная копия Несколько ячеек без изменения формулы ссылки; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое ...
  • Любимые и быстро вставляемые формулы, Диапазоны, графики и рисунки; Шифрование ячеек с паролем; Создать список рассылки и отправлять электронные письма ...
  • Извлечение текстаДобавить текст, Удалить по позиции, Удалить пространство; Создание и печать промежуточных итогов подкачки; Преобразование содержимого ячеек и комментариев...
  • Суперфильтр (сохранить и применить схемы фильтров к другим листам); Расширенный поиск по месяцам / неделям / дням, частоте и более; Специальный фильтр жирным шрифтом, курсивом ...
  • Объединить рабочие тетради и рабочие листы; Объединение таблиц на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF...
  • Работает с Office 2007-2019 и 365 и поддерживает все языки. Это легко развернуть в вашей компании. Полнофункциональная 60-дневная бесплатная пробная версия.
вкладка kte 201905

Вкладка «Office» предоставляет интерфейс с вкладками для Office и упрощает работу

  • Включить редактирование и чтение с вкладками в Word, Excel, PowerPoint, Издатель, Доступ, Visio и Проект.
  • Открывайте и создавайте несколько документов в новых вкладках одного и того же окна, а не в новых окнах.
  • Увеличивает вашу производительность на 50% и уменьшает сотни щелчков мышью для вас каждый день!
нижняя часть офиса
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Jade · 19 days ago
    Hi, first of all thanks for creating this resource. I have been trying to figure this out for a couple of hours and I'm stuck. I'm using your 'concatenate cells if same value' but my script is looking at column "D" instead of "A. I can't figure out how to get it to use a different column for the data besides the one right next to it. In my cases I want it to look at column "D" to see if the value is the same and if so, it will grab the data from column "H" and put that data from column "H' into a cell in column "J". How do I switch this to use column "H" for the data? Thx


    Sub ConcatenateCellsIfSameValues()
    Dim xCol As New Collection
    Dim xSrc As Variant
    Dim xRes() As Variant
    Dim I As Long
    Dim J As Long
    Dim xRg As Range
    xSrc = Range("D1", Cells(Rows.Count, "D").End(xlUp)).Resize(, 2)
    Set xRg = Range("J1")
    On Error Resume Next
    For I = 2 To UBound(xSrc)
    xCol.Add xSrc(I, 1), TypeName(xSrc(I, 1)) & CStr(xSrc(I, 1))
    Next I
    On Error GoTo 0
    ReDim xRes(1 To xCol.Count + 1, 1 To 2)
    xRes(1, 1) = "No"
    xRes(1, 2) = "Products"
    For I = 1 To xCol.Count
    xRes(I + 1, 1) = xCol(I)
    For J = 2 To UBound(xSrc)
    If xSrc(J, 1) = xRes(I + 1, 1) Then
    xRes(I + 1, 2) = xRes(I + 1, 2) & vbCrLf & xSrc(J, 2)
    End If
    Next J
    xRes(I + 1, 2) = Mid(xRes(I + 1, 2), 2)
    Next I
    Set xRg = xRg.Resize(UBound(xRes, 1), UBound(xRes, 2))
    xRg.NumberFormat = "@"
    xRg = xRes
    xRg.EntireColumn.AutoFit
    End Sub
  • To post as a guest, your comment is unpublished.
    Harry Vyvey · 2 months ago
    Hi,

    looks like 2 of your formulas are wrong :

    =IF(A2<>A3,CONCATENATE(A2,",""",C2,""""),""). You need to change "A2" to "D1". As you'll want to add the string to the previous cell.

    same goes for this formula :

    =IF(A2<>A1,B2,C1 & "," & B2) : Change C1 to D1.


    kind regards


    Harry
  • To post as a guest, your comment is unpublished.
    James · 10 months ago
    I use this VBA for lots of my spreadsheets and its great. But the spreadsheets have become very large 50k+ rows and it doesnt seem to be working any more. If I use it on 1000 rows it works fine but large sets of data it cant seem to cope with. No errors just no results. Any help would be appreciated.
    • To post as a guest, your comment is unpublished.
      crystal · 9 months ago
      Hi James,
      I tested the code as you mentioned, but it still works well in my case even I set the rows to 1000+.
  • To post as a guest, your comment is unpublished.
    Matt Carrington · 11 months ago
    Using the VBA macro and getting great results, I have tried tweaking it slightly for my needs but cant get it to work so I hope you can help.

    Which bit do I change to make it concat a specific column, not the one directly to the right of the xSrc = Range?

    Thanks for your great work!
    • To post as a guest, your comment is unpublished.
      Matt Carrington · 11 months ago
      Or as a better option, if you had 3 columns instead of 2 and found duplicates in column A (like your example) can you concat column B into a cell and column C into a seperate cell? So if you had columns of Number, Colour, Age, could you concat colour and age into different columns upon finding duplicates in Number? Hope that makes sense!
  • To post as a guest, your comment is unpublished.
    Ram · 1 years ago
    This is exactly what I needed...thank you
  • To post as a guest, your comment is unpublished.
    RS · 1 years ago
    I am so thankful to you for these formulas. Fantastic work!
  • To post as a guest, your comment is unpublished.
    Marissa W · 1 years ago
    The concatenate feature does not work. Combines all the rows into one cell despite different keys.
    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Dear Marissa,
      Sorry I am not sure I got your question. There are three methods in the article, which concatenate feature do you mean?
  • To post as a guest, your comment is unpublished.
    Geoffrey saya · 2 years ago
    How can i merge collums with the same names eg Column one reads Kenya throughout and collumn 2 reads western, Nyanza( appearing more than ten times) and column 3 three names of districts. I want to get how mang districts do we have in every province but keep the columns.
    • To post as a guest, your comment is unpublished.
      crystal · 2 years ago
      Dear Geoffrey,

      Please try the Advanced Combine Rows utility we mentioned in above method two. If you want to keep the columns, please make a copy of the original range and do everything in the copied range.

      Specify the province column as Primary Key, set the Column 1 as Keep 1st, and then set the district column as Calculate > Count.

      After that, you will get how many district you have in every province.
  • To post as a guest, your comment is unpublished.
    cathy postmus · 3 years ago
    Can't seem to concatenate with more than 2 cells using formulas and filters