Макрос для сравнения двух столбцов excel

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Office для бизнеса Excel 2010 Excel 2007 Еще…Меньше

Чтобы сравнить данные в двух столбцах Microsoft Excel и найти повторяющиеся записи, воспользуйтесь следующими способами. 

Способ 1. Использование формулы на этом этапе

  1. Начните Excel.

  2. На новом примере введите следующие данные (оставьте столбец B пустым):

    A

    B

    C

    1

    1

    3

    2

    2

    5

    3

    3

    8

    4

    4

    2

    5

    5

    0

  3. Введите в ячейку B1 следующую

    формулу:=IF(ISERROR(MATCH(A1,$C$1:$C$5,0)),»»,A1)

  4. Выберем ячейку С1 по B5.

  5. В Excel 2007 и более поздних версиях Excel выберите Заполнить в группе Редактирование, а затем выберите Вниз.

    Повторяющиеся числа отображаются в столбце B, как в следующем примере: 

    A

    B

    C

    1

    1

    3

    2

    2

    2

    5

    3

    3

    3

    8

    4

    4

    2

    5

    5

    5

    0

Способ 2. Использование макроса Visual Basic макроса

Предупреждение: Корпорация Майкрософт предоставляет примеры программирования только для иллюстрации без гарантии, выраженной или подразумеваемой. Это относится и не только к подразумеваемой гарантии пригодности и пригодности для определенной цели. В этой статье предполагается, что вы знакомы с языком программирования, который демонстрируется, и средствами, используемыми для создания и от debug procedures. Инженеры службы поддержки Майкрософт могут объяснить функциональные возможности конкретной процедуры. Однако они не будут изменять эти примеры, чтобы обеспечить дополнительные функциональные возможности или процедуры по построению в необходимом порядке.

Чтобы использовать макрос Visual Basic для сравнения данных в двух столбцах, с помощью следующих действий:

  1. Запустите Excel.

  2. Нажмите ALT+F11, чтобы запустить Visual Basic редактора.

  3. В меню Вставка выберите Модуль.

  4. Введите следующий код на листе модуля:

    Sub Find_Matches()
    Dim CompareRange As Variant, x As Variant, y As Variant
    ' Set CompareRange equal to the range to which you will
    ' compare the selection.
    Set CompareRange = Range("C1:C5")
    ' NOTE: If the compare range is located on another workbook
    ' or worksheet, use the following syntax.
    ' Set CompareRange = Workbooks("Book2"). _
    ' Worksheets("Sheet2").Range("C1:C5")
    '
    ' Loop through each cell in the selection and compare it to
    ' each cell in CompareRange.
    For Each x In Selection
    For Each y In CompareRange
    If x = y Then x.Offset(0, 1) = x
    Next y
    Next x
    End Sub

  5. Нажмите ALT+F11, чтобы вернуться к Excel.

    1. Введите в качестве примера следующие данные (оставьте столбец B пустым):
       

      A

      B

      C

      1

      1

      3

      2

      2

      5

      3

      3

      8

      4

      4

      2

      5

      5

      0

  6. Выберем ячейку от A1 до A5.

  7. В Excel 2007 и более поздних версиях Excel выберите вкладку Разработчик, а затем в группе Код выберите макрос.

    Примечание: Если вкладка Разработчик не отключается, возможно, ее нужно включить. Для этого выберите Файл > параметры > настроитьленту , а затем выберите вкладку Разработчик в поле настройки справа.

  8. Щелкните Find_Matches, а затем нажмите кнопку Выполнить.

    Повторяющиеся числа отображаются в столбце B. Совпадающие числа будут поместиться рядом с первым столбцом, как показано ниже.

    A

    B

    C

    1

    1

    3

    2

    2

    2

    5

    3

    3

    3

    8

    4

    4

    2

    5

    5

    5

    0

Нужна дополнительная помощь?

7 / 7 / 1

Регистрация: 04.05.2012

Сообщений: 70

1

Сравнение двух столбцов листа и выведение совпавших данных

06.09.2012, 16:57. Показов 44205. Ответов 17


Студворк — интернет-сервис помощи студентам

Доброго времени суток.

Возникла такая потребность:
имеется лист со столбцами A и B. В столбце A находятся данные, которые нужно сравнить с имеющимися в столбце B. Сравнивать ячейку нужно со всем столбцом B (не по парам). Если данные совпадают, то в столбец C нужно вывести значение из A.
Сложность в том, что в столбце A данные представлены в формате ФамилияИмя, а в столбце B — ФамилияИмяОтчество (пример во вложении).

Помогите, пожалуйста составить макрос.
Спасибо.



0



7 / 7 / 1

Регистрация: 04.05.2012

Сообщений: 70

06.09.2012, 16:59

 [ТС]

2

Вот пример таблицы



0



1250 / 408 / 52

Регистрация: 14.06.2009

Сообщений: 629

06.09.2012, 17:14

3

Цитата
Сообщение от Aristakis
Посмотреть сообщение

Помогите, пожалуйста составить макрос.

Формулой.



1



Busine2012

1300 / 402 / 22

Регистрация: 21.10.2011

Сообщений: 1,285

06.09.2012, 17:18

4

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Sub Procedure_1()
 
    Dim lLastRowA As Long
    Dim lLastRowC As Long
    Dim i As Long
    Dim rFind As Excel.Range
    
    'Определяем, где заканчиваются данные в столбце A,
    'чтобы знать, до какой строки нам работать.
    lLastRowA = Cells(Rows.Count, "A").End(xlUp).Row
    
    'Определяем, с какой строки заносить данные в столбец C.
    lLastRowC = Cells(Rows.Count, "C").End(xlUp).Row + 1
    
    'Чтобы код быстро работал, отключаем обновление монитора.
    Application.ScreenUpdating = False
    
    'Просматриваем все ячейки в столбце A со второй строки и до
    'последней строки, содержащей данные.
    For i = 2 To lLastRowA Step 1
        'Ищем в столбце B. Поиск с помощью VBA похож на
        'поиск в самом Excel. Поиск будет вестись аналогично тому,
        'когда в диалогвом окне "Найти и заменить" снят флажок "Ячейка целиком".
        'В коде на это указывает: LookAt:=xlPart.
        
        'Поиск будет вестись по всему столбцу B. Если известно,
        'до какой строки в столбце B нужно вести поиск, то
        'нужно внести изменения в код.
        Set rFind = Columns("B").Find(What:=Cells(i, "A").Text, LookIn:=xlValues, _
            LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
            MatchCase:=False, SearchFormat:=False)
            
        'Если есть результат поиска (т.е. есть совпадение),
        'то записываем данные из столбца A в свободную строку столбца C.
        If Not rFind Is Nothing Then
            Cells(lLastRowC, "C").Value = Cells(i, "A").Value
            'Записываем в переменную lLastRowC номер строки,
            'в которую нужно вставить следующие данные.
            lLastRowC = lLastRowC + 1
        End If
            
    Next i
    
    'Сообщение, что работа кода завершена.
    MsgBox "Работа кода завершена!", vbInformation
 
    'Включение обновления монитора.
    Application.ScreenUpdating = True
    
End Sub



2



7 / 7 / 1

Регистрация: 04.05.2012

Сообщений: 70

06.09.2012, 17:37

 [ТС]

5

Спасибо Вам за помощь!!!



0



PuHeL

19.11.2012, 18:03

6

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub CompareSub()
 
Dim ACell As Range
Dim BCell As Range
Dim CCell As Range
 
For Each ACell In Range("A2", Cells(Rows.Count, 1).End(xlUp))
    For Each BCell In Range("B2", Cells(Rows.Count, 2).End(xlUp))
     
     If BCell.Value = ACell.Value Then
     Cells(BCell.Row, 3).Value = BCell.Value
     BCell.Value = ""
     ACell.Interior.Color = 5296274
     End If
     
    Next
Next
 
End Sub

we2seek

84 / 84 / 42

Регистрация: 25.01.2010

Сообщений: 386

05.06.2013, 01:25

7

Цитата
Сообщение от PuHeL
Посмотреть сообщение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Sub CompareSub()
 
Dim ACell As Range
Dim BCell As Range
Dim CCell As Range
 
For Each ACell In Range("A2", Cells(Rows.Count, 1).End(xlUp))
    For Each BCell In Range("B2", Cells(Rows.Count, 2).End(xlUp))
     
     If BCell.Value = ACell.Value Then
     Cells(BCell.Row, 3).Value = BCell.Value
     BCell.Value = ""
     ACell.Interior.Color = 5296274
     End If
     
    Next
Next
 
End Sub

СПАСИБО! Чудный код!



0



17 / 1 / 2

Регистрация: 20.04.2016

Сообщений: 120

11.04.2017, 16:23

8

Доброго времени суток.
Подскажите как переделать макрос, что бы он перемещал не совпавшие и перемещал их на другой лист той же книги.



0



2784 / 716 / 106

Регистрация: 04.02.2011

Сообщений: 1,443

11.04.2017, 23:13

9

На скорую руку и для разового применения и функции ВПР могло хватить — взаимно проВПРить два столбца. А вообще, задача настолько распространенная в повседневных задачах, что удивляюсь, почему до сих пор нет какой-то кнопки в Excel для сравнения двух наборов данных.



0



17 / 1 / 2

Регистрация: 20.04.2016

Сообщений: 120

12.04.2017, 12:45

10

К сожалению мне не для разового применения. Каждую неделю нужно будет проверять чуть меньше 11000 ячеек.



0



2784 / 716 / 106

Регистрация: 04.02.2011

Сообщений: 1,443

12.04.2017, 14:42

11

Тогда макросы себя оправдают, точно.



0



4038 / 1423 / 394

Регистрация: 07.08.2013

Сообщений: 3,541

13.04.2017, 03:22

12

BSH,
пожалуйста приложите файлик с примером
в файлике важно названия столбцов (если таковые имеются)
немножко данных (соответственно левых — это просто из соображений конфиденциальности информации)
ну и опишите что нужно сделать
(как вариант описания — информацию из столбца D листа Лист1 сравнить с информацией столбца H листа Лист2 и при совпадении (не совпадении) информацию с листа Лист2 перенести на лист3)



0



17 / 1 / 2

Регистрация: 20.04.2016

Сообщений: 120

13.04.2017, 08:40

13

На странице «Разница приборов» находится главная таблица. На странице «Приборы» вводятся данные старые с листа «Разница приборов», и новые данные я их уже ввел. В новых данных есть новые приборы, которые нужно перенести на страницу «Разница приборов» в столбец «A» в конец.



0



snipe

4038 / 1423 / 394

Регистрация: 07.08.2013

Сообщений: 3,541

13.04.2017, 09:03

14

если я правильно понял условие задачи — то вот так

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub macro11()
Set objConnection = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
objConnection.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _
"Data Source=" & ActiveWorkbook.Path & "/" & ActiveWorkbook.Name & ";" & _
"Extended Properties=""Excel 12.0;HDR=No"";"
Sheets("разница приборов").Select
Dim i&, j&
i = Cells(Rows.Count, 1).End(xlUp).Row
Sheets("Приборы").Select
j = Cells(Rows.Count, 1).End(xlUp).Row
sqlStr1 = "SELECT a2.f1 from [Приборы$a2:a" & j & "] as a2 Where a2.f1 not in (Select a3.f1 from [разница приборов$a3:a" & i & "] as a3)"
rs.Open sqlStr1, objConnection, 3, 3
Sheets("разница приборов").Cells(i + 1, 1).CopyFromRecordset rs
Set rs = Nothing
Set objConnection = Nothing
End Sub

код надо добавить отключением и включением обновления экрана — что бы не мерцало



1



BSH

17 / 1 / 2

Регистрация: 20.04.2016

Сообщений: 120

13.04.2017, 10:09

15

при выполнении выдает ошибку и останавливается

PureBasic
1
rs.Open sqlStr1, objConnection, 3, 3

Миниатюры

Сравнение двух столбцов листа и выведение совпавших данных
 



0



4038 / 1423 / 394

Регистрация: 07.08.2013

Сообщений: 3,541

13.04.2017, 10:19

16

вот файлик с кодом



1



2784 / 716 / 106

Регистрация: 04.02.2011

Сообщений: 1,443

13.04.2017, 13:26

17

Snipe, интересный подход, непривычный для таких задач. Как гарантировать наличие нужного провайдера конкретной версии — это связка с версией офиса?



0



4038 / 1423 / 394

Регистрация: 07.08.2013

Сообщений: 3,541

14.04.2017, 02:59

18

mc-black,
да этот провайдер привязан к офису
но таких провайдеров всего два
один для офисов 2003 и более пожилых — Microsoft.Jet.4.0 (вроде так называется)
а для более молодых вот этот — у меня офис 2010 и работает нормально с файлами xlsm
определить версию офиса можно программно и в зависимости от офиса переписывать строку Open

Добавлено через 7 минут
кстати сам макрос (как и пример) были созданы в офисе 2016



1



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

14.04.2017, 02:59

18

Comparing columns of data manually is not a realistic approach when working with large data sets. Let us show you how to compare two columns in Excel using VBA and automate this process.

How to Compare two Columns in Excel

VBA has a built in function called  StrComp, which can compare two separate strings. This function returns an integer based on the result of the comparison. Zero ‘0′ means a perfect match, and the sample code we give below highlights the cell if the result is NOT equal to 0.

StrComp function gets 3 arguments. First 2 arguments are the strings to be compared, and the last one is the comparison type. Note that the third argument is optional. If not omitted, the Option Compare setting will determine the type of comparison. Below are available options:

  • vbUseCompareOption: Performs a comparison using the setting of the Option Compare statement.
  • vbBinaryCompare: Performs a binary comparison. Case sensitive.
  • vbTextCompare: Performs a textual comparison. Not case sensitive.
  • vbDatabaseCompare: Performs a comparison based on information in your database. Microsoft Access only.

The code requires the user to select columns in a single range. Selected range is assigned to a range variable bothcolumns, and each cell in that range is compared row by row. With statement allows us to not use bothcolumns every time, and the For…Next loop is how we can check for every cell.

Highlighting

After you get the range, you can use the ColorIndex property to set that range a color. Below are some index numbers for colors:

  • 3: Red
  • 5: Blue
  • 6: Yellow
  • 0: No Fill

First, you need to add the module into the workbook or the add-in file to be able to use the code. Copy and paste the code into the module to run it. The main advantage of the module method is that it allows saving the code in the file, so that it can be used again later. Furthermore, the subroutines in modules can be used by icons in the menu ribbons or keyboard shortcuts. Remember to save your file in either XLSM or XLAM format to save your VBA code.

Highlight differences

Sub HighlightColumnDifferences()

    Dim bothcolumns As Range, i As Integer

    Set bothcolumns = Selection

    With bothcolumns

        For i = 1 To .Rows.Count

            If Not StrComp(.Cells(i, 1), .Cells(i, 2), vbBinaryCompare) = 0 Then

                Range(.Cells(i, 1), .Cells(i, 2)).Interior.ColorIndex = 6

            End If

        Next i

    End With

End Sub

Перейти к основному содержанию

Статья даёт ответы на следующие вопросы:

  • Как сравнить две таблицы в Excel с помощью макросов VBA?
  • Как обращаться к ячейкам таблицы Excel с помощью VBA?
  • Как осуществлять перебор ячеек таблицы в цикле с помощью VBA?

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

В данной статье рассмотрим способ сравнения таблиц Excel с помощью VBA макросов на примере тех же исходных данных.

Проиллюстрируем задачу картинкой из первой статьи.

задача сравнения двух таблиц в Excel

Для начала напишем алгоритм наших действий по сравнению таблиц.

  1. Определим диапазоны данных первой и второй таблицы, то есть найдем последние значимые строки и сохраним их номера в переменных (последняя строка таблицы 1 — last_i и последняя строка таблицы 2 — last_j).
  2. Начнем проходить по каждой строке таблицы 2 (внешний цикл), данные из которой нужно перенести в таблицу 1. С первой строки данных (в примере это строка 3) до последней строки таблицы 2.
  3. Для каждой строки таблицы 2 определим идентификатор строки, путем формирования строки, содержащей полный адрес квартиры (значения из нескольких колонок, разделенные дефисами).
  4. Начнем проходить по каждой строке таблицы 1 (внутренний цикл) с первой строки данных (в примере это строка 3) до последней строки таблицы 1, определяя при этом идентификатор строки.
  5. Сравним значения идентификаторов строк таблицы 1 и таблицы 2.
  6. Если идентификаторы равны, перепишем ФИО покупателя из ячейки таблицы 2 в соответствующую ячейку таблицы 1; прервем внутренний цикл по таблице 1 и перейдем к следующей строке таблицы 2 (переход к п.2).

Теперь остается реализовать алгоритм в виде программного кода макроса.

Для этого откроем вкладку Вид ленты функций Excel. Щелкнем на нижнюю часть со стрелкой кнопки Макросы. В открывшемся подменю выберем Запись макроса. В результате начнется запись нового макроса. Поскольку код мы будем формировать вручную, то еще раз зайдем в подменю макросов и выберем Остановить запись. Далее еще раз войдем в подменю макросов и выберем Макросы.

В появившемся диалоге выделим наш макрос и нажмем Изменить.

На экране откроется окно редактора макросов Visual Basic for Applications. В области кода (правая верхняя область) отображается код только что созданного пустого макроса.

Редактор макросов Visual Basic For Applications

В процедуру Макрос1 (между объявлениями начала и конца процедуры: Sub и End Sub) необходимо вставить код, решающий поставленную задачу.
Образец кода представлен ниже.

Sub Макрос1()
'
' Макрос1 сравнение двух таблиц с использованием макроса VBA
'

' ссылка на первый лист книги
Dim sheet1 As Worksheet
Set sheet1 = ActiveWorkbook.Sheets(1)
' ссылка на второй лист книги
Dim sheet2 As Worksheet
Set sheet2 = ActiveWorkbook.Sheets(2)

' строка для хранения идентификатора строки первой таблицы
Dim str1 As String
' строка для хранения идентификатора строки второй таблицы
Dim str2 As String

' позиция курсора (номер строки) в первой таблице
Dim i As Integer
i = 3
Dim last_i As Integer
last_i = 3
' позиция курсора (номер строки) во второй таблице
Dim j As Integer
j = 3
Dim last_j As Integer
last_j = 3

' определяем последнюю значимую строку первой таблицы (последняя строка, в первой колонке которой есть значение)
For Each Cell In sheet1.Range("A:A")
    If Cell.Row > 2 Then
        If Cell.Value > "" Then
            last_i = Cell.Row
        Else
            Exit For
        End If
    End If
Next Cell

' определяем последнюю значимую строку второй таблицы (последняя строка, в первой колонке которой есть значение)
For Each Cell In sheet2.Range("A:A")
    If Cell.Row > 2 Then
        If Cell.Value > "" Then
            last_j = Cell.Row
        Else
            Exit For
        End If
    End If
Next Cell

' пробегаем по строкам второй таблицы (внешний цикл)
For j = 3 To last_j
    ' определяем идентификатор текущей строки
    str2 = sheet2.Cells(j, 1).Value & "-" & sheet2.Cells(j, 2).Value & "-" & sheet2.Cells(j, 3).Value & "-" & sheet2.Cells(j, 4).Value
    ' пробегаем по строкам первой таблицы (внутренний цикл)
    For i = 3 To last_i
        ' определяем идентификатор текущей строки
        str1 = sheet1.Cells(i, 1).Value & "-" & sheet1.Cells(i, 2).Value & "-" & sheet1.Cells(i, 3).Value & "-" & sheet1.Cells(i, 4).Value
        ' сравниваем идентификаторы строк первой и второй таблицы
        If str2 = str1 Then
            ' если совпадение найдено, то записываем покупателя из второй таблицы в первую в строку с соответствующей ему квартирой
            sheet1.Cells(i, 5).Value = sheet2.Cells(j, 5).Value
            ' прекращаем внутренний цикл, переходим к следующей итерации внешнего цикла
            ' (к следующей записи второй таблицы)
            Exit For
        End If
    Next i
Next j

End Sub

Результат решения задачи:
результат сравнения таблиц в Excel

Другие интересные статьи

  • Как сравнить две таблицы в Excel с использованием формул?
  • Горячие клавиши Excel

Тэги: 

  • Статьи
  • Excel
  • сравнение таблиц
  • VBA
  • макросы

Сравнение двух столбцов макрос

Kastielle

Дата: Пятница, 22.03.2013, 15:58 |
Сообщение № 1

Добрый день!
Очень прошу помощи в доработке макроса.

Дано:

A | B |
——————————
10.0.10.14 | 10.0.10.16 |
10.0.10.15 | 10.0.10.14 |
10.0.10.16 | 10.0.10.23 |

Хочется:

A | B | Нет совпадений |
—————————————————————————————
10.0.10.14 (зелененьким) | 10.0.10.16 (зелененьким) | 10.0.10.15
10.0.10.15 | 10.0.10.14 (зелененьким) | 10.0.10.23
10.0.10.16 (зелененьким) | 10.0.10.23 |

Или как грамотнее решить такую задачу. Заранее спасибо за любую помощь!

[vba]

Код

Sub s_Test()
Dim v_Sh As Worksheet
Dim v_Rng As Range, v_Cell As Range
Dim v_Var As Double

Set v_Sh = ActiveSheet
Set v_Rng = Intersect(v_Sh.Columns(1), v_Sh.UsedRange)

On Error Resume Next
For Each v_Cell In v_Rng.Cells
If v_Cell <> Empty Then
v_Var = WorksheetFunction.Match(v_Cell, v_Sh.Columns(2), 0)
If Err.Number <> 0 Then
Cells(v_Cell, 5) = Cells(v_Cell, 1)
Err.Clear
Else
v_Cell.Interior.ColorIndex = 4
End If
End If
Next v_Cell
End Sub

[/vba]

 

Ответить

Jhonson

Дата: Пятница, 22.03.2013, 16:11 |
Сообщение № 2

Группа: Друзья

Ранг: Ветеран

Сообщений: 514

Для

Цитата (Kastielle)

10.0.10.14 (зелененьким)

думаю условное форматирование подойдет.
На счет

Цитата (Kastielle)

| Нет совпадений |

не понятно, что вы хотите.

P.S. Прочитайте правила!

К сообщению приложен файл:

12.xls
(26.5 Kb)


«Ничто не приносит людям столько неприятностей, как разум.»

Сообщение отредактировал JhonsonПятница, 22.03.2013, 16:12

 

Ответить

Kastielle

Дата: Пятница, 22.03.2013, 16:25 |
Сообщение № 3

Большое спасибо за ответ. Правила прочитал.
Столбец А — адреса1
Столбец B — адреса 2
Столбец C — нет совпадений. Куда помещаются значения из ячеек, которые содержатся только в А или только в B

 

Ответить

KuklP

Дата: Пятница, 22.03.2013, 16:35 |
Сообщение № 4

Группа: Проверенные

Ранг: Старожил

Сообщений: 2369


Репутация:

486

±

Замечаний:
0% ±


2003-2010

Цитата (Kastielle)

Правила прочитал.

Конкретно, П.3 прочитайте внимательно.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728

 

Ответить

Kastielle

Дата: Пятница, 22.03.2013, 16:49 |
Сообщение № 5

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

0

±

Замечаний:
0% ±


Прочитал. Зарегистрировался. Пример файла прилагаю.

К сообщению приложен файл:

4233937.xls
(46.5 Kb)

 

Ответить

Формуляр

Дата: Пятница, 22.03.2013, 18:00 |
Сообщение № 6

Группа: Друзья

Ранг: Ветеран

Сообщений: 832


Репутация:

255

±

Замечаний:
0% ±


Excel 2003, 2013

Цитата (Kastielle)

Очень прошу помощи в доработке макроса.

А зачем обязательно макросом?
Любим трудности? biggrin

К сообщению приложен файл:

1066525.xls
(54.0 Kb)


Excel 2003 EN, 2013 EN

Сообщение отредактировал ФормулярПятница, 22.03.2013, 18:01

 

Ответить

Kastielle

Дата: Пятница, 22.03.2013, 22:26 |
Сообщение № 7

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

0

±

Замечаний:
0% ±


Формуляр, низкий поклон тебе и ОГРОМЕННОЕ спасибо! Чувствуется рука Гуру)

 

Ответить

ikki

Дата: Пятница, 22.03.2013, 23:33 |
Сообщение № 8

Группа: Друзья

Ранг: Старожил

Сообщений: 1906


Репутация:

504

±

Замечаний:
0% ±


Excel 2003, 2010

[offtop]руки гуру — такие штуки
вырастают лишь там где надо
на концах у них растут пальцы
а на пальцах у гуру ногти
под ногтями сидит мудрилка
пишет макросы всяко-разно
или формулы там и проча
а мозги для гур не потребны
не почувствовать не потрогать
да и выглядят некрасиво
то ли дело у гуру — руки!
(впрочем ноги наверно тоже)[/offtop]


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki

Сообщение отредактировал ikkiПятница, 22.03.2013, 23:34

 

Ответить

Kastielle

Дата: Суббота, 23.03.2013, 11:18 |
Сообщение № 9

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

0

±

Замечаний:
0% ±


Прошу прощения за нубство, а как модернизировать эту формулу на 5000 строк а не на 16 ? Пишет нельзя изменять часть массива(

 

Ответить

ikki

Дата: Суббота, 23.03.2013, 11:23 |
Сообщение № 10

Группа: Друзья

Ранг: Старожил

Сообщений: 1906


Репутация:

504

±

Замечаний:
0% ±


Excel 2003, 2010

это формула массива и введена она в диапазон ячеек
выделяете бОльший диапазон — например, C2:C5000
в строке формул меняете формулу (16 на 5000, везде, где встретится)
нажимаете Ctrl+Shift+Enter

пс. но на 5000, скорее всего, это будет очень долго пересчитываться.
лучше макрос.


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki

 

Ответить

Kastielle

Дата: Суббота, 23.03.2013, 14:30 |
Сообщение № 11

Группа: Пользователи

Ранг: Прохожий

Сообщений: 4


Репутация:

0

±

Замечаний:
0% ±


ikki, спасибо, Вы правы. Формулу изменил по вышей инструкции, но ее отработка на 5000 строк занимает 43 минуты по одному столбцу. Поэтому всё таки прошу помощи с макросом.

 

Ответить

ikki

Дата: Суббота, 23.03.2013, 15:32 |
Сообщение № 12

Группа: Друзья

Ранг: Старожил

Сообщений: 1906


Репутация:

504

±

Замечаний:
0% ±


Excel 2003, 2010


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki

 

Ответить

ABC

Дата: Суббота, 23.03.2013, 16:13 |
Сообщение № 13

Группа: Друзья

Ранг: Обитатель

Сообщений: 397


Репутация:

112

±

Замечаний:
0% ±


Excel 2007


MS Excel 2007 and 2010…
——————————-
С Уважением, Даулет

 

Ответить

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

  Sub DeleteDubls()  
Const intDataCol = 5  
Const intMaxRow = 140  
   Dim i%, j%  
   Dim strValue1$, strValue2$  
   For i = 2 To intMaxRow — 1  
       strValue1 = Trim(Cells(i, intDataCol))  
       For j = i + 1 To intMaxRow  
           strValue2 = Trim(Cells(j, intDataCol))  
           If StrComp(strValue1, strValue2, vbTextCompare) = 0 Then  
               Cells(j, intDataCol).Interior.ColorIndex = 4  
           End If  
       Next  
   Next  
End Sub  

  Файл с тем как должно выглядеть прикреплен

На чтение 2 мин Просмотров 46

Как сравнить значения в двух столбцах таблицы excel и найти повторяющиеся.

Способ 1. Использование простой формулы

Данный способ сравнения подходит для столбцов любой длинны.

Алгоритм:

  1. Столбцы для сравнения располагаются на одном листе Excel (не обязательно, чтоб они находились рядом).
  2. Вписываем формулу =ЕСЛИ(A2=B2;”Совпадают”;”Не совпадают”). Где, А2 и В2 – адрес ячейки.
  3. Еще одна формула =ЕСЛИ(A2<>B2; “Не совпадают”;”Совпадают”).Где, А2 и В2 – адрес ячейки.
  4. Перетаскиваем ее вниз, до конца столбика.

Видеоинструкция: Как сравнить столбцы в Excel на совпадения с помощью формулы.

Способ 2. Использование макроса Visual Basic

Макросы – программные алгоритмы действий, записанные пользователем.

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

Макрос:

Sub Sravnenie()

‘название указано выше, оно должно быть одинаковым, иначе программа не будет работать

Dim PosStr As Long

Dim FormStr As Long

PosStr = Cells(1, 1).CurrentRegion.Rows.Count

ActiveSheet.Cells(PosStr, 3).Select

ActiveCell.FormulaR1C1 = “=IF(RC[-2]=RC[-1],””Совпадают””,””Не совпадают””)”

Selection.AutoFill Destination:=Range(Cells(1, 3), Cells(PosStr, 3)), Type:=xlFillDefault

End Sub

Способ 3: Условное форматирование

Способ Условного форматирования основывается на создании пользователем правила, а затем уже сравнения 2 столбцов за правилом. В данном случае мы будем окрашивать ячейки второго столбика в цвета в зависимости от совпадения, или несовпадения данных.

  1. Выделяем данные столбца В и выбираем Условное форматирование.
  2. Создаем правило.
  3. Настраиваем правило и выбираем для сравнения ячейку А2. Обратите внимание, что программа Excel по умолчанию вписывает для сравнения не =$A2, а =$A$2. Если оставить формулу в таком виде, то все ячейки столбца В будут сравнивать с ячейкой А2.

    • 1. Сравните два столбца построчно.
      • 1.1 Сравните ячейки в одной строке на предмет точного совпадения
      • 1.2. Сравнить ячейки в одной строке для точного совпадения или совпадения без учета регистра
      • 1.3 Сравните ячейки в одной строке и выделите совпадающие или несоответствующие данные
      • 1.4 Сравнение двух столбцов строка за строкой и выделение значений несоответствия (VBA)
    • 2. Сравните два столбца в ячейках
      • 2.1. Сравнить ячейки с двумя столбцами по ячейкам и отобразить результаты сравнения в другом столбце
      • 2.2 Сравните и выделите повторяющиеся или уникальные данные
      • 2.3 Сравните и выберите или выделите повторяющиеся или уникальные данные
      • 2.4 Сравните два столбца и укажите точные дубликаты в другом столбце (VBA)
      • 2.5 Сравните два столбца и выделите дубликаты (VBA)
    • 3. Сравнить несколько столбцов в одной строке
      • 3.1. Найдите полные совпадения во всех ячейках одной строки
      • 3.2 Найдите совпадение в любых двух ячейках одной строки
      • 3.3 Найдите полные совпадения во всех ячейках в одной строке и выделите
      • 3.4. Сравните несколько столбцов и выделите различия строк
    • 4. Сравните два столбца и найдите недостающие точки данных.
      • 4.1 Сравните и найдите недостающие точки данных
      • 4.2 Сравните два столбца и перечислите недостающие данные ниже
      • 4.3 Сравните и найдите недостающие точки данных и перечислите их в другом столбце
      • 4.4 Сравните два столбца и перечислите недостающие данные ниже (VBA)
    • 5. Сравните два столбца (даты), если больше или меньше
      • 5.1 Сравните два столбца, если больше или меньше
      • 5.2 Сравните два столбца, если больше или меньше, чем формат
    • 6. Сравните два столбца и верните значение в другом столбце
      • 6.1 Получение точных совпадающих данных
      • 6.2 Извлечение данных частичного совпадения
    • 7. Сравните два столбца и подсчитайте совпадения или различия
      • 7.1 Сравните два столбца и подсчитайте совпадения
      • 7.2 Сравните два столбца и подсчитайте совпадения или различия
    • 8. Сравните два столбца с подстановочным знаком
    • 9. Удалите различия или совпадения.
    • 10. Сравните два столбца и рассчитайте процентное изменение между
    • 11. Сравните два диапазона
      • 11.1 Сравнить два диапазона по ячейке
      • 11.2 Сравните два диапазона, если данные в одном порядке

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

Это учебное пособие охватывает

1. Сравните два столбца построчно.

1.1 Сравните ячейки в одной строке на предмет точного совпадения

1.2 Сравнить ячейки в одной строке на предмет точного совпадения или совпадения без учета регистра (с использованием формулы ЕСЛИ)

1.3 Сравните ячейки в одной строке и выделите совпадающие или несоответствующие данные (используя условное форматирование)

1.4 Сравните два столбца строка за строкой и выделите значения несоответствия (используя VBA)

2.Сравните два столбца в ячейках и выберите или выделите повторяющиеся или уникальные данные

2.1. Сравнить ячейки с двумя столбцами по ячейкам и отобразить результат сравнения в другом столбце (используя формулу)

2.2 Сравнение и выделение повторяющихся или уникальных данных (с использованием условного форматирования)

2.3 Сравните и выберите или выделите повторяющиеся или уникальные данные (с помощью удобного инструмента)

2.4 Сравните два столбца и укажите точные дубликаты в другом столбце (используя код VBA)

2.5 Сравните два столбца и выделите дубликаты (используя код VBA)

3.Сравните несколько столбцов в одной строке

3.1. Найдите полные совпадения во всех ячейках одной строки (используя формулу ЕСЛИ)

3.2 Найдите совпадения в любых двух ячейках в одной строке (используя формулу ЕСЛИ)

3.3 Найдите полные совпадения во всех ячейках одной строки и выделите их (используя условное форматирование)

3.4. Сравните несколько столбцов и выделите различия строк

4. Сравните два столбца и найдите недостающие точки данных.

4.1 Сравните и найдите недостающие точки данных (с помощью формулы ВПР или ПОИСКПОЗ)

4.2 Сравните два столбца и перечислите недостающие данные ниже (используя формулу ИНДЕКС)

4.3 Сравните и найдите недостающие точки данных и перечислите их в другом столбце (используя удобный инструмент)

4.4 Сравните два столбца и перечислите недостающие данные ниже (используя VBA)

5. Сравните два столбца (даты), если больше или меньше

5.1 Сравните два столбца, если они больше или меньше (по формуле)

5.2 Сравните два столбца, если они больше или меньше, чем формат (с использованием условного форматирования)

6. Сравните два столбца и верните значение в другом столбце

6.1 Получите точные совпадающие данные (используя формулу или удобный инструмент)

6.2 Получение данных частичного совпадения (используя формулу)

7. Сравните два столбца и подсчитайте совпадения или различия.

7.1 Сравните два столбца и подсчитайте совпадения (используя формулу СУММПРОИЗВ)

7.2 Сравните два столбца и подсчитайте совпадения или различия (с помощью удобного инструмента)

8. Сравните два столбца с подстановочным знаком.

9. Удалите различия или совпадения.

10. Сравните два столбца и рассчитайте процентное изменение между

11. Сравните два диапазона

11.1 Сравнить два диапазона по ячейке

11.2 Сравните два диапазона, если данные в одном порядке

Внимание

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


1. Сравните два столбца построчно.

Ниже приведен набор данных, в котором мне нужно проверить в той же строке, совпадают ли имена в столбце A с именами в столбце B или нет.
док сравнить столбцы 1.1 1

образец документаНажмите, чтобы загрузить образец файла

1.1 Сравните ячейки в одной строке на предмет точного совпадения


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

= B2 = C2

док сравнить столбцы 1.1 1

Нажмите Enter и перетащите маркер заполнения в ячейку D8. Если формула возвращает ИСТИНА, значения двух столбцов полностью совпадают, если возвращается ЛОЖЬ, они разные.
док сравнить столбцы 1.1 1

1.2 Сравнить ячейки в одной строке на предмет точного совпадения или совпадения без учета регистра (с использованием формулы ЕСЛИ)


Если вы хотите сравнить два столбца строка за строкой для нечувствительности к регистру или получить более подробное описание, такое как Match, Mismatch, вы можете использовать функцию IF.

Сравнение ячеек в одной строке на предмет точного совпадения

Если вы хотите использовать тексты «Совпадение» и «Несоответствие» для описания результатов сравнения, воспользуйтесь приведенной ниже формулой:

=IF(EXACT(B2,C2),»Match»,»Mismatch»)

док сравнить столбцы 1.1 1

Нажмите Enter , чтобы получить первый результат, затем перетащите дескриптор автозаполнения в ячейку D8.
док сравнить столбцы 1.1 1

Сравнение ячеек в одной строке на предмет соответствия без учета регистра

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

=IF(B2=C2,»Match»,»Mismatch»)

док сравнить столбцы 1.1 1

Нажмите Enter , чтобы получить первый результат, затем перетащите дескриптор автозаполнения в ячейку E8.
док сравнить столбцы 1.1 1

замечание

В приведенных выше формулах вы можете изменить тексты «Совпадение» и «Несоответствие» на свое собственное описание.

1.3 Сравните ячейки в одной строке и выделите совпадающие или несоответствующие данные (используя условное форматирование)


Если вы хотите выделить совпадающие или разные значения, Условное форматирование функция может вам помочь.

1. Выберите два столбца, которые используются для сравнения (B2: C8, за исключением заголовков столбцов), затем щелкните Главная > Условное форматирование > Новое правило.
док сравнить столбцы 1.1 1

2. Во всплывающем Новое правило форматирования диалоговое окно, щелкните, чтобы выбрать Используйте формулу, чтобы определить, какие ячейки следует форматировать. в Выберите тип правила раздел, затем введите = $ B2 = $ C2 в текстовое поле Формат значений, где эта формула истинна.
док сравнить столбцы 1.1 1

3. Теперь щелкните Формат для отображения Формат ячеек диалог, затем под Заполнять на вкладке выберите один цвет, который вам нужен, чтобы выделить совпадения.

Или вы можете изменить размер шрифта, размер шрифта, границы ячеек или числовой формат, чтобы добиться совпадений, как вам нужно на других вкладках.
док сравнить столбцы 1.1 1

4. Нажмите OK > OK чтобы закрыть диалоговые окна, ячейки в одной строке будут выделены, если они совпадают.
док сравнить столбцы 1.1 1

Если вы хотите выделить значения несоответствия, вы можете использовать это в = $ B2 <> $ C2 в Формат значений, где эта формула истинна текстовое поле в Изменить правило форматирования Диалог.
док сравнить столбцы 1.1 1

Тогда различия двух столбцов в одной строке будут выделены заданным цветом.
док сравнить столбцы 1.1 1

1.4 Сравните два столбца строка за строкой и выделите значения несоответствия (используя VBA)


Если вы хотите сравнить два столбца строка за строкой с кодом VBA, это руководство вас удовлетворит.

1. Включите рабочий лист, содержащий два столбца, используемые для сравнения, нажмите Alt + F11 ключи для включения Microsoft Visual Basic для приложений окно.

2. В появившемся диалоговом окне щелкните Вставить > Модули.
док сравнить столбцы 1.1 1

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

VBA: сравнение двух столбцов строка за строкой и выделение различий

Sub ExtendOffice_HighlightColumnDifferences()
'UpdatebyKutools20201016
Dim xRg As Range

Dim xWs As Worksheet

Dim xFI As Integer

On Error Resume Next

SRg:

Set xRg = Application.InputBox("Select two columns:", "Kutools for Excel", , , , , , 8)

If xRg Is Nothing Then Exit Sub

 

If xRg.Columns.Count <> 2 Then

    MsgBox "Please select two columns"

    GoTo SRg

End If

 

Set xWs = xRg.Worksheet

For xFI = 1 To xRg.Rows.Count

    If Not StrComp(xRg.Cells(xFI, 1), xRg.Cells(xFI, 2), vbBinaryCompare) = 0 Then

        xWs.Range(xRg.Cells(xFI, 1), xRg.Cells(xFI, 2)).Interior.ColorIndex = 7 'you can change the color index as you need.

End If

Next xFI

End Sub

док сравнить столбцы 1.1 1

4. нажмите F5 нажмите клавишу для запуска кода, затем появится диалоговое окно для выбора двух столбцов.
док сравнить столбцы 1.1 1

5. Нажмите OK. Затем различия двух столбцов были выделены цветом фона.
док сравнить столбцы 1.1 1

замечание

Вы можете изменить цвет выделения по своему усмотрению, изменив индекс цвета в коде, справочник по индексу цвета:
док сравнить столбцы 1.1 1


2. Сравните два столбца в ячейках и выберите или выделите повторяющиеся или уникальные данные

В этой части набор данных показан ниже, и вы хотите найти все значения, которые находятся одновременно в столбце B и столбце C, или найти значения только в столбце B.
док сравнить столбцы 1.1 1

образец документаНажмите, чтобы загрузить образец файла

2.1. Сравнить ячейки с двумя столбцами по ячейкам и отобразить результаты сравнения в другом столбце (используя формулу)


Здесь вы можете использовать формулу в сочетании с функцией ЕСЛИ и СЧЁТЕСЛИ, чтобы сравнить два столбца и найти значения, которые находятся в столбце B, но не в столбце C.

=IF(COUNTIF($C$2:$C$8, $B2)=0, «No in C», «Yes in C»)

док сравнить столбцы 1.1 1

Нажмите Enter и перетащите маркер автозаполнения в ячейку D8.
док сравнить столбцы 1.1 1

замечание

1. Эта формула сравнивает два столбца без учета регистра.

2. Вы можете изменить описание «Нет в C» и «Да в C» на другие.

3. Если вы хотите сравнить два целых столбца, измените фиксированный диапазон $ C $ 2: $ C $ 8 на $ C: $ C.

2.2 Сравнение и выделение повторяющихся или уникальных данных (с использованием условного форматирования)


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

Выделите все повторяющиеся или уникальные значения в двух столбцах

1. Выберите два столбца, с которыми вы будете сравнивать, затем щелкните Главная > Условное форматирование > Выделите правила ячеек > Дублирующие значения.
док сравнить столбцы 1.1 1

2. Во всплывающем Дублирующие значения выберите нужный формат выделения из раскрывающегося списка значений.
док сравнить столбцы 1.1 1

3. Нажмите OK. Затем были выделены дубликаты в двух столбцах.
док сравнить столбцы 1.1 1

замечание

Если вы хотите выделить уникальные значения (различия) в двух столбцах, также нажмите Главная > Условное форматирование > Выделите правила ячеек > Дублирующие значения для отображения Дублирующие значения диалог, измените Дублировать в Уникальное Произведение в левом раскрывающемся списке, затем выберите другой формат из значений в раскрывающемся списке, нажмите OK.
док сравнить столбцы 1.1 1

Уникальные значения будут выделены.
док сравнить столбцы 1.1 1

Найдите и выделите значения в столбце B, если они также находятся в столбце C.

Если вы хотите выделить значения в столбце B, которые также находятся в столбце C, Cтрадиционное форматирование функция также может оказать вам услугу.

1. Выберите столбец B2: B8, щелкните Главная > Условное форматирование > Новое правило.
док сравнить столбцы 1.1 1

2. в Новое правило форматирования диалога, выберите Используйте формулу, чтобы определить, какие ячейки следует форматировать. из Выберите тип правила раздел, затем введите = СЧЁТЕСЛИ ($ C $ 2: $ C $ 8, $ B2)> 0 в текстовое поле Формат значений, где эта формула истинна.
док сравнить столбцы 1.1 1

3. щелчок Формат , чтобы перейти к Формат ячеек диалога под Заполнять на вкладке выберите один цвет, чтобы выделить совпадения.

Вы можете использовать другие форматы для выделения значений на вкладках Шрифт, Число, Граница.
док сравнить столбцы 1.1 1

4. Нажмите OK > OK. Затем значения в столбце B, которые также существуют в столбце C, были выделены указанным цветом.
док сравнить столбцы 1.1 1

Если вы хотите выделить значения, которые только в столбце B, но не в столбце C, повторите указанные выше шаги, но измените формулу на шаге 2 на = СЧЁТЕСЛИ ($ C $ 2: $ C $ 8, $ B2) = 0 в Новое правило форматирования Диалог.
док сравнить столбцы 1.1 1

Затем выберите другой цвет для форматирования значений.
док сравнить столбцы 1.1 1

замечание

Здесь условное форматирование сравнивает два столбца без учета регистра.

2.3 Сравните и выберите или выделите повторяющиеся или уникальные данные (с помощью удобного инструмента)


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

После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:

1. Нажмите Кутулс > Выберите > Выберите одинаковые и разные ячейки.
док сравнить столбцы 1.1 1

2. Затем в Выберите одинаковые и разные ячейки диалоговое окно, выполните следующие действия:

1). Найдите значения в и Согласно информации разделы, выберите два столбца, с которыми хотите сравнить;

2) Выберите Каждый ряд вариант;

3) Выберите Те же значения or Разные ценности как вам нужно;

4) Если вы хотите выделить значения, выберите нужный вам цвет.
док сравнить столбцы 1.1 1

3. Нажмите Ok, появится диалоговое окно с напоминанием о количестве найденных значений, щелкните OK чтобы закрыть диалог. При этом значения были выбраны, теперь вы можете удалять или копировать или выполнять другие операции.
док сравнить столбцы 1.1 1

Если вы установите флажок Заполните цвет фона и Цвет заливки шрифта чекбоксы, результат будет следующим:
док сравнить столбцы 1.1 1

замечание

Если вы хотите сравнить с чувствительностью к регистру, отметьте Деликатный случай опцию.

Этот инструмент поддерживает сравнение двух столбцов на разных листах.

2.4 Сравните два столбца и укажите точные дубликаты в другом столбце (используя код VBA)


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

1. Включите лист, на котором вы хотите сравнить два столбца, затем нажмите Alt + F11 клавиши для отображения Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модули в Microsoft Visual Basic для приложений окно.
док сравнить столбцы 1.1 1

3. Затем скопируйте и вставьте приведенный ниже код в новый пустой скрипт модуля.

VBA: список дубликатов в соседнем столбце после сравнения двух столбцов

Sub ExtendOffice_FindMatches()
'UpdatebyKutools20201019
Dim xRg, xRgC1, xRgC2, xRgF1, xRgF2 As Range

Dim xIntSR, xIntER, xIntSC, xIntEC As Integer

On Error Resume Next

SRg:

Set xRgC1 = Application.InputBox("Select first column:", "Kutools for Excel", , , , , , 8)

If xRgC1 Is Nothing Then Exit Sub

If xRgC1.Columns.Count <> 1 Then

    MsgBox "Please select single column"

    GoTo SRg

End If

SsRg:

Set xRgC2 = Application.InputBox("Select the second column:", "Kutools for Excel", , , , , , 8)

If xRgC2 Is Nothing Then Exit Sub

If xRgC2.Columns.Count <> 1 Then

    MsgBox "Please select single column"

    GoTo SsRg

End If

Set xWs = xRg.Worksheet

 

For Each xRgF1 In xRgC1

    For Each xRgF2 In xRgC2

        If xRgF1.Value = xRgF2.Value Then xRgF2.Offset(0, 1) = xRgF1.Value

    Next xRgF2

Next xRgF1

End Sub

док сравнить столбцы 1.1 1

4. Нажмите F5 Чтобы запустить код, поочередно появляются два диалоговых окна, в которых вы можете выбрать два столбца отдельно.

Внимание: Сначала выберите левый столбец, затем выберите правый столбец во втором диалоговом окне, иначе дубликаты заменят исходные данные во втором столбце.
док сравнить столбцы 1.1 1док сравнить столбцы 1.1 1

5. Нажмите OK > OK, то совпадения будут автоматически перечислены в правом столбце двух столбцов.
док сравнить столбцы 1.1 1

замечание

Код VBA сравнивает два столбца с учетом регистра.

2.5 Сравните два столбца и выделите дубликаты (используя код VBA)


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

1. Включите лист, на котором вы хотите сравнить два столбца, затем нажмите Alt + F11 клавиши для отображения Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модули в Microsoft Visual Basic для приложений окно.
док сравнить столбцы 1.1 1

3. Скопируйте приведенный ниже код макроса и вставьте его в новый бланк. Модули скрипты.

VBA: сравнить два столбца и выделить дубликаты

Sub ExtendOffice_CompareTwoRanges()
'UpdatebyKutools20201019

Dim xRg, xRgC1, xRgC2, xRgF1, xRgF2 As Range

SRg:

Set xRgC1 = Application.InputBox("Select the column you want compare according to", "Kutools for Excel", , , , , , 8)

If xRgC1 Is Nothing Then Exit Sub

If xRgC1.Columns.Count <> 1 Then

    MsgBox "Please select a single column"

    GoTo SRg

End If

SsRg:

Set xRgC2 = Application.InputBox("Select the column you want to highlight duplicates in:", "Kutools for Excel", , , , , , 8)

If xRgC2 Is Nothing Then Exit Sub

If xRgC2.Columns.Count <> 1 Then

    MsgBox "Please select a single column"

    GoTo SsRg

End If

 

    For Each xRgF1 In xRgC1

        For Each xRgF2 In xRgC2

            If xRgF1.Value = xRgF2.Value Then

               xRgF2.Interior.ColorIndex = 38 '(you can change the color index as you need)

            End If

        Next

    Next

End Sub

док сравнить столбцы 1.1 1

4. Нажмите F5 ключ для запуска кода. В первом появившемся диалоговом окне выберите столбец, по которому вы хотите сравнить повторяющиеся значения.
док сравнить столбцы 1.1 1

5. Нажмите OK. Во втором диалоговом окне выберите столбец, в котором вы хотите выделить повторяющиеся значения.
док сравнить столбцы 1.1 1

6. Нажмите OK. Теперь дубликаты во втором столбце были выделены цветом фона после сравнения с первым столбцом.
док сравнить столбцы 1.1 1

замечание

1. Код сравнивает столбцы с учетом регистра.

2. Вы можете изменить цвет выделения по своему усмотрению, изменив индекс цвета в коде, справочник по индексу цвета:
док сравнить столбцы 1.1 1


3. Сравнить несколько столбцов в одной строке

Иногда вам может потребоваться сравнить более двух столбцов в одной строке, например набор данных, как показано ниже. В этом разделе перечислены различные методы сравнения нескольких столбцов.
док сравнить столбцы 1.1 1

образец документаНажмите, чтобы загрузить образец файла

3.1. Найдите полные совпадения во всех ячейках одной строки (используя формулу ЕСЛИ)


Чтобы найти полные совпадения по столбцам в одной строке, вам может помочь приведенная ниже формула ЕСЛИ.

=IF(AND(B2=C2, B2=D2), «Full match», «Not»)

 док сравнить столбцы 1.1 1

Если ячейки в одной строке совпадают, отображается «Полное совпадение» или «Нет».

Нажмите Enter , чтобы получить первый результат сравнения, затем перетащите дескриптор автозаполнения в ячейку E7.
док сравнить столбцы 1.1 1

замечание

1. Формула сравнивает столбцы без учета регистра.

2. Если вам нужно сравнить более трех столбцов или их количество, вы можете использовать следующую формулу:

=IF(COUNTIF($B2:$D2, $B2)=3, «Full match», «Not»)

 док сравнить столбцы 1.1 1

В формуле 3 — это количество столбцов, вы можете изменить его по своему усмотрению.

3.2 Найдите совпадения в любых двух ячейках в одной строке (используя формулу ЕСЛИ)


Иногда вы хотите узнать, совпадают ли какие-либо два столбца в одной строке, вы можете использовать приведенную ниже формулу IF.

=IF(OR(B2=C2, C2=D2, B2=D2), «Match», «Not»)

 док сравнить столбцы 1.1 1

В этой формуле вам нужно сравнить любую пару ячеек в одной строке. «Совпадение» означает, что совпадают любые две ячейки, если совпадений нет, в формуле отображается «Нет», вы можете изменить текст по своему усмотрению.

Нажмите Enter и перетащите маркер заполнения в ячейку E7.
док сравнить столбцы 1.1 1

замечание

1. Эта формула не поддерживает регистр без учета.

2. Если необходимо сравнить много столбцов, сравнение любой пары ячеек в формуле может оказаться слишком длинным. В этом случае вы можете использовать приведенную ниже формулу, которая объединяет функции ЕСЛИ и СЧЁТЕСЛИ.

=IF(COUNTIF(C11:E11,B11)+COUNTIF(D11:E11,C11)+(D11=E11)=0,»Not»,»Match»)

 док сравнить столбцы 1.1 1

3.3 Найдите полные совпадения во всех ячейках одной строки и выделите их (используя условное форматирование)


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

1. Выберите диапазон, который вы используете, затем щелкните Главная > Условное форматирование > Новое правило.
док сравнить столбцы 1.1 1

2. в Новое правило форматирования диалога, выберите Используйте формулу, чтобы определить, какие ячейки следует форматировать. из Выберите тип правила раздел, то вы можете использовать одну из формул ниже в Формат значений, где эта формула истинна текстовое окно.

=AND($B2=$C2, $B2=$D2)

Or

=COUNTIF($B2:$D2, $B2)=3

 док сравнить столбцы 1.1 1

Внимание: Если количество столбцов больше трех, предположим, 5, формулы следует изменить на:

=AND($B2=$C2, $B2=$D2, $B2=$E2, $B2=$F2)

Or

=COUNTIF($B2:$F2, $B2)=5

3. Нажмите Формат Нажмите кнопку, чтобы перейти к диалоговому окну «Формат ячеек», затем выберите один цвет заливки или другое форматирование ячейки, чтобы выделить строки.
док сравнить столбцы 1.1 1

4. Нажмите OK > OK, теперь будут выделены только строки, в которых совпадают все ячейки.
док сравнить столбцы 1.1 1

замечание

Приведенные выше формулы не поддерживают регистр.

3.4. Сравните несколько столбцов и выделите различия строк


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

1. Выберите диапазон, в котором нужно выделить различия строк, и нажмите Главная > Найти и выбрать > Перейти к специальному.
док сравнить столбцы 1.1 1

2. Во всплывающем Перейти к специальному диалог, проверьте Различия в строках опцию.
док сравнить столбцы 1.1 1

3. Нажмите OK. Теперь различия строк выделены.
док сравнить столбцы 1.1 1

4. Теперь, не снимая выделения с ячеек, щелкните Главная > Цвет заливки чтобы выбрать один цвет из раскрывающегося меню.
док сравнить столбцы 1.1 1

замечание

Этот метод сравнивает ячейки без учета регистра.


4. Сравните два столбца и найдите недостающие точки данных.

Предположим, что есть два столбца, столбец B длиннее, а столбец C короче, как показано ниже. По сравнению со столбцом B, как найти недостающие данные в столбце C?
док сравнить столбцы 1.1 1

образец документаНажмите, чтобы загрузить образец файла

4.1 Сравните и найдите недостающие точки данных (с помощью формулы ВПР или ПОИСКПОЗ)


Если вы хотите только определить, какие данные отсутствуют после сравнения двух столбцов, вы можете использовать одну из следующих формул:

=ISERROR(VLOOKUP(B2,$C$2:$C$10,1,0))

Or

=NOT(ISNUMBER(MATCH(B2,$C$2:$C$10,0)))

 док сравнить столбцы 1.1 1

Нажмите Enter , затем перетащите маркер автозаполнения на ячейку D10. Теперь, если данные находятся как в столбце B, так и в столбце C, формула возвращает FALSE, если данные находятся только в столбце B, но отсутствуют в столбце C, формула возвращает TRUE.
док сравнить столбцы 1.1 1

замечание

Приведенные выше две формулы сравнивают данные без учета регистра.

4.2 Сравните два столбца и перечислите недостающие данные ниже (используя формулу ИНДЕКС)


Если вы хотите перечислить недостающие данные под более коротким столбцом после сравнения двух столбцов, вам может помочь формула массива INDEX.

В ячейке ниже более короткого столбца, предположим ячейку C7, введите следующую формулу:

=INDEX($B$2:$B$10,MATCH(TRUE,ISNA(MATCH($B$2:$B$10,$C$2:C6,0)),0))

 док сравнить столбцы 1.1 1

Нажмите Shift + Ctrl + Enter чтобы получить первые отсутствующие данные, затем перетащите дескриптор автозаполнения вниз, пока он не вернет значение ошибки # Н / Д.
док сравнить столбцы 1.1 1

Затем вы можете удалить значение ошибки, и все недостающие данные будут перечислены под более коротким столбцом.

замечание

Эта формула сравнивает ячейки без учета регистра.

4.3 Сравните и найдите недостающие точки данных и перечислите их в другом столбце (используя удобный инструмент)


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

1. Нажмите Кутулс > Выберите > Выберите одинаковые и разные ячейки.
док сравнить столбцы 1.1 1

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

1) В Найдите значения в раздел, выберите более длинный столбец, содержащий полный список.
In Согласно информации раздел, выберите более короткий столбец, в котором отсутствуют некоторые данные.

2) Выберите Каждый ряд опцию.

3) Выберите Разные ценности опцию.
док сравнить столбцы 1.1 1

3. Нажмите Ok, появится диалоговое окно с напоминанием о количестве недостающих данных, нажмите OK чтобы закрыть это. Затем были выбраны недостающие данные.
док сравнить столбцы 1.1 1

Теперь вы можете нажать Ctrl + C клавиши, чтобы скопировать выбранные недостающие данные, и вставьте их, нажав Ctrl + V клавиши под более коротким столбцом или другой новый столбец по мере необходимости.
док сравнить столбцы 1.1 1док сравнить столбцы 1.1 1

замечание

Отметив Без учета регистра опция в диалоговом окне «Выбрать одинаковые и разные ячейки» сравнивает два столбца с учетом регистра.

4.4 Сравните два столбца и перечислите недостающие данные ниже (используя VBA)


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

1. Откройте лист, который вы используете, нажмите Alt + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. Нажмите Вставить > Модули чтобы создать новый модуль для размещения под кодом VBA.
док сравнить столбцы 1.1 1

VBA: сравнить два столбца и заполнить недостающие данные

Sub ExtendOffice_PullUniques()
'UpdatebyKutools20201021

Dim xRg, xRgC1, xRgC2, xFRg1, xFRg2 As Range

Dim xIntR, xIntSR, xIntER, xIntSC, xIntEC As Integer

Dim xWs As Worksheet

On Error Resume Next

SRg:

Set xRg = Application.InputBox("Select two columns:", "Kutools for Excel", , , , , , 8)

If xRg Is Nothing Then Exit Sub

If xRg.Columns.Count <> 2 Then

    MsgBox "Please select two columns as a range"

    GoTo SRg

End If

Set xWs = xRg.Worksheet

 

xIntSC = xRg.Column

xIntEC = xRg.Columns.Count + xIntSC - 1

xIntSR = xRg.Row

xIntER = xRg.Rows.Count + xIntSR - 1

 

Set xRg = xRg.Columns

Set xRgC1 = xWs.Range(xWs.Cells(xIntSR, xIntSC), xWs.Cells(xIntER, xIntSC))

Set xRgC2 = xWs.Range(xWs.Cells(xIntSR, xIntEC), xWs.Cells(xIntER, xIntEC))

xIntR = 1

For Each xFRg In xRgC1

    If WorksheetFunction.CountIf(xRgC2, xFRg.Value) = 0 Then

        xWs.Cells(xIntER, xIntEC).Offset(xIntR) = xFRg

        xIntR = xIntR + 1

    End If

Next

xIntR = 1

For Each xFRg In xRgC2

    If WorksheetFunction.CountIf(xRgC1, xFRg) = 0 Then

        xWs.Cells(xIntER, xIntSC).Offset(xIntR) = xFRg

        xIntR = xIntR + 1

    End If

Next

End Sub

док сравнить столбцы 1.1 1

3. Затем нажмите F5 нажмите клавишу для запуска кода, появится диалоговое окно для выбора двух сравниваемых столбцов.
док сравнить столбцы 1.1 1

4. Нажмите OK. Теперь недостающие данные перечислены под двумя столбцами.
док сравнить столбцы 1.1 1

замечание

Код сравнивает ячейки без учета регистра.


5. Сравните два столбца (даты), если больше или меньше

Если есть два столбца дат, как показано на скриншоте ниже, вы можете сравнить, какая дата находится позже в той же строке.
док сравнить столбцы 1.1 1

образец документаНажмите, чтобы загрузить образец файла

5.1 Сравните два столбца, если они больше или меньше (по формуле)


Вы можете использовать простую формулу, чтобы быстро определить, является ли дата 1 более поздней, чем дата 2 в каждой строке.

=IF(B2>C2,»Yes»,»No»)

 док сравнить столбцы 1.1 1

Нажмите Enter чтобы получить первый сравниваемый результат, затем перетащите дескриптор автозаполнения в ячейку C6, чтобы получить все результаты.
док сравнить столбцы 1.1 1

замечание

1. В Excel даты хранятся в виде числовых рядов, по сути, это числа. Таким образом, вы применяете формулу для прямого сравнения дат.

2. Если вы хотите сравнить, если дата 1 раньше даты 2 в каждой строке, измените символ. > в < в формуле.

5.2 Сравните два столбца, если они больше или меньше, чем формат (с использованием условного форматирования)


Если вы хотите выделить ячейки в столбце Дата 1, если они больше, чем Дата 2, вы можете использовать Условное форматирование функция в Excel.

1. Выберите даты в столбце B (Date1), затем щелкните Главная > Условное форматирование > Новое правило.
док сравнить столбцы 1.1 1

2. в Новое правило форматирования диалоговое окно, выберите Используйте формулу, чтобы определить, какие ячейки следует форматировать. в Выберите тип правила раздел, затем введите формулу = $ B2> $ C2 в текстовое поле Формат значений, где эта формула истинна.
док сравнить столбцы 1.1 1

Если вы хотите выделить ячейки в столбце B, размер которых меньше, чем в столбце C, используйте формулу = $ B2 <$ C2.

3. Нажмите Формат , чтобы открыть Формат ячеек диалоговое окно, затем выберите нужный тип формата.
док сравнить столбцы 1.1 1

4. Нажмите OK > OK. Затем были выделены ячейки в столбце Date1, которые больше, чем в столбце Date2.
док сравнить столбцы 1.1 1


6. Сравните два столбца и верните значение в другом столбце

Например, есть две таблицы, теперь вы хотите сравнить столбец B и столбец E, затем найти относительные цены из столбца C и вернуть их в столбец F.
док сравнить столбцы 1.1 1

образец документаНажмите, чтобы загрузить образец файла

6.1 Получите точные совпадающие данные (используя формулу или удобный инструмент)


Здесь представлены некоторые полезные формулы и инструмент для решения этой задачи.

Формульный метод

В ячейке F2 (ячейка, в которую вы хотите поместить возвращаемое значение) используйте одну из следующих формул:

=VLOOKUP(E2,$B$2:$C$8,2,0)

Or

=INDEX($B$2:$C$8,MATCH(E2,$B$2:$B$8,0),2)

 док сравнить столбцы 1.1 1

Нажмите Enter ключ, и первое значение было найдено. Затем перетащите дескриптор автозаполнения в ячейку F6, все значения были извлечены.
док сравнить столбцы 1.1 1

замечание

1. Формулы не поддерживают регистр.

2. Число 2 в формуле означает, что вы нашли совпадающие значения во втором столбце массива таблицы.

3. Если формулы не могут найти относительное значение, возвращается значение ошибки # N / A.
док сравнить столбцы 1.1 1

Удобный инструментальный метод

Если вы запутались с формулами, вы можете попробовать удобный инструмент — Формула Помощник of Kutools for Excel, который содержит несколько формул для решения большинства задач в Excel. С его помощью вам нужно только выбрать диапазон, но не нужно помнить, как используются формулы.

После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:

1. Выберите ячейку F2 (ячейку, в которую нужно поместить возвращаемое значение) и щелкните Кутулс > Формула Помощник > Поиск и справка > Найдите значение в списке.
док сравнить столбцы 1.1 1

2. в Помощник по формулам диалог, справа Ввод аргументов выберите диапазон массива таблицы, значение поиска и укажите, в каком столбце вы хотите искать возвращаемое значение.

Функции: Не забудьте изменить абсолютную ссылку в Искомое_значение поле к относительному, или вы можете найти только первое значение.
док сравнить столбцы 1.1 1

3. Нажмите Ok, первое значение было найдено, затем перетащите дескриптор автозаполнения в ячейку F6.
док сравнить столбцы 1.1 1

6.2 Получение данных частичного совпадения (используя формулу)


Если есть небольшая разница между двумя сравниваемыми столбцами, как показано на скриншоте ниже, вышеуказанные методы не могут работать.
док сравнить столбцы 1.1 1

Для решения этой задачи выберите одну из формул ниже:

=VLOOKUP(«*»&E2&»*»,$B$2:$C$8,2,0)

Or

=INDEX($B$2:$C$8,MATCH(«*»&E2&»*»,$B$2:$B$8,0),2)

 док сравнить столбцы 1.1 1

Нажмите Enter нажмите клавишу, затем перетащите дескриптор автозаполнения в ячейку F5, все значения найдены.
док сравнить столбцы 1.1 1

замечание

1. Формулы не поддерживают регистр.

2. Число 2 в формуле означает, что вы найдете возвращаемые значения во втором столбце массива таблицы.

3. Если формулы не могут найти относительное значение, возвращается значение ошибки # N / A.

4. * в формуле — это подстановочный знак, который используется для обозначения любого символа или строки.


7. Сравните два столбца и подсчитайте совпадения или различия

Ниже приведен набор данных для сравнения и подсчета совпадений или различий.
док сравнить столбцы 1.1 1

образец документаНажмите, чтобы загрузить образец файла

7.1 Сравните два столбца и подсчитайте совпадения (используя формулу СУММПРОИЗВ)


Формула СУММПРОИЗВ может быстро подсчитать совпадения в двух столбцах.

=SUMPRODUCT(—(ISNUMBER(MATCH(B2:B8,C2:C8,0))))

 док сравнить столбцы 1.1 1

Нажмите Enter ключ для получения результата.
док сравнить столбцы 1.1 1

замечание

Формула подсчитывает ячейки без учета регистра.

7.2 Сравните два столбца и подсчитайте совпадения или различия (с помощью удобного инструмента)


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

После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:

1. Нажмите Кутулс > Выберите > Выберите одинаковые и разные ячейки.
док сравнить столбцы 1.1 1

2. в Выберите одинаковые и разностные ячейки диалоговом окне выберите два диапазона столбцов в Найдите значения в и Согласно информации разделов отдельно, затем выберите Каждый ряд, и выберите Те же значения or Разные ценности вариант как вам нужно.
док сравнить столбцы 1.1 1

3. Нажмите Ok. Появится диалоговое окно, в котором указано, сколько совпадающих или разных ячеек выбрано.

Соответствующие ячейки
док сравнить столбцы 1.1 1

Разные клетки
док сравнить столбцы 1.1 1


8. Сравните два столбца с подстановочным знаком

Предположим, что это список данных в столбце B, и вы хотите подсчитать ячейки, содержащие «Apple» или «Candy» в столбце D, как показано ниже:
док сравнить столбцы 1.1 1

образец документаНажмите, чтобы загрузить образец файла

Чтобы подсчитать, содержит ли ячейка одно или несколько значений, вы можете использовать формулу с подстановочными знаками для решения этой проблемы.

=SUM(COUNTIF(B2,»*» & $D$2:$D$3 & «*»))

 док сравнить столбцы 1.1 1

Нажмите Shift + Ctrl + Enter , чтобы получить первую проверку, затем перетащите дескриптор автозаполнения в ячейку F8.
док сравнить столбцы 1.1 1

Теперь, если связанная ячейка содержит одно или несколько значений в столбце D, результат отображает число больше 0, если оно не содержит никакого значения в столбце D, возвращается 0.

Если вы хотите подсчитать общее количество ячеек, содержащих значения в столбце D, используйте формулу в ячейке F8 ниже:
док сравнить столбцы 1.1 1

замечание

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

=SUMPRODUCT(COUNTIF(B2,»*» &$D$2:$D$3& «*»))

Эту формулу нужно только нажать Enter и перетащите маркер автозаполнения.

2. В формулах * — это подстановочный знак, обозначающий любой символ или строку.


9. Удалите различия или совпадения.

Если вы хотите удалить различия или совпадения после сравнения двух столбцов, как показано на скриншоте ниже:
док сравнить столбцы 1.1 1

образец документаНажмите, чтобы загрузить образец файла

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

=IF(ISERROR(MATCH(B2,$D$2:$D$8,0)),»Difference»,»Match»)

док сравнить столбцы 1.1 1

Нажмите Enter и перетащите дескриптор автозаполнения в ячейку D8.
док сравнить столбцы 1.1 1

Затем примените Фильтр функцию в Excel чтобы отфильтровать различия или совпадения по значению.

Выберите столбец формулы, затем щелкните Данные > Фильтр.
док сравнить столбцы 1.1 1

Затем в столбце C появится кнопка фильтра, нажмите кнопку фильтра, чтобы развернуть раскрывающееся меню, выберите разница or Совпадение как вам нужно. Затем нажмите OK в конце.
док сравнить столбцы 1.1 1

Теперь отфильтрованы только различия или совпадения. Вы можете выбрать их и нажать Удалить ключ, чтобы удалить их.
док сравнить столбцы 1.1 1док сравнить столбцы 1.1 1

Теперь нажмите Данные > Фильтр еще раз, чтобы очистить фильтр.
док сравнить столбцы 1.1 1

Удалите столбец формулы, если он вам больше не нужен.
док сравнить столбцы 1.1 1


10. Сравните два столбца и рассчитайте процентное изменение между

Есть два столбца: один содержит исходные цены, а другой — цены продажи. Теперь в этой части вводится формула для сравнения этих двух столбцов, а затем вычисляется процентное изменение между двумя столбцами.
док сравнить столбцы 1.1 1

образец документаНажмите, чтобы загрузить образец файла

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

=(C2-B2)/B2

 док сравнить столбцы 1.1 1

Нажмите Enter , чтобы получить число, затем перетащите дескриптор автозаполнения в ячейку D7.
док сравнить столбцы 1.1 1

Затем отформатируйте результат формулы в процентах. Выберите результаты, нажмите Главная вкладка и перейдите к Число группа для нажатия Процентный стиль.
док сравнить столбцы 1.1 1

Результаты формулы были отформатированы в процентах.
док сравнить столбцы 1.1 1


11. Сравните два диапазона

Теперь вы знаете, как сравнить два столбца после прочтения вышеуказанных методов. Однако в некоторых случаях вам может потребоваться сравнить два диапазона (две серии с несколькими столбцами). Вы можете использовать вышеуказанные методы (формулы или условное форматирование), чтобы сравнить их столбец за столбцом, но здесь представлен удобный инструмент — Kutools for Excel может быстро решить эту задачу в разных случаях без формулы.

образец документаНажмите, чтобы загрузить образец файла

11.1 Сравнить два диапазона по ячейке


Вот два диапазона, которые необходимо сравнить по ячейкам, вы можете использовать Выберите одинаковые и разные ячейки полезности Kutools for Excel справиться с этим.
док сравнить столбцы 1.1 1

После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:

1. Нажмите Кутулс > Выберите > Выберите одинаковые и разные ячейки.
док сравнить столбцы 1.1 1

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

1). Найдите значения в В разделе выберите диапазон, в котором вы хотите найти совпадения или различия после сравнения двух диапазонов.

2). Согласно информации раздел, выберите другой диапазон, используемый для сравнения диапазона.

3) В на основании раздел, выбрать Однокамерная.

4) Затем в Найти раздел, выберите тип ячеек, которые вы хотите выделить или выделить.

5). Обработка результатов Вы можете выделить ячейки цветом фона заливки или цветом шрифта, если выделять не нужно, не ставьте галочки.
док сравнить столбцы 1.1 1

3. Нажмите Ok. Появится диалоговое окно с напоминанием о том, сколько ячеек / строк было выбрано, щелкните OK чтобы закрыть это. Теперь ячейки, которые отличаются от ячеек из другого диапазона, выделены и выделены.
док сравнить столбцы 1.1 1

Выделение одинаковых значений
док сравнить столбцы 1.1 1

замечание

Если вы хотите сравнить два диапазона по строкам, вы также можете применить Выберите одинаковые и разные ячейки функцию, но в этом случае выберите Каждый ряд опцию.
док сравнить столбцы 1.1 1док сравнить столбцы 1.1 1

11.2 Сравните два диапазона, если данные в одном порядке


Если вы хотите сравнить два диапазона по строкам, Функция сравнения ячеек of Kutools for Excel могу помочь тебе.

После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:

Предположим, диапазон F2: H7 является моделью, теперь вы хотите определить, находятся ли данные в диапазоне B2: D7 в правильном порядке в соответствии с диапазоном F2: H7.
док сравнить столбцы 1.1 1

1. Нажмите Кутулс > Сравнить ячейки.
док сравнить столбцы 1.1 1

2. в Сравнить ячейки диалог, установите как показано ниже:

1) Выберите два диапазона в Найдите значения в и Согласно информации коробки отдельно.

2) Выберите тип ячейки, которую хотите выделить в Найти .

3) Выберите тип выделения в Обработка результатов .
док сравнить столбцы 1.1 1

3. Нажмите Ok. Появится диалоговое окно с напоминанием о том, сколько ячеек было выбрано, щелкните OK чтобы закрыть это. Теперь ячейки, которые отличаются от ячеек из другого диапазона, выделены и выделены.
док сравнить столбцы 1.1 1


Вы также можете быть заинтересованы в

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


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

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

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

вкладка kte 201905


Вкладка Office — предоставляет интерфейс с вкладками в Office и значительно упрощает вашу работу

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Введение в задачу

При работе в Excel у некоторых категорий граждан исключительно часто возникает задача сравнить 2 столбца в разных таблицах и понять, в чём они совпадают, а в чём разнятся. При помощи формул рабочего листа эта задача обычно решается либо при помощи ВПР, либо при помощи СЧЁТЕСЛИ. Однако, дело это очень муторное, требует внимательности, усидчивости, а, если таких таблиц много, то вы весьма быстро запутаетесь и устанете.

Лично я имел счастье сталкивался с этим при сведении инвентаризации основных средств, когда у вас есть результаты подсчёта и данные из учётной системы. Надо быстро найти чего не хватает, что лишнее, какие аномалии наличествуют.

Вот перед вами упрощённый учебный пример такой задачи.

Путём нехитрых развлечений с функцией ВПР, вы можете получить такой результат:

То есть мы нашли пересечение наших двух диапазонов там, где ВПР вернул значение. Отфильтровав по #Н/Д в каждой таблице, мы получаем список значений того, что есть слева, но отсутствует справа, и того, что есть справа, но отсутствует слева. Это максимум того, что можно выжать из стандартного подхода с ВПР.

Недостатки стандартного подхода:

  • Мы потратили много сил. Если таких таблиц у нас много, то такой метод не годится. Это и трудоёмко и слишком легко запутаться.
  • Как мы знаем, ВПР ищет первое совпадение и значит о том, что, например, в левой таблице два значения 040310475653, а в правой только одно, мы можем и не узнать, особенно, если таблицы большие.
  • В случае с #Н/Д мы также не будем понимать структуру аномалий наших данных. Например, то, что значение 40310307297 справа встречается дважды.
  • У нас не будет информации, сколько вообще уникальных значений встречается в каждой таблице.

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

Основные возможности предлагаемого инструмента:

  • Исчерпывающее сравнение двух списков с выявлением всех возможных аномалий в данных
  • Сравнение осуществляется как на месте, где расположены указанные пользователем диапазоны (вставляется колонка справа), так и на отдельном новом листе рабочей книги
  • Цветовое акцентирование результатов сравнения
  • Предоставление детальной статистики по результатам сравнения (вставляется в комментарий к ячейке заголовка столбца, где происходит сравнение)
  • Автоопределение столбца с данными при указании диапазонов (достаточно указать одну ячейку)
  • Две модели сравнения: простая и обычная.
  • Учёт регистра текста, если в этом есть необходимость
  • Учёт наличия / отсутствия заголовка у диапазонов
  • 2 типа сортировки
  • Возможность заменить стандартные статусы сравнения на пользовательские

Используемая концепция сравнения списков

Концепция очень проста и легка для понимания при минимуме усилий.

  1. 2 сравниваемых диапазона будем называть ЛЕВЫЙ и ПРАВЫЙ. Это очевидно и естественно, если таблицы располагаются на одном листе. В случае разных листов, левым диапазоном можно называть ту таблицу, чей рабочий лист располагается левее листа второй таблицы.
  2. Каждое значение в сравниваемых списках получит СТАТУС, означающий то, как данное значение соотносится с аналогичным значением во второй таблице и (!) с такими же значениями в своей таблице, если данное значение повторяется.
  3. Есть 2 набора статусов: упрощённый и обычный.
  4. Упрощенные статусы: BOTH, LEFT, RIGHT.
    • BOTH — значение есть в обоих столбцах. Например, если значение «5» встречается в левой таблице 2 раза, а в правой 3 раза, то все эти строки получат статус BOTH
    • LEFT — значение встречается только в левой таблице
    • RIGHT — значение встречается только в правой таблице
  5. Обычные статусы (вы можете выбрать, какой набор статусов будете использовать в форме управления данным инструментом):
    • Группа BOTH:
      • L1R1 — в левои и правом диапазонах есть по одному значению
      • LnRn — в левои и правом диапазонах есть по нескольку (более 1) значений с каждой стороны.
      • L1Rn — слева — одно значение, справа — несколько
      • LnR1 — слева — несколько значений, справа — одно
    • Группа LEFT:
      • L1R0 — в левом диапазоне одно значение, в правом такого нет
      • LnR0 — в левом диапазоне несколько одинаковых значений, в правом таких нет
    • Группа RIGHT:
      • L0R1 — в левом диапазоне нет таких значений, в правом — одно
      • L0Rn — в левом диапазоне нет таких значений, в правом — несколько (более одного)

Результаты работы инструмента

Вот как выглядят результаты сравнения примера из начала статьи

Мы видим, что получается следующая картина:

  1. В левом списке есть 12 значений, которые отсутствуют в правом (статус L1R0)
  2. В левом списке задвоено значение 040310475653 (статус LnR1)
  3. Только 3 значения совпали в списках по принципу «один к одному» (статус L1R1)
  4. В правом списке есть 7 значений, которые отсутствуют в левом списке (статус L0R1)
  5. В правом списке есть 4 строки (две по 2 значения), которых нет слева и которые задвоены справа (статус L0Rn)
  6. И слева, и справа есть 2 значения, которые встречаются единожды слева, но которые задвоены справа (статус L1Rn)

и режим объединенных списков:

Как видите, моя утилита всё разложила по полочкам!

Пользовательский интерфейс

Описание элементов управления:

  1. Списки для сравнения — Левый список и Правый список
    • Сравниваемые списки должны быть в составе одной книги Excel
    • Списки могут располагаться на разных листах книги
    • Если они располагаются на одном листе, то колонка левого списка должен быть действительно левее правой колонки
    • Рекомендуется заполнять данные поля ввода при помощи кнопок Выбор
    • Через кнопку Выбор достаточно указать одну ячейку нужной колонки, программа автоматически расширит ваш выбор на всю область в составе этого столбца, к которой относится указанная ячейка. В этой связи пустые ячейки в сравниваемых колонках рекомендуется заменять на какие-то текстовые константы, типа «Пусто».
  2. Разное — Выделить цветом
  3. Разное — Объединить списки
    • По умолчанию эта опция не выбрана и списки сравниваются в том месте, где они расположены. Справа от колонки с данными вставляется столбец со статусами сравнения.
    • Если эта опция выбрана, то создаётся новый лист, куда помещается таблица с объединенными уникальными значениями из сравниваемых списков. Данная таблица имеет 4 столбца: Значения, Кол-во слева, Кол-во справа, Статус.
    • Данный режим удобен для детального анализа всех аномалий в данных. В частности только так видны конкретные количества строк у статусов с буквой «n». Например, LnRn или L0Rn.
    • Только в режиме объединения списка таблица может сортироваться, так как в проивном случае это могло бы повредить ваши данные — ведь указанный столбец может быть в составе большой таблицы, но определение координат этой таблицы (для сортировки) уже слишком выходит за рамки данного инструмента.
  4. Разное — Учёт регистра
    • Полезно при анализе текстовых списков, где может быть важен регистр текстовых значений.
  5. Разное — Статистика в комм.
    • При этом создаётся комментарий к ячейке, содержащей заголовок столбца со статусом сравнения данных.
    • Таких комментариев 2, если списки сравниваются на своих оригинальных местах, и один, если они объединены.
    • Комментарий выглядит примерно так
  6. Разное — Простые статусы
    • Осуществляется выбор между простыми и обычными статусами. Данные статусы были описаны выше.
  7. Разное — Есть заголовки
    • Указываем имеют ли ваши списки заголовки столбцов. По умолчания включено.
  8. Где сравниваем? — Оригинальное место или Отдельный лист
    • Настройка блокируется, если выбрана опция Объединить списки.
    • В противном случае вы в праве выбрать место самостоятельно.
  9. Сортировка — По значению или По статусу
    • Настройка блокируется (по умолчанию), если не выбрана опция Объединить списки, так как сотрировка осуществляется только на отдельном листе.
  10. Дополнительно — Альтернативные статусы
    • По умолчанию отключено. Включаем, если вы хотите по каким-то своим причинам использовать свои статусы.
  11. Дополнительно — Обычные статусы или Упрощённые статусы
    • Статусы сохраняются на скрытом листе той книги, где вы воспользовались этим инструментом, и в следующий раз подгружаются оттуда на форму. То есть вам не придётся их вводить постоянно.
  12. Сравнить списки
    • Кнопка, которую необходимо нажать для запуска процедуры сравнения после того, как вы выбрали все необходимые вам опции.

Скачать утилиту

Можно здесь. Текущая версия 0.05 от 09.12.2014.

Как установить данную надстройку

Инструкция для MS Excel 2013 (или 2010)

Инструкция для MS Excel 2007

Читайте также:

  • Извлекаем список уникальных значений из необработанных данных

  • Нечёткий поиск

  • Формирование случайных списков на основе справочника

Понравилась статья? Поделить с друзьями:
  • Макрос для списка на листе excel
  • Макрос для сохранения файла excel в папку
  • Макрос для сохранения файла excel в pdf
  • Макрос для сохранения одного листа excel
  • Макрос для сохранения листа excel в отдельный файл