Vba excel сравнение столбцов
Добрый день!
Очень прошу помощи в доработке макроса.
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 |
Или как грамотнее решить такую задачу. Заранее спасибо за любую помощь!
Sub s_Test()
Dim v_Sh As Worksheet
Dim v_Rng As Range, v_Cell As Range
Dim v_Var As Double
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
Добрый день!
Очень прошу помощи в доработке макроса.
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 |
Или как грамотнее решить такую задачу. Заранее спасибо за любую помощь!
Sub s_Test()
Dim v_Sh As Worksheet
Dim v_Rng As Range, v_Cell As Range
Dim v_Var As Double
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
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 |
Или как грамотнее решить такую задачу. Заранее спасибо за любую помощь!
Sub s_Test()
Dim v_Sh As Worksheet
Dim v_Rng As Range, v_Cell As Range
Dim v_Var As Double
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
не понятно, что вы хотите.
P.S. Прочитайте правила!
не понятно, что вы хотите.
P.S. Прочитайте правила! Jhonson
"Ничто не приносит людям столько неприятностей, как разум."
не понятно, что вы хотите.
P.S. Прочитайте правила! Автор - Jhonson
Дата добавления - 22.03.2013 в 16:11
Большое спасибо за ответ. Правила прочитал.
Столбец А - адреса1
Столбец B - адреса 2
Столбец C - нет совпадений. Куда помещаются значения из ячеек, которые содержатся только в А или только в B
Большое спасибо за ответ. Правила прочитал.
Столбец А - адреса1
Столбец B - адреса 2
Столбец C - нет совпадений. Куда помещаются значения из ячеек, которые содержатся только в А или только в B Kastielle
Excel 2003 EN, 2013 EN
[offtop]руки гуру - такие штуки
вырастают лишь там где надо
на концах у них растут пальцы
а на пальцах у гуру ногти
под ногтями сидит мудрилка
пишет макросы всяко-разно
или формулы там и проча
а мозги для гур не потребны
не почувствовать не потрогать
да и выглядят некрасиво
то ли дело у гуру - руки!
(впрочем ноги наверно тоже)[/offtop]
[offtop]руки гуру - такие штуки
вырастают лишь там где надо
на концах у них растут пальцы
а на пальцах у гуру ногти
под ногтями сидит мудрилка
пишет макросы всяко-разно
или формулы там и проча
а мозги для гур не потребны
не почувствовать не потрогать
да и выглядят некрасиво
то ли дело у гуру - руки!
(впрочем ноги наверно тоже)[/offtop] ikki
Прошу прощения за нубство, а как модернизировать эту формулу на 5000 строк а не на 16 ? Пишет нельзя изменять часть массива(
Прошу прощения за нубство, а как модернизировать эту формулу на 5000 строк а не на 16 ? Пишет нельзя изменять часть массива( Kastielle
это формула массива и введена она в диапазон ячеек
выделяете бОльший диапазон - например, C2:C5000
в строке формул меняете формулу (16 на 5000, везде, где встретится)
нажимаете Ctrl+Shift+Enter
пс. но на 5000, скорее всего, это будет очень долго пересчитываться.
лучше макрос.
это формула массива и введена она в диапазон ячеек
выделяете бОльший диапазон - например, C2:C5000
в строке формул меняете формулу (16 на 5000, везде, где встретится)
нажимаете Ctrl+Shift+Enter
пс. но на 5000, скорее всего, это будет очень долго пересчитываться.
лучше макрос. ikki
пс. но на 5000, скорее всего, это будет очень долго пересчитываться.
лучше макрос. Автор - ikki
Дата добавления - 23.03.2013 в 11:23
ikki, спасибо, Вы правы. Формулу изменил по вышей инструкции, но ее отработка на 5000 строк занимает 43 минуты по одному столбцу. Поэтому всё таки прошу помощи с макросом.
ikki, спасибо, Вы правы. Формулу изменил по вышей инструкции, но ее отработка на 5000 строк занимает 43 минуты по одному столбцу. Поэтому всё таки прошу помощи с макросом. Kastielle
Как сравнить два столбца и выделить несогласованные данные в Excel?
Как показано на скриншоте ниже, для сравнения двух столбцов соседних ячеек и выделения несогласованных данных вы можете попробовать методы, описанные в статье.
The Compare Ranges utility of Kutools for Excel can help you solve the problem. See below screenshot:
- Select the the two columns you will compare for unmatched data highlighting.
- Select Different Value option.
- Specify a background color for highlighting.
Kutools for Excel includes more than 300 handy Excel tools. Free to try with no limitation in 60 days. Download the free trial now
- Reuse Anything: Add the most used or complex formulas, charts and anything else to your favorites, and quickly reuse them in the future.
- More than 20 text features: Extract Number from Text String; Extract or Remove Part of Texts; Convert Numbers and Currencies to English Words.
- Merge Tools : Multiple Workbooks and Sheets into One; Merge Multiple Cells/Rows/Columns Without Losing Data; Merge Duplicate Rows and Sum.
- Split Tools : Split Data into Multiple Sheets Based on Value; One Workbook to Multiple Excel, PDF or CSV Files; One Column to Multiple Columns.
- Paste Skipping Hidden/Filtered Rows; Count And Sum by Background Color ; Send Personalized Emails to Multiple Recipients in Bulk.
- Super Filter: Create advanced filter schemes and apply to any sheets; Sort by week, day, frequency and more; Filter by bold, formulas, comment.
- More than 300 powerful features; Works with Office 2007-2019 and 365; Supports all languages; Easy deploying in your enterprise or organization.
Сравните два столбца и выделите несогласованные данные с помощью кода VBA
Удивительный! Использование эффективных вкладок в Excel, таких как Chrome, Firefox и Safari!
Экономьте 50% своего времени и сокращайте тысячи щелчков мышью каждый день!
Как показано на скриншоте выше, вы сравниваете данные в столбце A и столбце B. Запустите следующий код VBA, чтобы выделить несопоставленные данные.
1. Нажмите другой + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули. Затем скопируйте и вставьте следующий код в окно кода.
Код VBA: сравните два столбца и выделите несогласованные данные
3. нажмите F5 ключ для запуска кода. В всплывающем Kutools for Excel в диалоговом окне выберите первый столбец, который необходимо сравнить, затем щелкните значок OK кнопка. Смотрите скриншот.
4. Затем выберите второй сравниваемый столбец в следующем всплывающем окне. Kutools for Excel диалоговое окно.
5. В диалоговом окне, как показано на скриншоте ниже, для выделения несогласованных данных щелкните значок Нет кнопку.
Затем все несогласованные данные между двумя столбцами немедленно выделяются. Смотрите скриншот:
Сравните два столбца и выделите несогласованные данные с помощью Kutools for Excel
Если вы просто хотите узнать и выделить, существуют ли значения ячеек в столбце в другом столбце или нет, например, как показано на скриншоте ниже, номер 2 в столбце A не существует в столбце B, вы можете попробовать Сравнить диапазоны полезности Kutools for Excel.
1. Нажмите Кутулс > Вставить > Выберите одинаковые и разные ячейки. Смотрите скриншот:
2. в Выберите одинаковые и разные ячейки диалоговое окно необходимо настроить следующим образом:
2.1 Выберите первый столбец с несовпадающими ячейками, которые вы выделите в Найдите значения в коробке;
2.4 В Обработка результатов раздел, проверьте Заполните цвет фона поле и укажите цвет фона из раскрывающегося списка;
3. Затем появится диалоговое окно, чтобы сообщить вам, сколько ячеек только в столбце A, но не в столбце B, нажмите кнопку ОК, и все совпавшие ячейки будут выбраны в столбце A.
Если вы хотите получить бесплатную (30-дневную) пробную версию этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.
В некоторых случаях вам может потребоваться только сравнить две соседние ячейки строк и отметить их сходство или различие в Excel. В этой статье представлены два метода достижения этой цели.
Click Kutools > Select > Select Same & Different Cells. The Kutools for Excel's Select Same & Diffferent Cells utility helps you easily compare two ranges or worksheets and then highlight the same or different cells in Excel. See below screenshot:
Kutools for Excel includes more than 300 handy Excel tools. Free to try with no limitation in 60 days. Download the free trial now
Сравните две строки с формулой
Как показано на скриншоте ниже, если вы просто хотите узнать, совпадают ли сравниваемые строки или нет, вы можете применить следующую формулу.
1. Выберите пустую ячейку C2, введите формулу = ТОЧНЫЙ (A2; B2) в панель формул и нажмите клавишу Enter. Смотрите скриншот:
Внимание: В формуле A2 и B2 - это ячейки, содержащие сравниваемые строки.
2. Продолжайте выбирать ячейку результата, затем перетаскивайте маркер заполнения к ячейкам, пока не получите все сравниваемые результаты.
Результат FALSE означает, что сравниваемые строки различны, а результат TRUE указывает, что две сравниваемые строки совпадают. Смотрите скриншот:
Сравните две строки на сходство или выделите различия с кодом VBA
Если вы хотите сравнить две строки и выделить сходства или различия между ними. Следующий код VBA может вам помочь.
1. Нажмите другой + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.
2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модули. Затем скопируйте и вставьте следующий код в окно кода.
Код VBA: сравнить две строки столбца на предмет сходства или выделить различия
3. нажмите F5 ключ для запуска кода. Во-первых Kutools for Excel в диалоговом окне выберите первый столбец текстовых строк, который необходимо сравнить, а затем щелкните значок OK кнопку.
4. Затем второй Kutools for Excel появится диалоговое окно, выберите вторую строку столбца и нажмите кнопку OK кнопку.
5. В последний Kutools for Excel диалоговом окне, если вы хотите сравнить строки на предмет сходства, щелкните Да кнопка. И чтобы выделить различия сравниваемых строк, нажмите кнопку Нет кнопка. Смотрите скриншот:
Затем вы можете увидеть сравниваемые результаты, как показано на скриншоте ниже.
Типовая задача, возникающая периодически перед каждым пользователем Excel - сравнить между собой два диапазона с данными и найти различия между ними. Способ решения, в данном случае, определяется типом исходных данных.
Вариант 1. Синхронные списки
Если списки синхронизированы (отсортированы), то все делается весьма несложно, т.к. надо, по сути, сравнить значения в соседних ячейках каждой строки. Как самый простой вариант - используем формулу для сравнения значений, выдающую на выходе логические значения ИСТИНА (TRUE) или ЛОЖЬ (FALSE) :
Число несовпадений можно посчитать формулой:
или в английском варианте =SUMPRODUCT(--(A2:A20<>B2:B20))
Если в результате получаем ноль - списки идентичны. В противном случае - в них есть различия. Формулу надо вводить как формулу массива, т.е. после ввода формулы в ячейку жать не на Enter, а на Ctrl+Shift+Enter.
Если с отличающимися ячейками надо что сделать, то подойдет другой быстрый способ: выделите оба столбца и нажмите клавишу F5, затем в открывшемся окне кнопку Выделить (Special) - Отличия по строкам (Row differences) . В последних версиях Excel 2007/2010 можно также воспользоваться кнопкой Найти и выделить (Find & Select) - Выделение группы ячеек (Go to Special) на вкладке Главная (Home)
Excel выделит ячейки, отличающиеся содержанием (по строкам). Затем их можно обработать, например:
- залить цветом или как-то еще визуально отформатировать
- очистить клавишей Delete
- заполнить сразу все одинаковым значением, введя его и нажав Ctrl+Enter
- удалить все строки с выделенными ячейками, используя команду Главная - Удалить - Удалить строки с листа (Home - Delete - Delete Rows)
- и т.д.
Вариант 2. Перемешанные списки
Если списки разного размера и не отсортированы (элементы идут в разном порядке), то придется идти другим путем.
Самое простое и быстрое решение: включить цветовое выделение отличий, используя условное форматирование. Выделите оба диапазона с данными и выберите на вкладке Главная - Условное форматирование - Правила выделения ячеек - Повторяющиеся значения (Home - Conditional formatting - Highlight cell rules - Duplicate Values):
Если выбрать опцию Повторяющиеся, то Excel выделит цветом совпадения в наших списках, если опцию Уникальные - различия.
Цветовое выделение, однако, не всегда удобно, особенно для больших таблиц. Также, если внутри самих списков элементы могут повторяться, то этот способ не подойдет.
В качестве альтернативы можно использовать функцию СЧЁТЕСЛИ (COUNTIF) из категории Статистические, которая подсчитывает сколько раз каждый элемент из второго списка встречался в первом:
Полученный в результате ноль и говорит об отличиях.
И, наконец, "высший пилотаж" - можно вывести отличия отдельным списком. Для этого придется использовать формулу массива:
Типовая задача, возникающая периодически перед каждым пользователем Excel - сравнить между собой два диапазона с данными и найти различия между ними. Способ решения, в данном случае, определяется типом исходных данных.
Вариант 1. Синхронные списки
Если списки синхронизированы (отсортированы), то все делается весьма несложно, т.к. надо, по сути, сравнить значения в соседних ячейках каждой строки. Как самый простой вариант - используем формулу для сравнения значений, выдающую на выходе логические значения ИСТИНА (TRUE) или ЛОЖЬ (FALSE) :
Число несовпадений можно посчитать формулой:
или в английском варианте =SUMPRODUCT(--(A2:A20<>B2:B20))
Если в результате получаем ноль - списки идентичны. В противном случае - в них есть различия. Формулу надо вводить как формулу массива, т.е. после ввода формулы в ячейку жать не на Enter, а на Ctrl+Shift+Enter.
Если с отличающимися ячейками надо что сделать, то подойдет другой быстрый способ: выделите оба столбца и нажмите клавишу F5, затем в открывшемся окне кнопку Выделить (Special) - Отличия по строкам (Row differences) . В последних версиях Excel 2007/2010 можно также воспользоваться кнопкой Найти и выделить (Find & Select) - Выделение группы ячеек (Go to Special) на вкладке Главная (Home)
Excel выделит ячейки, отличающиеся содержанием (по строкам). Затем их можно обработать, например:
- залить цветом или как-то еще визуально отформатировать
- очистить клавишей Delete
- заполнить сразу все одинаковым значением, введя его и нажав Ctrl+Enter
- удалить все строки с выделенными ячейками, используя команду Главная - Удалить - Удалить строки с листа (Home - Delete - Delete Rows)
- и т.д.
Вариант 2. Перемешанные списки
Если списки разного размера и не отсортированы (элементы идут в разном порядке), то придется идти другим путем.
Самое простое и быстрое решение: включить цветовое выделение отличий, используя условное форматирование. Выделите оба диапазона с данными и выберите на вкладке Главная - Условное форматирование - Правила выделения ячеек - Повторяющиеся значения (Home - Conditional formatting - Highlight cell rules - Duplicate Values):
Если выбрать опцию Повторяющиеся, то Excel выделит цветом совпадения в наших списках, если опцию Уникальные - различия.
Цветовое выделение, однако, не всегда удобно, особенно для больших таблиц. Также, если внутри самих списков элементы могут повторяться, то этот способ не подойдет.
В качестве альтернативы можно использовать функцию СЧЁТЕСЛИ (COUNTIF) из категории Статистические, которая подсчитывает сколько раз каждый элемент из второго списка встречался в первом:
Полученный в результате ноль и говорит об отличиях.
И, наконец, "высший пилотаж" - можно вывести отличия отдельным списком. Для этого придется использовать формулу массива:
Читайте также: