Как показано на скриншоте ниже, как найти пересечение двух списков в Excel? Другими словами, как найти повторяющиеся значения в двух столбцах? В этой статье представлены два метода, которые помогут вам в этом.
Найти пересечение двух списков по формуле
Найдите пересечение двух списков с Kutools for Excel
Найти пересечение двух списков по формуле
Приведенная ниже формула может помочь вам найти пересечение двух списков в Excel. Пожалуйста, сделайте следующее.
1. Выберите пустой столбец, скопируйте формулу. =IF(ISERROR(MATCH(B2,$C$2:$C$9,0)),»»,B2) в панель формул и нажмите клавишу Enter. Смотрите скриншот:
Внимание: В формуле B2 — это первая ячейка первого списка, $ C $ 2: $ C $ 9 — это диапазон второго списка. Пожалуйста, измените их в зависимости от ваших потребностей.
2. Теперь обнаруживается первое пересечение, выберите его и перетащите маркер заливки вниз, чтобы получить все. Смотрите скриншот:
Найдите пересечение двух списков с Kutools for Excel
Если вы не хотите применять формулу, мы рекомендуем вам Выберите одинаковые и разные ячейки полезности Kutools for Excel чтобы легко найти все пересечения двух списков в Excel.
1. Нажмите Кутулс > Выберите > Выберите одинаковые и разные ячейки.
2. в Выберите одинаковые и разные ячейки диалоговое окно, вам необходимо:
2.1 Выберите первый список и второй список без заголовков отдельно в Найдите значения в Согласно информации коробки;
2.2 Выберите Каждый ряд вариант в на основании раздел;
2.3 Выбрать Те же значения в Найти раздел;
2.4 Укажите цвет фона или цвет шрифта в Обработка результатов раздел для выделения перекрестков по мере необходимости;
2.5 Щелкните значок OK кнопка. Смотрите скриншот:
3. Затем появляется диалоговое окно, в котором указывается, сколько ячеек было выбрано, нажмите OK кнопка. И вы можете видеть, что все перекрестки выбраны и выделены в первом списке, как показано на скриншоте ниже:
Если вы хотите получить бесплатную пробную версию (30-день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.
Демонстрация: найти пересечение двух списков с помощью Kutools for Excel
Статьи по теме:
- Как найти и заменить все пустые ячейки на определенное число или текст в Excel?
- Как заменить запятые на новые строки (Alt + Enter) в ячейках в Excel?
- Как создать код макроса для поиска и замены текста в Excel?
- Как найти и заменить названия вкладок листов в Excel?
- Как найти значение в ячейке со списком, разделенным запятыми в Excel?
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Комментарии (0)
Оценок пока нет. Оцените первым!
Skip to content
В этом руководстве вы познакомитесь с различными методами сравнения таблиц Excel и определения различий между ними. Узнайте, как просматривать две таблицы рядом, как использовать формулы для создания отчета о различиях, выделить несовпадения с помощью условного форматирования и многое другое.
Когда у вас есть две похожие книги Эксель или, лучше сказать, две версии одной и той же книги, что вы обычно хотите с ними делать в первую очередь? Сравнить их на предмет различий, а затем, возможно, объединить в один файл. Кроме того, такая операция может помочь вам обнаружить потенциальные проблемы, такие как битые ссылки, повторяющиеся записи, несогласованные формулы.
- Визуальное сравнение таблиц.
- Быстрое выделение различий.
- Использование формулы сравнения.
- Как вывести различия на отдельном листе.
- Как можно использовать функцию ВПР.
- Выделение различий условным форматированием.
- Сопоставление при помощи сводной таблицы.
- Сравнение таблиц при помощи Pover Query.
- Инструмент сравнения таблиц Ultimate Suite.
Итак, давайте более подробно рассмотрим различные методы сравнения таблиц Excel и выявления различий между ними.
Просмотр рядом, чтобы сравнить таблицы.
Если у вас относительно небольшие файлы и вы внимательны к деталям, этот быстрый и простой способ сравнения может вам подойти. Я говорю о режиме «Просмотр рядом», который позволяет расположить два окна Excel рядом. Вы можете использовать этот метод для визуального сравнения двух таблиц или двух листов из одной книги.
Сравните 2 книги.
Предположим, у вас есть отчеты о продажах за два месяца, и вы хотите просмотреть их оба одновременно, чтобы понять, какие товары показали лучшие результаты в этом месяце, а какие — в прошлом.
Чтобы просмотреть два файла Эксель рядом, сделайте следующее:
- Откройте оба файла.
- Перейдите на вкладку «Вид» и нажмите кнопку «Рядом». (1) Это оно!
По умолчанию два отдельных окна Excel отображаются горизонтально.
Чтобы разделить окна по вертикали, нажмите кнопку «Упорядочить все» (3) и выберите «Рядом» (4):
В результате два отдельных окна будут расположены, как на скриншоте.
Если вы хотите прокручивать оба листа одновременно, чтобы сравнивать данные строка за строкой, убедитесь, что параметр синхронной прокрутки (2) включен. Он обычно включается автоматически, как только вы активируете режим одновременного просмотра двух книг.
Расположите рядом несколько таблиц Excel.
Чтобы просматривать более двух файлов одновременно, откройте все книги, которые вы хотите сравнить, и нажмите кнопку «Рядом».
Появится диалоговое окно «Сравнить рядом», в котором вы выберете файлы, которые будут отображаться вместе с активной книгой.
Чтобы просмотреть все открытые файлы одновременно, нажмите кнопку «Упорядочить все» и выберите предпочтительное расположение: мозаичное, горизонтальное, вертикальное или каскадное.
Для небольших таблиц вы легко сможете визуально сравнить их данные. Хотя, конечно, риск ошибки из-за человеческого фактора здесь присутствует.
Сравните два листа в одной книге.
Иногда 2 листа, которые вы хотите сравнить, находятся в одной книге. Чтобы просмотреть их рядом, выполните следующие действия.
- Откройте файл, перейдите на вкладку «Вид» и нажмите кнопку «Новое окно».
- Это действие откроет тот же файл в дополнительном окне.
- Включите режим просмотра «Рядом», нажав соответствующую кнопку на ленте.
- Выберите лист 1 в первом окне и лист 2 во втором окне.
Быстрое выделение значений, которые различаются.
Это также не очень обременительный способ. Если вам просто нужно найти и удостовериться в наличии или же отсутствии отличий между записями, вам нужно на вкладке «Главная», выбрать кнопку «Найти и выделить», предварительно выделив диапазон, где надо сравнить данные в Эксель.
В открывшемся меню выберите пункт «Выделить группу ячеек…» и в появившемся диалоговом окне выберите «отличия по строкам».
К сожалению, это нормально работает только для сравнения 2 столбцов (или строк), а не всей таблицы целиком. Кроме того, строки должны быть одинаковым образом отсортированы, поскольку ячейки сравниваются построчно. Если у вас товары отсортированы по-разному, либо вообще различный ассортимент, то никакой пользы от этого метода не будет.
Формула сравнения.
Это самый простой способ соотнесения таблиц в Excel, который позволяет идентифицировать в них ячейки с разными значениями.
Простейший вариант – сопоставление двух таблиц, находящихся на одном листе. Можно соотносить как числовые, так и текстовые значения, всего-навсего прописав в одной из соседних ячеек формулу их равенства. В результате при тождестве ячеек мы получим сообщение ИСТИНА, в противном случае — ЛОЖЬ.
Предположим, у нас имеется два прайс-листа (старый и новый), в которых на некоторые товары различаются цены. При этом порядок следования товаров одинаков. Поэтому мы можем при помощи простейшей формулы прямо на этом же листе сравнить идентичные ячейки с данными.
=G3=C3
Результатом будет являться либо ИСТИНА (в случае совпадения), либо ЛОЖЬ (при отрицательном результате).
Таким же образом можно производить сравнение данных в таблицах, которые расположены на разных листах. Процедура сравнения практически точно такая, как была описана выше, кроме того факта, что при создании формулы придется переключаться между листами. В нашем случае выражение будет иметь следующий вид:
=G3=Лист2!C3
Если ваши таблицы достаточно велики, то довольно утомительно будет просматривать колонку I на предмет поиска слова ЛОЖЬ. Поэтому может быть полезным сразу определить — а есть ли вообще несовпадения?
Можно подсчитать общее количество расхождений и сразу вывести это число где-нибудь отдельно.
=СУММПРОИЗВ(—(C3:C25<>G3:G25))
или можно сделать это формулой массива
{=СУММ(—(C3:C25<>G3:G25))}
Если формула возвращает ноль, значит, данные полностью совпадают. Ну а ежели результат положительный, то нужны более детальные исследования. О них мы и поговорим далее.
Как произвести сравнение на отдельном листе.
Чтобы сравнить два листа Эксель на предмет различий, просто откройте новый пустой лист, введите следующую формулу в ячейку A1, а затем скопируйте ее вниз и вправо, перетащив маркер заполнения:
=ЕСЛИ(Лист1!A1 <> Лист2!A1; «Лист1:»&Лист1!A1&» — Лист2:»&Лист2!A1; «»)
Поскольку мы используем относительные ссылки на ячейки, формула будет меняться в зависимости от расположения столбца и строки. В результате формула в A1 будет сравнивать ячейки A1 в Лист1 и Лист2, формула в B1 будет сравнивать ячейку B1 на обоих листах и так далее. Результат будет выглядеть примерно так:
В результате вы получите отчет о различиях на новом листе. Думаю, это достаточно информативно.
Как вы можете видеть на приведенном выше рисунке, формула сравнивает 2 листа, находит ячейки с разными значениями и отображает различия в соответствующих местах.
Обратите внимание, что в отчете о различиях (ячейка D4) даты представлены числами, поскольку в таком виде они хранятся во внутренней системе Excel, что не очень удобно для анализа различий между ними.
Как сравнить две таблицы при помощи формулы ВПР.
Предположим, у нас снова 2 прайс-листа. Однако, в отличие от предыдущего примера, они содержат разное количество товаров, да и сами товары расположены в произвольном порядке. Поэтому описанный выше способ, когда мы построчно сравнивали две таблицы, здесь не сработает.
Нам необходимо последовательно взять каждый товар из одной таблицы, найти его во второй, извлечь оттуда его цену и сравнить с первоначальной ценой. Здесь нам не обойтись без формул поиска. Поможет нам функция ВПР.
Для наглядности расположим обе таблицы на одном листе.
Формула
=ЕСЛИОШИБКА(ВПР(F3;$B$3:$C$18;2;0);0)
берёт наименование товара из второго прайса, ищет его в первом, и в случае удачи извлекает соответствующую цену из первой таблицы. Она будет записана рядом с новой ценой в столбце H. Если поиск завершился неудачей, то есть такого товара ранее не было, то ставим 0. Таким образом, старая и новая цена оказываются рядом, и их легко сравнить простейшей операцией вычитания. Что и сделано в столбце I.
Аналогично можно сопоставлять и данные на разных листах. Просто нужно соответствующим образом изменить ссылки в формуле, указав в них имя листа.
Вот еще один пример. Возьмём за основу более новую информацию, то есть второй прайс. Выведем только сведения о том, какие цены и на какие товары изменились. А то, что не изменилось, выводить в итоговом отчёте не будем.
Разберём действия пошагово. Формула в ячейке J3 ищет наименование товара из первой позиции второй таблицы внутри первой. Если таковое найдено, извлекается соответствующая этому товару старая цена и сразу же сравнивается с новой. Если они одинаковы, то в ячейку записывается пустота «».
=ЕСЛИ(ЕСЛИОШИБКА(ВПР(F3;$B$3:$C$18;2;0);0)=G3;»»;ЕСЛИОШИБКА(ВПР(F3;$B$3:$C$18;2;0);0))
Таким образом, в ячейке J3 будет указана старая цена, если ее удастся найти, а также если она не равна новой.
Далее если ячейка J3 не пустая, то в I3 будет указано наименование товара —
=ЕСЛИ(J3<>»»;F3;»»)
а в K3 – его новая цена:
=ЕСЛИ(J3<>»»;G3;»»)
Ну а далее в L3 просто найдем разность K3-J3.
Таким образом, в отчёте сравнения мы видим только несовпадения значений второй таблицы по сравнению с первой.
И еще один пример, который может быть полезен. Попытаемся сравнить в итоговой таблице оба прайс-листа с эталонным общим списком товаров.
В ячейке B2 запишем формулу
=ЕСЛИ(ЕНД(ВПР(A2;Прайс1!$B$3:$B$19;1;0));»Нет»;ВПР(A2;Прайс1!$B$3:$C$19;2;0))
Так мы выясним, какие цены из второй таблицы встречаются в первой.
Для каждой цены из первого прайса проверяем, совпадает ли она с новыми данными —
=ЕСЛИ(ЕНД(ВПР(A2;Прайс2!$B$3:$B$22;1;0));»Нет»;ВПР(A2;Прайс2!$B$3:$C$22;2;0))
Эталонный список находится у нас в столбце A. В результате мы получили своего рода сводную таблицу цен – старых и новых.
Еще несколько примеров использования функции ВПР для сравнения таблиц вы можете найти в этой статье.
Выделение различий между таблицами цветом.
Чтобы закрасить ячейки с разными значениями на двух листах выбранным вами цветом, используйте функцию условного форматирования Excel:
- На листе, где вы хотите выделить различия, выберите все используемые ячейки. Для этого щелкните верхнюю левую ячейку используемого диапазона, обычно A1, и нажмите
Ctrl + Shift + End
, чтобы расширить выделение до последней использованной ячейки. - На вкладке Главная кликните Условное форматирование > Новое правило и создайте его со следующей формулой:
=A1<>Лист2!A1
Где Лист2 — это имя другого листа, который вы сравниваете с текущим.
В результате ячейки с разными значениями будут выделены выбранным вами цветом:
Если вы не очень хорошо знакомы с условным форматированием, вы можете найти подробные инструкции по созданию правила в следующем руководстве: Условное форматирование Excel в зависимости от значения ячейки.
Сравнение при помощи сводной таблицы.
Хороший вариант сравнения — объединить таблицы в единую сводную, и там уже сопоставлять данные между собой.
Вернемся к нашему примеру с двумя прайс-листами. Объединим наши данные на одном листе. Чтобы отличить данные одной таблицы от другой, добавим вспомогательный столбец D и укажем в нем, откуда именно взяты данные:
А теперь приступим к созданию сводной таблицы. Я не буду подробно останавливаться на том, как мы это будем делать. Все шаги подробно описаны в статье Как сделать сводную таблицу в Excel.
Поместим поле Товар в область строк, поле Прайс в область столбцов и поле Цена в область значений.
Как видно на скриншоте ниже, для каждого товара, встречающегося хотя бы в одном из прайсов, указана цена.
Сводная таблица автоматически сформирует общий список всех товаров из старого и нового прайсов и сортирует их по алфавиту. Причём, без повторов. У новых товаров нет старой цены, у удаленных товаров — новой цены. Легко увидеть изменения цен, если таковые были.
Общие итоги здесь смысла не имеют, и их можно отключить на вкладке Конструктор — Общие итоги — Отключить для строк и столбцов.
Если изменятся цены, то достаточно просто обновить созданную сводную, щелкнув по ней правой кнопкой мыши — Обновить. А вот если изменится список товаров или добавится новый файл для сравнения, то придется заново формировать исходный массив или же добавлять в него новые данные.
Плюсы: такой подход на порядок быстрее работает с большими объемами данных, чем ВПР. Можно сравнить данные нескольких таблиц.
Минусы: надо вручную копировать данные в одну большую таблицу и добавлять столбец с названием исходного файла.
Сравнение таблиц с помощью Power Query
Power Query — это бесплатная надстройка для Microsoft Excel, позволяющая загружать в него данные практически из любых источников и преобразовывать потом их желаемым образом. В Excel 2016 эта надстройка уже встроена по умолчанию на вкладке Данные, а для более ранних версий ее нужно отдельно скачать с сайта Microsoft и установить.
Перед загрузкой наших прайс-листов в Power Query их необходимо преобразовать сначала в умные таблицы. Для этого выделим диапазон с данными и нажмем на клавиатуре сочетание Ctrl+T
или выберем на ленте вкладку Главная — Форматировать как таблицу. Имена созданных таблиц можно изменить на вкладке Конструктор (я оставлю стандартные Таблица1 и Таблица2, которые генерируются по умолчанию).
Загрузите первый прайс в Power Query с помощью кнопки Из таблицы/диапазона на вкладке Данные.
После загрузки вернемся обратно в Excel из Power Query командой Закрыть и загрузить — Закрыть и загрузить в…
В появившемся затем окне выбираем «Только создать подключение».
Повторите те же действия с новым прайс-листом.
Теперь создадим третий запрос, который будет объединять и сравнивать данных из предыдущих двух. Для этого выберем на вкладке Данные — Получить данные — Объединить запросы — Объединить. Все шаги вы видите на скриншоте ниже.
В окне объединения выберем в выпадающих списках наши таблицы, выделим в них столбцы с названиями товаров и в нижней части определим способ объединения — Полное внешнее.
После нажатия на ОК должна появиться таблица из четырёх столбцов, где в четвертой колонке нужно развернуть вложенное содержимое с помощью двойной стрелки в шапке.
После нажатия вы увидите список столбцов из второго прайса. Выбираем Товар и Цена. Получаем следующую картину:
А теперь сравним цены. Идем на вкладку Добавление столбца и жмем на кнопку Условный столбец. А затем в открывшемся окне вводим несколько условий проверки с соответствующими им значениями, которые нужно отобразить:
Теперь осталось вернуться на вкладку Главная и нажать Закрыть и загрузить.
Получаем новый лист в нашей рабочей книге:
Примечание. Если в будущем в наших прайс-листах произойдут любые изменения (добавятся или удалятся строки, изменятся цены и т.д.), то достаточно будет лишь обновить наши запросы сочетанием клавиш Ctrl+Alt+F5
или кнопкой Обновить все на вкладке Данные.
Ведь все данные извлекаются из «умных» таблиц Excel, которые автоматически меняют свой размер при добавлении либо удалении из них какой-либо информации. Однако, помните, что имена столбцов в исходных таблицах не должны меняться, иначе получим ошибку «Столбец такой-то не найден!» при попытке обновить запрос.
Это, пожалуй, самый красивый и удобный способ из всех стандартных. Шустро работает с большими таблицами. Не требует ручных правок при изменении размеров.
Как видите, есть несколько способов сравнить две таблицы Excel, используя формулы или условное форматирование. Однако эти методы не подходят для комплексного сравнения из-за следующих ограничений:
- Они находят различия только в значениях, но не могут сравнивать формулы или форматирование ячеек.
- Многие из них не могут идентифицировать добавленные или удаленные строки и столбцы. Как только вы добавите или удалите строку / столбец на одном листе, все последующие строки / столбцы будут отмечены как отличия.
- Они хорошо работают на уровне листа, но не могут обнаруживать структурные различия на уровне книги Excel, к примеру добавление и удаление листов.
Эти проблемы решаются путем использования дополнений к Excel, о чем мы поговорим далее.
Как сравнить таблицы при помощи Ultimat Suite для Excel
Последняя версия Ultimate Suite включает более 60 новых функций и улучшений, самым интересным из которых является «Сравнение таблиц» — инструмент для сравнения листов или диапазонов данных в Excel.
Чтобы сделать сравнение более интуитивным и удобным, надстройка разработана следующим образом:
- Мастер шаг за шагом проведет вас через процесс и помогает настраивать различные параметры.
- Вы можете выбрать алгоритм сравнения, наиболее подходящий для ваших наборов данных.
- Вместо отчета о различиях сравниваемые листы отображаются в режиме просмотра различий, чтобы вы могли сразу просмотреть все различия и управлять ими по очереди.
Теперь давайте попробуем использовать этот инструмент на наших примерах электронных таблиц из предыдущего примера и посмотрим, отличаются ли результаты.
- Нажмите кнопку «Сравнить листы (Compare Two Sheets)» на вкладке «Данные Ablebits » в группе « Объединить »:
- Появится окно мастера с предложением выбрать два листа, которые вы хотите сравнить на предмет различий.
По умолчанию выбираются все листы, но вы также можете выбрать текущую таблицу или определенный диапазон , нажав соответствующую кнопку:
- На следующем шаге вы выбираете алгоритм сравнения:
- Без ключевых столбцов (по умолчанию) — лучше всего подходит для сложных документов, таких как счета-фактуры или контракты.
- По ключевым столбцам — подходит для таблиц, организованных по столбцам, которые имеют один или несколько уникальных идентификаторов, таких как номера заказов или артикулы товаров.
- По ячейке — лучше всего использовать для сравнения таблиц с одинаковым макетом и размером, таких как балансы или статистические отчеты.
Совет. Если вы не уверены, какой алгоритм подходит вам, выберите вариант по умолчанию (без ключевых столбцов). Какой бы алгоритм вы ни выбрали, надстройка найдет все различия, только выделит их по-разному (целые строки или отдельные ячейки).
На этом же шаге вы можете выбрать предпочтительный тип соответствия:
- Первое совпадение (по умолчанию) — сравнивает строку на листе 1 с первой найденной строкой на листе 2, которая имеет хотя бы одну совпадающую ячейку.
- Наилучшее совпадение — сравнивает строку на листе 1 со строкой на листе 2, которая имеет максимальное количество совпадающих ячеек.
- Полное совпадение — находит на обоих листах строки, которые имеют одинаковые значения во всех ячейках, и отмечает все остальные строки как уникальные.
В этом примере мы сначала будем искать наилучшее совпадение, используя режим сравнения без ключевых столбцов, который установлен по умолчанию.
- На следующем шаге укажите, какие различия следует выделить, а какие игнорировать, и как помечать различия.
Скрытые строки и столбцы не имеют значения, и мы говорим надстройке игнорировать их:
- Нажмите кнопку «Сравнить (Compare)» и подождите немного, пока программа обработает ваши данные и создаст их резервные копии. Резервные копии всегда создаются автоматически, поэтому вы можете не беспокоиться о сохранности своих данных.
После обработки листы открываются друг рядом с другом в специальном режиме просмотра различий с выбранным способом выделения отличий:
На скриншоте выше различия выделены цветами по умолчанию:
- Красные строки — строки, существующие только на Листе 2 (справа).
- Зеленые ячейки — различные ячейки в частично совпадающих строках.
А вот если мы выберем второй алгоритм сравнения — по ключевому столбцу, то нам будет предложено указать его. В нашем случае вполне можно ключевым столбцом обозначить «Товар».
После этого мы видим немного другой результат сравнения:
Как видите, основным здесь действительно является факт совпадения значений в столбцах B. Строки, в которых нет такого совпадения, сразу выделяются красным или фиолетовым. А вот если совпадение есть, тогда идем в столбец С и сравниваем записанную там цену. Зелёные ячейки как раз и показывают нам товары, которые имеются в обоих прайс-листах, но цена на них изменилась.
Не знаю как вам, но мне второй вариант представляется более информативным.
А что же дальше делать с этим сравнением?
Чтобы помочь вам просматривать различия и управлять ими, на каждом листе есть собственная вертикальная панель инструментов. Для неактивного рабочего листа (справа на нашем скриншоте) эта панель отключена. Чтобы активировать панель инструментов, просто выберите любую ячейку на соответствующем листе.
Используя её, вы последовательно просматриваете найденные различия и решаете, объединить их или игнорировать:
Как только последнее различие будет устранено, вам будет предложено сохранить книги и выйти из режима просмотра различий.
Если вы еще не закончили обработку различий, но хотели бы сделать перерыв, нажмите кнопку «Выйти из просмотра различий» в нижней части панели инструментов и выберите один из следующих вариантов:
- Сохраните внесенные вами изменения и сохраните оставшиеся различия (Save workbooks and keep difference marks),
- Сохраните внесенные вами изменения и удалите оставшиеся различия (Save workbooks and remove difference marks),
- Восстановите исходные книги из резервных копий (Restore workbooks from backup copies).
Вот как вы можете сравнить два листа в Excel при помощи инструмента сравнения Compare Two Sheets (надеюсь, он вам понравился
Если вам интересно попробовать, полнофункциональная ознакомительная версия доступна для загрузки здесь .
Оператор пересечения – один из основных операторов в Microsoft Excel, однако знаком он только небольшому количеству пользователей. В данной статье я исправлю эту ситуацию и детально расскажу о том, что это за оператор и в каких ситуациях может использоваться.
Для чего нужен оператор пересечения
Обратите внимание на следующий скриншот. На нем вы видите таблицу со столбцами и строками. Выделен столбец со строкой, и есть ячейка, в которой они пересекаются. Оператор пересечения и нужен для поиска этой ячейки. По умолчанию он выведет как раз значение, которое находится в этом месте.
Стандартное использование оператора пересечения
Для начала давайте разберемся с тем, как просто использовать оператор пересечения и вывести в пустой ячейке то самое искомое значение. Вам понадобится любая таблица, состоящая из нескольких столбцов и строк с заполненными данными. Далее остается выполнить следующие действия:
-
Выделите пустую ячейку для вывода результата, в ней добавьте знак = и выделите левой кнопкой мыши всю строку.
-
После этого поставьте пробел. Этот знак и является оператором пересечения.
-
После пробела укажите диапазон столбца, точно так же выделив его левой кнопкой мыши.
-
Нажмите клавишу Enter, чтобы ознакомиться с результатом. Как видно, оператор узнал, какая ячейка есть как в столбце, так и в строке, отобразив ее значение в клетке.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Подписаться
Использование оператора пересечения в формулах
Описанная выше формула с применением оператора пересечения хоть и кажется интересной, но в чистом виде практически не используется, поскольку и внешне понятно, какое значение есть в столбце и строке. Чаще этот оператор используют вместе с разными функциями при расчетах. Вы можете сделать строку по примеру =СУММ(A3:E3 C1:C5)+500, чтобы оператором пересечения найти ячейку и добавить к ней еще 500. Это довольно простая и стандартная операция.
Примерно то же самое можно сделать и с функцией ЕСЛИ. Для логического значения используется оператор пересечения и срабатывает определенный результат лжи или истины, который вы настраиваете самостоятельно при помощи аргументов функции.
Дополнительные сведения про оператор пересечения
В завершение давайте рассмотрим еще несколько интересных моментов работы с оператором, которые могут оказаться полезными при проведении расчетов в электронной таблице. Например, вы можете взять диапазон, состоящий не только из одного столбца и строки, но и из нескольких, последовательно выделив все ячейки примерно так, как это показано на скриншоте.
По умолчанию оператор пересечения не сможет вывести два или более значений, поэтому такое выделение диапазонов используется исключительно с другими функциями. Например, вы можете суммировать все значения, подходящие под пересечение.
Вместе с этим можно найти минимальное значение среди них, применив знакомую всем формулу МИН. Не забывайте только ставить пробел между столбцами и строками, поскольку это и есть знак оператора пересечения.
Если вы используете умную таблицу или для каждого столбца со строками задали свои названия, то при выделении с использованием оператора вместо стандартных обозначений ячеек вы можете вводить целые названия диапазонов. Тогда вид формулы будет примерно такой, как это показано на следующем изображении.
В заключение
На этом все, и базовые принципы работы с оператором пересечения мы рассмотрели. Надеюсь, вы сможете применить эти навыки в будущих расчетах, чтобы упростить процесс работы с электронными таблицами.
Читайте также:
- Как включить калькулятор в Microsoft Excel.
- Как работать с шаблонами в Microsoft Excel.
- Как защитить диапазон, лист и книгу в Microsoft Excel.
Содержание
- Excel пересечение двух ячеек
- Как найти пересечение двух списков столбцов в Excel?
- Значение в EXCEL на пересечении строки и столбца
- Задача
- Поиск с помощью функции ИНДЕКС()
- Поиск с помощью функции СУММПРОИЗВ()
- Поиск методом пересечения
- Пример 2
- Двумерный поиск в таблице (ВПР 2D)
- Пример 1. Найти значение по товару и городу
- Пример 2. Приблизительный двумерный поиск
- P.S. Обратная задача
- Как использовать оператор пересечения в Microsoft Excel
- Для чего нужен оператор пересечения
- Стандартное использование оператора пересечения
- Использование оператора пересечения в формулах
- Дополнительные сведения про оператор пересечения
- В заключение
Excel пересечение двух ячеек
Как найти пересечение двух списков столбцов в Excel?
Как показано на скриншоте ниже, как найти пересечение двух списков в Excel? Другими словами, как найти повторяющиеся значения в двух столбцах? В этой статье представлены два метода, которые помогут вам в этом.
Easily find intersection (same values) of two lists in Excel:
The Select Same & Defferent Cells utility of Kutools for Excel can help you to quickly find and select all intersections of two lists in Excel. See screenshot:
Kutools for Excel: with more than 200 handy Excel add-ins, free to try with no limitation in 60 days. Download the free trial Now!
Приведенная ниже формула может помочь вам найти пересечение двух списков в Excel. Пожалуйста, сделайте следующее.
1. Выберите пустой столбец, скопируйте формулу. =IF(ISERROR(MATCH(B2,$C$2:$C$9,0)),»»,B2) в панель формул и нажмите клавишу Enter. Смотрите скриншот:
Внимание: В формуле B2 — это первая ячейка первого списка, $ C $ 2: $ C $ 9 — это диапазон второго списка. Пожалуйста, измените их в зависимости от ваших потребностей.
2. Теперь обнаруживается первое пересечение, выберите его и перетащите маркер заливки вниз, чтобы получить все. Смотрите скриншот:
Если вы не хотите применять формулу, мы рекомендуем вам Выберите одинаковые и разные ячейки полезности Kutools for Excel чтобы легко найти все пересечения двух списков в Excel.
Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.
1. Нажмите Кутулс > Выбрать > Выберите одинаковые и разные ячейки.
2. в Выберите одинаковые и разные ячейки диалоговое окно, вам необходимо:
3. Затем появляется диалоговое окно, в котором указывается, сколько ячеек было выбрано, нажмите OK кнопка. И вы можете видеть, что все перекрестки выбраны и выделены в первом списке, как показано на скриншоте ниже:
Если вы хотите получить бесплатную пробную версию ( 30 -день) этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.
Office Tab — Tabbed Browsing, Editing, and Managing of Workbooks in Excel:
Office Tab brings the tabbed interface as seen in web browsers such as Google Chrome, Internet Explorer new versions and Firefox to Microsoft Excel. It will be a time-saving tool and irreplaceble in your work. See below demo:
Источник
Значение в EXCEL на пересечении строки и столбца
history 14 апреля 2013 г.
Для поиска значения на пересечении строки и столбца требуется наличие таблицы специального вида: в строке заголовков и самом левом столбце должны быть неповторяющиеся значения.
Для поиска значения на пересечении строки и столбца требуется 2 критерия: «координаты» по строке и столбцу. Для однозначного поиска требуется, чтобы в строке заголовков и самом левом столбце, по которым будет производиться поиск значений, находились неповторяющиеся значения.
Примером такой задачи может служить таблица умножения: первый множитель определяет координату в строке, а второй – в столбце, результат (произведение) – на пересечении.
Другой пример — табель учета рабочего времени: ищется дата (диапазон поиска — строка), затем сотрудник (диапазон поиска — столбец), а на их пересечении – результат (присутствовал на работе, был в отгуле или в отпуске).
Задача
Создадим таблицу продаж машин различных марок по месяцам. Выбирая марку машины и месяц, пользователь получает число проданных машин.
Для поиска значения на пересечении строки и столбца можно использовать разные подходы (см. файл примера, лист Пример1 ).
Поиск с помощью функции ИНДЕКС()
Запишем длинную, но простую для понимания формулу =ИНДЕКС($B$13:$G$21;ПОИСКПОЗ(D10;$A$13:$A$21;0);ПОИСКПОЗ(E9;$B$12:$G$12;0))
Две функции ПОИСКПОЗ() определяют номер строки и столбца для функции ИНДЕКС() . Для однозначного поиска номера строки (столбца), в этих диапазонах не должно быть повторов.
Поиск с помощью функции СУММПРОИЗВ()
Другой вариант поиска – использование функции СУММПРОИЗВ() =СУММПРОИЗВ((B12:G12=J9)*(A13:A21=I10)*(B13:G21))
Поиск методом пересечения
В EXCEL существует малоизвестный метод Пересечений , основанный на использовании именованных диапазонов . Для создания пересечения сделайте следующее:
- выделите диапазон A7:G16 (таблицу продаж вместе с заголовками);
- нажмите кнопку « Создать из выделенного фрагмента » ( Формулы/Определенные имена/ Создать из выделенного фрагмента );
- убедитесь, что стоят галочки « В строке выше » и « В столбце слева »;
- нажмите ОК.
Проверить, какие имена были созданы, можно через Диспетчер Имен ( Формулы/ Определенные имена/ Диспетчер имен ).
EXCEL создал 15 именованных диапазонов. В качестве имен использованы 6 названий месяцев и 9 марок автомобилей. Теперь произведем, собственно, поиск.
- введите в ячейки А10 и B9 два критерия: Янв и Saab (определим продажи Saab в январе)
- введите формулу =ДВССЫЛ(A10) ДВССЫЛ(B9) (между функциями ДВССЫЛ() — пробел).
- Нажмите ENTER .
При вычислении, вместо формул с ДВССЫЛ() будут подставлены, определенные ранее имена: Янв и Saab , совпадающие с критериями. Наличие пробела означает, что будет использован метод Пересечений – будет выведено значение на пересечении соответствующих именам строке и столбцу.
Разберем подробнее. В Строке формул выделите ДВССЫЛ(A10) и нажмите клавишу F9 . Получим значения соответствующего именованного диапазона Saab < 3600 ;1520;5480;4588;5336;2588>. Затем выделите ДВССЫЛ(B9) . Получим другой массив <4064:1992:812:3185:4617: 3600 :5594:4218:3637>. Метод пересечений вернет значение на пересечении строки и столбца, т.е. 3600 .
Пример 2
Второй пример — это определение зарплаты сотрудника по ведомости (см. файл примера, лист Пример2).
Выбрав Фамилию и Квартал, можно узнать зарплату.
Решение основано на использовании формул, рассмотренных в предыдущем примере.
Источник
Двумерный поиск в таблице (ВПР 2D)
Если вы знакомы с функцией ВПР (VLOOKUP) или ее горизонтальным аналогом ГПР (HLOOKUP), то должны помнить, что эта замечательные функции ищут информацию только по одному параметру, т.е. в одномерном массиве — по строке или по столбцу. А если нам необходимо выбирать данные из двумерной таблицы по совпадению сразу двух параметров — и по строке и по столбцу одновременно? Давайте рассмотрим несколько жизненных примеров таких задач и их решения.
Пример 1. Найти значение по товару и городу
Предположим, что у нас имеется вот такой двумерный массив данных по городам и товарам:
Пользователь вводит (или выбирает из выпадающих списков) в желтых ячейках нужный товар и город. В зеленой ячейке нам нужно формулой найти и вывести число из таблицы, соответствующее выбранным параметрам. Фактически, мы хотим найти значение ячейки с пересечения определенной строки и столбца в таблице. Для наглядности, разобъем задачу на три этапа.
- Во-первых, нам нужно определить номер строки, соответствующей выбранному пользователем в желтой ячейке товару. Это поможет сделать функция ПОИСКПОЗ (MATCH) из категории Ссылки и массивы (Lookup and Reference) . В частности, формула ПОИСКПОЗ(J2; A2:A10; 0) даст нам нужный результат (для Яблока это будет число 6). Первый аргумент этой функции — искомое значение (Яблоко из желтой ячейки J2), второй — диапазон ячеек, где мы ищем товар (столбец с товарами в таблице — A2:A10), третий аргумент задает тип поиска (0 — точное совпадение наименования, приблизительный поиск запрещен).
- Во-вторых, совершенно аналогичным способом мы должны определить порядковый номер столбца в таблице с нужным нам городом. Функция ПОИСКПОЗ(J3; B1:F1; 0) сделает это и выдаст, например, для Киева, выбранного пользователем в желтой ячейке J3 значение 4.
- И, наконец, в-третьих, нам нужна функция, которая умеет выдавать содержимое ячейки из таблицы по номеру строки и столбца — функция ИНДЕКС (INDEX) из той же категории Ссылки и массивы (Lookup and Reference) . Первый аргумент этой функции — диапазон ячеек (в нашем случае это вся таблица, т.е. B2:F10), второй — номер строки, третий — номер столбца (а их мы определим с помощью функций ПОИСКПОЗ).
Итого, соединяя все вышеперечисленное в одну формулу, получаем для зеленой ячейки решение:
=ИНДЕКС(B2:F10; ПОИСКПОЗ(J2;A2:A10;0) ; ПОИСКПОЗ(J3;B1:F1;0) )
или в английском варианте
Пример 2. Приблизительный двумерный поиск
Слегка модифицируем предыдущий пример. Предположим, что у нас имеется вот такая ситуация:
Идея в том, что пользователь должен ввести в желтые ячейки высоту и ширину двери для, например, шкафа, которую он хочеть заказать у компании-производителя, а в серой ячейке должна появиться ее стоимость из таблицы. Важный нюанс в том, что если пользователь вводит нестандартные значения размеров, то они должны автоматически округлиться до ближайших имеющихся в таблице и в серой ячейке должна появиться стоимость изготовления двери для этих округленных стандарных размеров.
Решение для серой ячейки будет практически полностью аналогично предыдущему примеру:
=ИНДЕКС(C7:K16; ПОИСКПОЗ(D3;B7:B16;1) ; ПОИСКПОЗ(G3;C6:K6;1) )
=INDEX(C7:K16; MATCH(D3;B7:B16;1); MATCH(G3;C6:K6;1))
Разница только в последнем аргументе обеих функций ПОИСКПОЗ (MATCH) — Типу сопоставления (здесь он равен минус 1). Это некий аналог четвертого аргумента функции ВПР (VLOOKUP) — Интервального просмотра (Range Lookup). Вообще говоря, возможных значений для него три:
- 1 — поиск ближайшего наименьшего числа, т.е. введенные пользователем размеры двери округлялись бы до ближайших наименьших подходящих размеров из таблицы. В нашем случае высота 500 округлилась бы до 450, а ширина 480 до 300, и стоимость двери была бы 135.
- -1 — поиск ближайшего наибольшего числа, т.е. нестандартная высота 500 округлялась бы до 700, а ширина 480 — до 600 и стоимость составила бы уже 462. Для бизнеса так гораздо интереснее! 🙂
- 0 — поиск точного соответствия без каких либо округлений. Используется для 100%-го совпадения искомого значения с одним из значений в таблице. Естественно, применяется при поиске текстовых параметров (как в прошлом примере), т.к. для них округление невозможно.
Важно отметить, что при использовании приблизительного поиска с округлением диапазон поиска — а значит и вся таблица — должна быть отсортирована по возрастанию (для Типа сопоставления = 1) или по убыванию (для Типа сопоставления = -1) по строчкам и по столбцам. Иначе приблизительный поиск корректно работать не будет!
Для точного поиска (Тип сопоставления = 0) сортировка не нужна и никакой роли не играет.
P.S. Обратная задача
В комментах неоднократно интересуются — а как сделать обратную операцию, т.е. определить в первом примере город и товар если мы знаем значение из таблицы? Тут потребуются две небольшие формулы массива (не забудьте ввести их с помощью сочетания клавиш Ctrl+Shift+Enter, а не обычного Enter):
Принцип их работы следующий:
- перебираем все ячейки в диапазоне B2:F10 и ищем совпадение с искомым значением (13) из ячейки J4 с помощью функции ЕСЛИ (IF)
- когда нашли совпадение, то определяем номер строки (столбца) первого элемента в таблице в этой строке (столбце) с помощью функций СТОЛБЕЦ (COLUMN) и СТРОКА (ROW)
- выдергиваем значение города или товара из таблицы с помощью функции ИНДЕКС (INDEX)
Источник
Как использовать оператор пересечения в Microsoft Excel
Оператор пересечения – один из основных операторов в Microsoft Excel, однако знаком он только небольшому количеству пользователей. В данной статье я исправлю эту ситуацию и детально расскажу о том, что это за оператор и в каких ситуациях может использоваться.
Для чего нужен оператор пересечения
Обратите внимание на следующий скриншот. На нем вы видите таблицу со столбцами и строками. Выделен столбец со строкой, и есть ячейка, в которой они пересекаются. Оператор пересечения и нужен для поиска этой ячейки. По умолчанию он выведет как раз значение, которое находится в этом месте.
Стандартное использование оператора пересечения
Для начала давайте разберемся с тем, как просто использовать оператор пересечения и вывести в пустой ячейке то самое искомое значение. Вам понадобится любая таблица, состоящая из нескольких столбцов и строк с заполненными данными. Далее остается выполнить следующие действия:
Выделите пустую ячейку для вывода результата, в ней добавьте знак = и выделите левой кнопкой мыши всю строку.
После этого поставьте пробел. Этот знак и является оператором пересечения.
После пробела укажите диапазон столбца, точно так же выделив его левой кнопкой мыши.
Нажмите клавишу Enter, чтобы ознакомиться с результатом. Как видно, оператор узнал, какая ячейка есть как в столбце, так и в строке, отобразив ее значение в клетке.
Использование оператора пересечения в формулах
Описанная выше формула с применением оператора пересечения хоть и кажется интересной, но в чистом виде практически не используется, поскольку и внешне понятно, какое значение есть в столбце и строке. Чаще этот оператор используют вместе с разными функциями при расчетах. Вы можете сделать строку по примеру =СУММ(A3:E3 C1:C5)+500, чтобы оператором пересечения найти ячейку и добавить к ней еще 500. Это довольно простая и стандартная операция.
Примерно то же самое можно сделать и с функцией ЕСЛИ. Для логического значения используется оператор пересечения и срабатывает определенный результат лжи или истины, который вы настраиваете самостоятельно при помощи аргументов функции.
Дополнительные сведения про оператор пересечения
В завершение давайте рассмотрим еще несколько интересных моментов работы с оператором, которые могут оказаться полезными при проведении расчетов в электронной таблице. Например, вы можете взять диапазон, состоящий не только из одного столбца и строки, но и из нескольких, последовательно выделив все ячейки примерно так, как это показано на скриншоте.
По умолчанию оператор пересечения не сможет вывести два или более значений, поэтому такое выделение диапазонов используется исключительно с другими функциями. Например, вы можете суммировать все значения, подходящие под пересечение.
Вместе с этим можно найти минимальное значение среди них, применив знакомую всем формулу МИН. Не забывайте только ставить пробел между столбцами и строками, поскольку это и есть знак оператора пересечения.
Если вы используете умную таблицу или для каждого столбца со строками задали свои названия, то при выделении с использованием оператора вместо стандартных обозначений ячеек вы можете вводить целые названия диапазонов. Тогда вид формулы будет примерно такой, как это показано на следующем изображении.
В заключение
На этом все, и базовые принципы работы с оператором пересечения мы рассмотрели. Надеюсь, вы сможете применить эти навыки в будущих расчетах, чтобы упростить процесс работы с электронными таблицами.
Источник
Неявное пересечение использовалось в Excel уже много лет, но мало кто заботился об этом. Теперь, когда это больше не поведение по умолчанию в Excel 365, возникает много вопросов. Этот учебник призван дать ответы.
У вас возникает ощущение, что вы знаете о своих книгах все, а затем в начале ваших формул из ниоткуда появляется символ @. Что это значит? И как именно это работает? В двух словах, это неявный оператор пересечения, который отключает новое поведение массива по умолчанию для формулы и сообщает Excel, что нужно вернуть одно значение. Для более подробной информации, пожалуйста, продолжайте читать.
Неявное пересечение в Excel означает сокращение нескольких значений до одного значения. Обычно это происходит, когда в формулу передается массив или диапазон, который должен выводить только одно значение в одной ячейке.
Неявное пересечение в Excel 2019 — 2000
В традиционном Excel неявное пересечение является поведением по умолчанию. Он выполняется в фоновом режиме для всех формул. Логика неявного пересечения выглядит следующим образом:
- Если формула возвращает одно значение, верните это значение (на самом деле неявное пересечение в этом случае ничего не делает).
- В случае диапазона используйте значение из ячейки в той же строке или столбце, что и формула.
- В случае массива используйте верхнее левое значение.
Например, при умножении двух столбцов чисел Excel выбирает только одно число из каждого столбца в той же строке, где находится формула, и выводит результат только в одну ячейку (в нашем случае D2):
=В2:В5*С2:С5
Чтобы умножить числа в других ячейках, нужно скопировать формулу вниз.
Чтобы отключить неявное пересечение, вы должны ввести формулу массива с помощью Ctrl + Shift + Enter (поэтому традиционные формулы массива иногда называют формулы СПП). Это четко указывает Excel на необходимость обработки нескольких входных значений в виде диапазонов или массивов.
В нашем случае выберите ячейки D2:D5, введите приведенную выше формулу и подтвердите ее, нажав одновременно клавиши Ctrl + Shift + Enter. Как только вы это сделаете, формула будет заключена в {фигурные скобки}, указывая на то, что это формула массива. В результате числа в каждой строке перемножаются сразу:
Неявное пересечение в Excel 365
Внедрение динамических массивов изменило поведение по умолчанию всех формул в Excel 365. Теперь любая формула, которая потенциально может давать несколько результатов, автоматически переносит их на лист. Это делает неявное пересечение ненужным, и оно больше не запускается по умолчанию. По этой причине Excel 365 иногда называют динамический массив Excel или же ДА Excel.
Здесь все диапазоны умножаются на обычную формулу, которая вводится только в самую верхнюю ячейку (D2):
=В2:В5*С2:С5
В результате получается диапазон разливов, состоящий из 4 ячеек:
Если вы хотите, чтобы формула возвращала только одно значение, вам нужно явно включить неявный перехват. Для этого они ввели специальный оператор, и в следующем разделе вы найдете полную информацию о нем.
Оператор неявного пересечения Excel — символ @
Неявный оператор пересечения был введен в Excel 365, чтобы предотвратить поведение динамического массива по умолчанию. Если вы хотите, чтобы формула возвращала только одно значение, поставьте @ перед именем функции (или перед определенным диапазоном или массивом внутри формулы), и она будет вести себя как обычная формула без массива в додинамических версиях.
Например:
=@B2:B5*@C2:C5
Примечание. Оператор неявного пересечения поддерживается только в подписках Microsoft 365. Если вы попытаетесь добавить знак @ в более старых версиях, он будет автоматически удален после завершения формулы.
Почему @ добавляется к старым формулам?
В Excel 365 вы можете заметить символ @, добавленный к некоторым вашим формулам при открытии книги, созданной в более старой версии. По большей части это делается для того, чтобы заставить формулу вести себя так же, как в исходной версии, в которой она была создана. Другими словами, если формула возвращала одно значение в более старой версии, но возвращала несколько результатов в Excel 365, она будет автоматически иметь префикс @, чтобы деактивировать поведение массива.
Обычно оператор пересечения вставляется перед функцией, которая может возвращать многоячеечные массивы или диапазоны, такие как OFFSET, INDEX или определяемые пользователем функции.
Например, следующая формула, созданная в предварительно динамическом Excel:
=ИНДЕКС(B2:C5,,F1)
примет следующий вид в динамическом массиве Excel:
=@ИНДЕКС(B2:C5,,F1)
Причина в том, что без оператора @ формула вернет все значения из C2:C5, потому что row_num аргумент функции ИНДЕКС опущен. Чтобы обеспечить согласованное поведение во всех версиях, становится очевидным ранее незаметное неявное пересечение. Пожалуйста, сравните результаты:
В случае, если функция с потенциальным многоячеечным выводом вложена в другую функцию, которая может обрабатывать массивы и выводить один результат (например, СУММ, СЧЁТ, СРЗНАЧ и т. д.), то нет причин запускать неявное пересечение, и формула переносится в динамический Excel как есть без добавления знака @. Например:
=СРЗНАЧ(ИНДЕКС(B2:C5,,F1))
Могу ли я удалить символ @ из своих формул?
Что вы можете. Excel выполняет преобразование формулы только один раз. Если оператор @ нарушает или негативно меняет поведение ваших формул, вы можете удалить @ вручную, и он больше не появится после сохранения книги.
Каковы последствия удаления оператора неявного пересечения? В зависимости от того, что возвращает часть формулы, следующая за знаком @, возможны три результата:
- Если возвращается одно значение, изменений не будет.
- Если массив возвращается, он будет распространяться на соседние ячейки.
- Если массив возвращается, но пустых ячеек недостаточно для отображения всех значений, возникает ошибка #SPILL.
Зачем использовать оператор @ в Excel 365?
Как уже упоминалось, Excel для Microsoft 365 по умолчанию обрабатывает все формулы как формулы массива, и вам не нужно нажимать Ctrl + Shift + Enter, как вы делали это в предыдущих версиях. Если вы хотите отключить поведение массива, вставьте неявный оператор пересечения.
Пример 1. Избавьтесь от #РАЗЛИВ! ошибка
Очень распространенный сценарий — предотвращение или исправление ошибок #SPILL. Если вам удобно ссылаться на целые столбцы (что вообще не очень хорошая идея, потому что тормозит Excel), но тем не менее такая формула будет нормально работать в преддинамических версиях:
=ВПР(А:А, Г:Д, 2, ЛОЖЬ)
В динамическом Excel это приведет к ошибке #SPILL, поскольку недостаточно места для отображения почти 1,05 миллиона результатов.
Добавление @ перед аргументом lookup_value решает проблему:
=ВПР(@А:А, Г:Д, 2, ЛОЖЬ)
Когда Excel предвидит, что формула может выйти за пределы рабочего листа, он предложит исправление, и вам будет разумно его принять:
Пример 2. Заставьте формулу работать правильно в старых версиях Excel
Если вы используете подписку на Microsoft 365 и делитесь своими файлами с кем-то, кто использует более старую версию, важно обеспечить согласованное поведение формулы для всех.
Предположим, вы написали эту формулу динамического массива в Excel 365:
=В2:В5*С2:С5
В более старых версиях он будет преобразован в устаревшую формулу массива CSE:
{=B2:B5*C2:C5}
и вернуть диапазон значений в обоих случаях:
Если вы хотите вывести только один результат, добавьте @ перед каждым выражением, а затем скопируйте формулу в необходимое количество ячеек (чтобы сохранить диапазоны без изменений, не забудьте заблокировать их абсолютными ссылками на ячейки):
=@$B$2:$B$5*@$C$2:$C$5
В старых версиях Excel символ @ будет автоматически удален, и формула примет обычный вид:
=$B$2:$B$5*$C$2:$C$5
Чего не следует делать, так это смешивать в одной формуле неявное пересечение и вычисление массива! Например, если вы попытаетесь ввести что-то подобное в Excel 365:
=@B2:B5*C2:C5
Вы будете уведомлены, что такая формула не поддерживается в более старых версиях:
Если вы отклоните предложенный вариант, смешанная формула будет принята и принесет некоторые результаты (хотя они могут быть не такими, как вы ожидали). Но когда вы открываете эту формулу в предварительно динамическом Excel, функция _xlfn.SINGLE появится вместо неявного оператора пересечения:
=_xlfn.SINGLE(B2:B5)*C2:C5
Когда эта формула оценивается старой версией Excel, #ИМЯ! будет возвращена ошибка.
Неявное пересечение в таблицах Excel
Вообще говоря, поведение неявного пересечения в таблицах соответствует вашей версии Excel.
В Excel 2019 и более ранних версиях вы можете ссылаться на весь столбец, и формула будет разрешаться в одну ячейку в текущей строке.
Например, эта формула успешно умножает числа в Цена а также Кол-во столбцы:
знак равно[Price]*[Qty.]
Несмотря на то, что он относится ко всем столбцам, преддинамический Excel по-прежнему работает с отдельными значениями на уровне строки.
В Excel 365 этот подход не работает, так как неявное пересечение отключено по умолчанию. Поскольку формула возвращает несколько значений, и Excel не может поместить их все в таблицу, она предложит добавить к именам столбцов префикс с символом @:
Если у вас есть опыт работы со ссылками на таблицы, этот синтаксис должен быть вам знаком — символ @ указывает, что формула будет обрабатывать значения из столбцов. Цена а также Кол-во в том же ряду.
знак равно[@Price]*[@[Qty.]]
И это будет хорошо работать во всех версиях:
Кончик. Если вы намерены использовать функцию динамического массива для вычисления данных таблицы, обязательно поместите формулу вне таблицы, поскольку динамические массивы внутри таблиц не поддерживаются.
Вот как работает неявное пересечение в Excel. Я благодарю вас за чтение и надеюсь увидеть вас в нашем блоге на следующей неделе!