Note: The other languages of the website are Google-translated. Back to English
Войти  \/ 
x
or
x
Регистрация  \/ 
x

or

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

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

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

В этой статье мы расскажем о трех методах достижения этой цели.

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

Объединить ячейки, если то же значение с кодом VBA
Легко объединять ячейки, если то же значение с Kutools for Excel


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

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

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

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

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

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

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

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

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


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

Работы С Нами Kutools for Excel's Расширенные ряды комбинирования вы можете легко комбинировать ячейки в столбце, если такое же значение присутствует в других столбцах Excel, как показано в демонстрации ниже. Загрузите Kutools for Excel прямо сейчас! (30-дневная бесплатная трасса)

Contatinate того же


Объединить ячейки, если то же значение с кодом 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 = Range ("D1") означает, что результат будет помещен в ячейку D1.

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

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


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

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

Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.

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

2. в Расширенные ряды комбинирования В диалоговом окне необходимо сделать следующее.

  • 2.1) Выберите столбец с тем же значением, на основе которого вы хотите объединить ячейки, а затем щелкните значок Основной ключ кнопку.
  • 2.2) Выберите столбец, в который вы хотите объединить ячейки, нажмите Сочетать кнопку, а затем укажите разделитель из контекстного меню (здесь я указываю Запятая).
  • 2.3) Нажмите OK кнопку.

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

  Если вы хотите получить 30-дневную бесплатную пробную версию этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.


Легко объединять ячейки, если то же значение с Kutools for Excel


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

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

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

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Say something here...
symbols left.
You are guest
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.
    Kristin · 1 months ago
    Hello, how would the VBA code be adjusted if I want to combine cells in column M based on the duplicates in column A?
    • To post as a guest, your comment is unpublished.
      crystal · 27 days ago
      Hi Kristin,
      To combine cells in column M based on the duplicates in column A, try the VBA below.
      In the code,  O1 is the first cell to output the results; M is the column you will combine based on the duplicates in column A; A1 and A represent the first cell and the column where the duplicates locate; No and Combine color is the header of the columns after concatenating. 
      You can change these variables as needed.
      Sub ConcatenateCellsIfSameValues() 'Updated by Extendoffice 20211105 Dim xCol As New Collection Dim xSrc As Variant Dim xSrcValue As Variant Dim xRes() As Variant Dim I As Long Dim J As Long Dim xRg As Range Dim xResultAddress As String Dim xMergeAddress As String Dim xUp As Integer xResultAddress = "O1" 'The cell to output the results xMergeAddress = "M" 'The column you will combine based on the duplicates in column A xSrc = Range("A1", Cells(Rows.Count, "A").End(xlUp)).Resize(, 1) xUp = Range("A1", Cells(Rows.Count, "A").End(xlUp)).Rows.Count xSrcValue = Range(xMergeAddress & "1:" & xMergeAddress & xUp) Set xRg = Range(xResultAddress) 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) & ", " & xSrcValue(J, 1) 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.
    EZPD · 1 years ago
    I just wanted to thank you. It wasn't exactly what I wanted but man did it help me figure out what to do.

    I have a table where the person's name was in column A, dates in column B and the names of tools they use in the headers of columns C:G . In each column there is a "Y" if they used that tool on that date and blank if they did not. (FYI: the same person can be listed more than once and may have used the same tool more than once) On a separate (summary) page I wanted to list all tools each person used within a date period, only listing each tool they used once, in the same cell. On this page, the person's name was in column A, Types of tools used in column B and the helper columns were in column G:K. Here's what I got:
    The first helper column (G2):
    =IF(COUNTIFS(Table7[Person's Name],A2,Table7[Screw Driver],"Y",Table7[Date],">="&1/1/20,Table7[Date],"<="&3/31/20),"Screw Driver","")
    In the last helper column (K2):
    =IF(COUNTIFS(Table7[Person's Name],A2,Table7[Hammer],"Y",Table7[Date],">="&1/1/20,Table7[Date],"<="&3/31/20),IF(J2="","Hammer",J2&"/"&"Hammer"),J2)

    In B2 I just entered =K2

    Thanks again and I hope this helps someone. EZPD
  • To post as a guest, your comment is unpublished.
    Jadee · 2 years 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.
      mcaldw · 1 years ago
      "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'."

      Did you ever figure this out?
  • To post as a guest, your comment is unpublished.
    HarryVyvey · 2 years 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 · 3 years 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 · 3 years 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.
    Travelermatt · 3 years 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.
      Travelermatt · 3 years 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 · 3 years ago
    This is exactly what I needed...thank you
  • To post as a guest, your comment is unpublished.
    RS · 3 years ago
    I am so thankful to you for these formulas. Fantastic work!
  • To post as a guest, your comment is unpublished.
    Marissa W · 4 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 · 4 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 · 4 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 · 4 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 · 5 years ago
    Can't seem to concatenate with more than 2 cells using formulas and filters