Сравнение данных между столбцами — одна из самых востребованных задач в Microsoft Excel. Вы когда-нибудь сталкивались с необходимостью узнать, сколько уникальных клиентов есть в базе за два месяца? Или сколько товаров из прайса поставщика отсутствуют в вашем ассортименте? А может, нужно найти расхождения между отчётами двух отделов?
Эти задачи объединяет одно: требуется анализ разных значений в разных столбцах. Причём под "разными" могут подразумеваться как уникальные записи, так и те, что есть в одном столбце, но отсутствуют в другом. В этой статье разберём 7 проверенных способов — от простых формул до автоматизированных решений с Power Query. Вы узнаете, как избежать ошибок при работе с большими массивами данных и какие инструменты выбрать для конкретной задачи.
Важно: все примеры в статье актуальны для Excel 2016–2026 и Microsoft 365. Если вы работаете в Google Sheets, большинство формул будут работать аналогично, но синтаксис некоторых функций (например, UNIQUE) может отличаться.
1. Базовый метод: функция СЧЁТЕСЛИ для поиска уникальных значений
Начнём с самого простого — подсчёта количества значений из одного столбца, которые отсутствуют в другом. Представьте, у вас есть список сотрудников из отдела продаж (Столбец A) и список тех, кто прошёл обучение (Столбец B). Нужно узнать, сколько человек не обучались.
Для этого используем комбинацию функций СЧЁТЕСЛИ и ЕСЛИОШИБКА:
=СЧЁТЕСЛИ(A2:A100; "<>"&B2:B100)
Но этот подход не сработает — Excel не поддерживает массивы в СЧЁТЕСЛИ напрямую. Правильное решение:
=СУММПРОИЗВ(--(СЧЁТЕСЛИ(B:B; A2:A100)=0))
Эта формула проверяет каждое значение из A2:A100 на наличие в столбце B и суммирует случаи, когда совпадений нет.
Ограничение метода: формула работает только с текстом и числами. Если в данных есть пустые ячейки или ошибки (#Н/Д), результат будет некорректным. Для таких случаев добавьте проверку:
=СУММПРОИЗВ(--(СЧЁТЕСЛИ(B:B; A2:A100)=0); --(A2:A100<>""))
- ✅ Простота — не требует знания сложных функций
- ✅ Работает в любых версиях Excel
- ❌ Не подходит для больших массивов (более 10 000 строк)
- ❌ Не учитывает регистр (например, "Иванов" и "иванов" будут считаться одинаковыми)
2. Продвинутый подход: функция УНИК для извлечения уникальных значений
В Excel 365 и Excel 2021
появилась революционная функцияУНИК (UNIQUE), которая упрощает работу с уникальными данными. С её помощью можно не только посчитать, но и визуализировать разные значения между столбцами.
Допустим, у вас есть два списка артикулов товаров (Столбец C и Столбец D). Чтобы получить список артикулов, которые есть только в первом столбце:
=УНИК(ФИЛЬТР(C2:C100; СЧЁТЕСЛИ(D2:D100; C2:C100)=0))
Эта формула:
- Проверяет каждое значение в
C2:C100на наличие вD2:D100 - Фильтрует только те, которые не найдены (
СЧЁТЕСЛИ=0) - Возвращает уникальный список результатов
Чтобы посчитать количество таких значений, оберните формулу в СТРОКА:
=СТРОКА(УНИК(ФИЛЬТР(C2:C100; СЧЁТЕСЛИ(D2:D100; C2:C100)=0)))-1
Минус 1 в конце нужен, потому что УНИК возвращает массив с заголовком (если данные начинаются с первой строки).
| Функция | Синтаксис | Пример использования | Ограничения |
|---|---|---|---|
УНИК | =УНИК(массив; [по_столбцам]; [точно_один_раз]) | =УНИК(A2:B100; ЛОЖЬ; ИСТИНА) | Только в Excel 365/2021 |
ФИЛЬТР | =ФИЛЬТР(массив; условие; [если_пусто]) | =ФИЛЬТР(A2:A100; A2:A100<>"") | Не работает с ошибками в данных |
СЧЁТЕСЛИ | =СЧЁТЕСЛИ(диапазон; критерий) | =СЧЁТЕСЛИ(B:B; A2) | Не различает регистр |
3. Сравнение столбцов с условным форматированием
Если вам нужно не только посчитать, но и визуально выделить разные значения, условное форматирование станет идеальным решением. Например, чтобы пометить строки, где данные в Столбце E и Столбце F не совпадают:
Выделите диапазон E2:F100, затем:
- Перейдите на вкладку
Главная → Условное форматирование → Создать правило - Выберите
Использовать формулу для определения форматируемых ячеек - Введите формулу:
=$E2<>$F2 - Задайте формат (например, красный фон)
Теперь все несовпадающие пары будут подсвечены. Чтобы посчитать количество таких строк, добавьте вспомогательный столбец с формулой:
=ЕСЛИ(E2<>F2; 1; 0)
А затем просуммируйте его.
⚠️ Внимание: Условное форматирование замедляет работу Excel при большом количестве строк (более 50 000). Если файл стал "тормозить", отключите правила форматирования или используйте Power Query.
- 🎨 Визуально наглядно — сразу видно все расхождения
- ⚡ Быстро настраивается (2–3 клика)
- ❌ Не подходит для автоматического подсчёта (нужны дополнительные формулы)
- ❌ Может конфликтовать с другими правилами форматирования
4. Использование сводных таблиц для анализа разных значений
Сводные таблицы — мощный инструмент для сравнения данных, который часто недооценивают. Предположим, у вас есть таблица с продажами по регионам за два квартала (Столбец G — 1-й квартал, Столбец H — 2-й квартал). Нужно узнать, в каких регионах продажи появились или исчезли.
Алгоритм действий:
- Выделите исходные данные (включая заголовки)
- Нажмите
Вставка → Сводная таблица - В настройках сводной таблицы добавьте оба столбца в область
Значенияи установите для них операциюКоличество - Добавьте столбец с регионами в область
Строки
Теперь вы увидите таблицу, где можно отфильтровать регионы с нулевыми значениями в одном из кварталов. Чтобы автоматизировать подсчёт, создайте ещё одну сводную таблицу на основе первой, где будет считаться количество ненулевых значений по условию.
⚠️ Внимание: Сводные таблицы не обновляются автоматически при изменении исходных данных. Не забудьте нажатьАнализ → Обновитьили настроить автоматическое обновление черезСвойства сводной таблицы.
Удалить пустые строки и столбцы|Проверить формат данных (текст/числа)|Заменить ошибки (#Н/Д) на 0 или пустые ячейки|Добавить заголовки ко всем столбцам-->
5. Power Query: профессиональный инструмент для сложных сравнений
Если вам регулярно приходится сравнивать большие массивы данных (тысячи строк), Power Query станет вашим спасением. Этот инструмент позволяет автоматизировать процесс поиска разных значений и обновлять результаты одним кликом.
Рассмотрим пример: у вас есть два списка email-адресов (Лист1!A:A и Лист2!A:A). Нужно найти адреса, которые есть только в первом списке.
Инструкция:
- Перейдите на вкладку
Данные → Получить данные → Из таблицы/диапазонаи загрузите оба списка в Power Query - В редакторе запросов выделите первый запрос, затем нажмите
Главная → Объединить запросы → Объединить - Выберите тип объединения
Левое анти-объединение(это вернёт только строки из первого списка, которых нет во втором) - Нажмите
Закрыть и загрузить— результат появится на новом листе
Преимущества Power Query:
- 🔄 Обрабатывает миллионы строк без замедления
- 📊 Сохраняет историю преобразований (можно откатиться к любому шагу)
- 🔄 Обновляет данные одним кликом (
Данные → Обновить все)
Как объединить данные из нескольких файлов в Power Query?
1. Поместите все файлы в одну папку.
2. В Power Query выберите Данные → Получить данные → Из файла → Из папки.
3. На этапе преобразования используйте кнопку Объединить файлы в верхнем меню.
4. Выберите столбец для объединения (например, "Название товара").
5. Примените анти-объединение для поиска уникальных значений.
6. Формулы массива для сложных условий
Когда нужно учитывать несколько критериев одновременно, на помощь приходят формулы массива. Например, вы хотите посчитать количество уникальных клиентов, которые сделали заказ в январе (Столбец I), но не покупали в феврале (Столбец J), при этом их сумма заказа превышала 5000 рублей (Столбец K).
Используйте эту формулу (вводится как формула массива — после ввода нажмите Ctrl+Shift+Enter в старых версиях Excel):
=СУММ(--(СЧЁТЕСЛИ(J:J; ЕСЛИ(I2:I100<>""; I2:I100))=0); --(K2:K100>5000))
Разберём её по частям:
ЕСЛИ(I2:I100<>""; I2:I100)— фильтрует непустые ячейки в январеСЧЁТЕСЛИ(J:J; ...)=0— проверяет отсутствие клиента в февралеK2:K100>5000— добавляет условие по сумме заказаСУММ(--(...); --(...))— суммирует случаи, когда оба условия выполнены
⚠️ Внимание: Формулы массива значительно нагружают Excel. Если файл содержит более 100 000 строк, разбейте задачу на несколько простых формул или используйте Power Query.
7. VBA-скрипты для автоматизации рутинных задач
Если вам приходится сравнивать столбцы ежедневно, имеет смысл написать простой VBA-макрос. Например, этот скрипт найдёт все значения из Столбца L, которых нет в Столбце M, и запишет результат в Столбец N:
Sub FindUniqueValues()
Dim ws As Worksheet
Dim rng1 As Range, rng2 As Range, cell As Range
Dim dict As Object
Dim i As Long, lastRow As Long
Set ws = ActiveSheet
Set dict = CreateObject("Scripting.Dictionary")
' Загружаем значения второго столбца в словарь
lastRow = ws.Cells(ws.Rows.Count, "M").End(xlUp).Row
For i = 2 To lastRow
dict(ws.Cells(i, 13).Value) = 1
Next i
' Проверяем значения первого столбца
lastRow = ws.Cells(ws.Rows.Count, "L").End(xlUp).Row
For i = 2 To lastRow
If Not dict.exists(ws.Cells(i, 12).Value) Then
ws.Cells(i, 14).Value = ws.Cells(i, 12).Value
End If
Next i
End Sub
Чтобы запустить макрос:
- Нажмите
Alt+F11, чтобы открыть редактор VBA - Вставьте код в новый модуль (
Insert → Module) - Закройте редактор и запустите макрос через
Вид → Макросы
Преимущества VBA:
- ⚡ Мгновенная обработка даже миллиона строк
- 🔧 Гибкость — можно добавить любые условия (например, игнорировать пустые ячейки)
- 📅 Возможность запуска по расписанию (через
ЭтоКнига_Open)
FAQ: Ответы на частые вопросы
Как посчитать количество общих значений в двух столбцах?
Используйте формулу:
=СУММПРОИЗВ(--(СЧЁТЕСЛИ(B:B; A2:A100)>0))
Она подсчитает, сколько значений из A2:A100 встречаются в столбце B. Для точного результата убедитесь, что в данных нет пустых ячеек.
Почему функция УНИК возвращает ошибку #ЗНАЧ!?
Ошибка #ЗНАЧ! в УНИК возникает по трём причинам:
- В вашей версии Excel нет этой функции (она доступна только в Excel 365 и Excel 2021)
- В исходных данных есть ошибки (#Н/Д, #ДЕЛ/0!)
- Вы пытаетесь использовать функцию в массиве с несовместимыми размерами
Решение: оберните исходные данные в ЕСЛИОШИБКА или обновите Excel.
Можно ли сравнить столбцы в Google Sheets?
Да, в Google Sheets работают аналогичные формулы, но с некоторыми отличиями:
УНИКназываетсяUNIQUEи поддерживается во всех версиях- Для формул массива не нужно нажимать
Ctrl+Shift+Enter— они работают по умолчанию - Функция
ФИЛЬТРназываетсяFILTER
Пример формулы для поиска уникальных значений:
=COUNTA(UNIQUE(FILTER(A2:A100; COUNTIF(B2:B100; A2:A100)=0)))
Как сравнить столбцы с учётом регистра?
Excel по умолчанию не учитывает регистр при сравнении. Чтобы обойти это ограничение, используйте комбинацию функций ПОИСК и ЕСЛИОШИБКА:
=СУММПРОИЗВ(--(ЕОШИБКА(ПОИСК(A2:A100; B2:B100))))
Для точного подсчёта (включая пустые ячейки) добавьте проверку:
=СУММПРОИЗВ(--(ЕОШИБКА(ПОИСК(A2:A100; B2:B100))); --(A2:A100<>""))
Какой метод самый быстрый для больших данных?
Скорость обработки зависит от объёма данных:
- До 10 000 строк: формулы массива или
СУММПРОИЗВ - 10 000–100 000 строк: сводные таблицы или Power Query
- Свыше 100 000 строк: только Power Query или VBA
Условное форматирование и УНИК не рекомендуются для больших массивов — они значительно замедляют работу Excel.