Light-electric.com

IT Журнал
101 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Логическое сравнение в excel

Логические функции в Excel. Часть №1

Доброго времени суток уважаемый читатель!

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

Основной особенностью этих функций, это проверка данных на соответствие результату «ИСТИНА» или «ЛОЖЬ», то есть когда результат соответствует заданному условию, получаем итог «ИСТИНА» и «ЛОЖЬ», когда условия не выполнены. На самом деле это намного легче понять, чем описать и я думаю, что читая дальше, вы сможете понять логику работы этих функций.

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

В своем арсенале Excel содержит 7 логических функций, хотя в зависимости от версий их может быть и меньше, и больше. Найти перечень доступных функций вы можете в панели управления на вкладке «Формулы», в блоке «Библиотека функций», нажав кнопку «Логические» с выпадающем перечнем логических функций. Или с помощью мастера функций: А вот собственно и перечень логических функций, которые мы будем рассматривать в первой части этой статье:

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

Сразу скажу это одна из самых классных функций в Excel. Я ее результатами пользуюсь, где нужно и ненужно, а поэтому считаю, что изучить ее возможности необходимо любому уважающему себя человеку, который хочет показать себя как специалист финансовых дисциплин. Несмотря на кажущуюся простоту, возможности этой функции очень удивляют и приятно радуют. Для углублённого изучения ее возможностей вам поможет статья «Как используется функция ЕСЛИ в Excel с несколькими условиями».

Функция ЕСЛИ возвращает один результат в случаях, если аргумент «логическое выражение» при вычислении получает ответ «ИСТИНА» и совсем другой, если ответ «ЛОЖЬ». Функция может содержать до семи логических условий внутри себя для аргумента «_значение если истина_», а для аргумент «_значение если ложь_» умеет выполнять функции или команды дальнейшего действия (к примеру, использование функции ПЕРЕЙТИ).

Синтаксис функции:

=ЕСЛИ(_лог_выражение_,_значение_если_истина_,_значение_если_ложь_), где:

  • Логическое выражение – указывается практически любое выражение или значение, которое в процессе вычисления получает значение «ИСТИНА» или «ЛОЖЬ»;
  • Значение если истина – это значение, которое будет возвращено, если аргумент «Логическое выражение» получит результат «ИСТИНА». В случае, когда этот аргумент не указан в формуле, возвращается результат «ИСТИНА»;
  • Значение если ложь — это значение, которое будет возвращено, если аргумент «Логическое выражение» получит результат «ЛОЖЬ». В случае, когда этот аргумент опущен в формуле, возвращается результат «ЛОЖЬ».

Пример №1:

Рассмотрим усложнённый пример со многими условиями, вложенными в функцию ЕСЛИ. У нас есть персонал, которому в зависимости от стажа работы, производится доплата к ставке заработной платы. Всего будет три доплаты, стаж работы 3 года – 10%, 10 лет – 20% и 20 лет – 30%. Для получения результата и автоматического расчёта доплаты в зависимости от стажа нам нужна формула такого вида:

=ЕСЛИ(C2>=20;»30%»;ЕСЛИ(C2>=10;»20%»;ЕСЛИ(C2>=3;»10%»;»0%»))).

Пример №2:

Рассмотрим еще один сложный пример, в котором мы будем определять, и идентифицировать виды банковских карточек по их номерам. Для первого аргумента используем текстовую функцию ЛЕВСИМВ для захвата первых 4 цифр, которые и будут условием определения. Для карты «Visa Electron» установим идентификатор 1234, для карты «Maestro» — 5678 и все остальные карты будут по умолчанию «MasterCard Standard». Теперь собственно формула, которая поможет нам определить результат будет такова:

=ЕСЛИ( ЛЕВСИМВ (B14;4)= «1234»; «Visa Electron»; ЕСЛИ ( ЛЕВСИМВ (B14;4)=»5678»; «Maestro»; «MasterCard Standard»)).

Абсолютно простая логическая функция ИСТИНА, не имеет никаких аргументов и умеет возвращать всего лишь логическое значение «ИСТИНА». Имеет смысл использовать только в связке с другими функциями.

Синтаксис функции:

=ИСТИНА().

Простая функция ЛОЖЬ аналогична описываемой ранее функции ИСТИНА, но наоборот, умеет возвращать всего лишь логическое значение «ЛОЖЬ» и не имеет никаких аргументов. Её тоже необходимо использовать в тандеме с другими функциями.

Синтаксис функции:

=ЛОЖЬ().

Простая в работе и исполнении логическая функция НЕ умеет только одно, производит замену полученного логического значения своего аргумента на абсолютно противоположный, т.е. он заменяет значение «ЛОЖЬ» на «ИСТИНА» и, наоборот, в другую сторону. Использование функции НЕ, рационально применять в случаях, когда нужна 100%-ная уверенность что некое значение не будет равно некой определённой величине.

Синтаксис функции:

= НЕ(_логическое_значение_), где:

  • Логическое значение – это выражение, ссылка на ячейку или значение, которое как результат вычислений дает логическое значение «ИСТИНА» или «ЛОЖЬ». Функция НЕ при получении такого результата меняет его: «ЛОЖЬ» на «ИСТИНА» и «ИСТИНА» на «ЛОЖЬ».

Пример:

Обращаю внимание! Все логические функции в своих выражениях используют знаки сравнения «=», « », « =» или «<>», в результате чего получаются значения «ИСТИНА» и «ЛОЖЬ».

А на этом у меня пока всё, жду вас на страницах второй части статьи! Я очень надеюсь, что описанные всех логических функций в Excel в этой части были ёмкими и понятными. Буду очень благодарен за оставленные комментарии, так как это показатель читаемости и вдохновляет на написание новых статей! Делитесь с друзьями, прочитанным и ставьте лайк!

Не забудьте поблагодарить автора!

Богатство приносит не большое состояние, а скромные потребности.
Эпиктет (Epictetus)

Логические функции в программе Microsoft Excel

Среди множества различных выражений, которые применяются при работе с Microsoft Excel, следует выделить логические функции. Их применяют для указания выполнения различных условий в формулах. При этом, если сами условия могут быть довольно разнообразными, то результат логических функций может принимать всего два значения: условие выполнено (ИСТИНА) и условие не выполнено (ЛОЖЬ). Давайте подробнее разберемся, что представляют собой логические функции в Экселе.

Основные операторы

Существует несколько операторов логических функций. Среди основных следует выделить такие:

Существуют и менее распространенные логические функции.

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

Функции ИСТИНА и ЛОЖЬ

Оператор ИСТИНА принимает только определенное заданное значение. У данной функции отсутствуют аргументы, и, как правило, она практически всегда является составной частью более сложных выражений.

Оператор ЛОЖЬ, наоборот, принимает любое значение, которое не является истиной. Точно так же эта функция не имеет аргументов и входит в более сложные выражения.

Читать еще:  Проценты в excel

Функции И и ИЛИ

Функция И является связующим звеном между несколькими условиями. Только при выполнении всех условий, которые связывает данная функция, она возвращает значение ИСТИНА. Если хотя бы один аргумент сообщает значение ЛОЖЬ, то и оператор И в целом возвращает это же значение. Общий вид данной функции: =И(лог_значение1;лог_значение2;…) . Функция может включать в себя от 1 до 255 аргументов.

Функция ИЛИ, наоборот, возвращает значение ИСТИНА даже в том случае, если только один из аргументов отвечает условиям, а все остальные ложные. Её шаблон имеет следующий вид: =И(лог_значение1;лог_значение2;…) . Как и предыдущая функция, оператор ИЛИ может включать в себя от 1 до 255 условий.

Функция НЕ

В отличие от двух предыдущих операторов, функция НЕ имеет всего лишь один аргумент. Она меняет значение выражения с ИСТИНА на ЛОЖЬ в пространстве указанного аргумента. Общий синтаксис формулы выглядит следующим образом: =НЕ(лог_значение) .

Функции ЕСЛИ и ЕСЛИОШИБКА

Для более сложных конструкций используется функция ЕСЛИ. Данный оператор указывает, какое именно значение является ИСТИНА, а какое ЛОЖЬ. Его общий шаблон выглядит следующим образом: =ЕСЛИ(логическое_выражение;значение_если_истина;значение_если-ложь) . Таким образом, если условие соблюдается, то в ячейку, содержащую данную функцию, заполняют заранее указанные данные. Если условие не соблюдается, то ячейка заполняется другими данными, указанными в третьем по счету аргументе функции.

Оператор ЕСЛИОШИБКА, в случае если аргумент является истиной, возвращает в ячейку его собственное значение. Но, если аргумент ошибочный, тогда в ячейку возвращается то значение, которое указывает пользователь. Синтаксис данной функции, содержащей всего два аргумента, выглядит следующем образом: =ЕСЛИОШИБКА(значение;значение_если_ошибка) .

Функции ЕОШИБКА и ЕПУСТО

Функция ЕОШИБКА проверяет, не содержит ли определенная ячейка или диапазон ячеек ошибочные значения. Под ошибочными значениями понимаются следующие:

В зависимости от того ошибочный аргумент или нет, оператор сообщает значение ИСТИНА или ЛОЖЬ. Синтаксис данной функции следующий: = ЕОШИБКА(значение) . В роли аргумента выступает исключительно ссылка на ячейку или на массив ячеек.

Оператор ЕПУСТО делает проверку ячейки на то, пустая ли она или содержит значения. Если ячейка пустая, функция сообщает значение ИСТИНА, если ячейка содержит данные – ЛОЖЬ. Синтаксис этого оператора имеет такой вид: =ЕПУСТО(значение) . Так же, как и в предыдущем случае, аргументом выступает ссылка на ячейку или массив.

Пример применения функций

Теперь давайте рассмотрим применение некоторых из вышеперечисленных функций на конкретном примере.

Имеем список работников предприятия с положенными им заработными платами. Но, кроме того, всем работникам положена премия. Обычная премия составляет 700 рублей. Но пенсионерам и женщинам положена повышенная премия в размере 1000 рублей. Исключение составляют работники, по различным причинам проработавшие в данном месяце менее 18 дней. Им в любом случае положена только обычная премия в размере 700 рублей.

Попробуем составить формулу. Итак, у нас существует два условия, при исполнении которых положена премия в 1000 рублей – это достижение пенсионного возраста или принадлежность работника к женскому полу. При этом, к пенсионерам отнесем всех тех, кто родился ранее 1957 года. В нашем случае для первой строчки таблицы формула примет такой вид: =ЕСЛИ(ИЛИ(C4 . Но, не забываем, что обязательным условием получения повышенной премии является отработка 18 дней и более. Чтобы внедрить данное условие в нашу формулу, применим функцию НЕ: =ЕСЛИ(ИЛИ(C4 .

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

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

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

Отблагодарите автора, поделитесь статьей в социальных сетях.

Использование логических функций в Excel

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

Основные логические функции, используемые в Эксель

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

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

Для каждого из указанных выше операторов существуют аргументы (за исключением функций ИСТИНА и ЛОЖЬ) – это могут быть как цифровые или текстовые значения, так и ссылки на данные, содержащиеся в других ячейках.

Операторы ИСТИНА и ЛОЖЬ

Функция ИСТИНА не имеет собственных аргументов и практически всегда используется, как структурный компонент для других логических выражений, так как принимает одно конкретно заданное значение.

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

Операторы И и ИЛИ

Синтаксис оператора И выглядит следующим образом:

=И(лог_значение1; лог_значение2; …), возможное количество используемых аргументов – от 1 до 255.

Оператор И используется в качестве элемента-связки для нескольких условий логического выражения. Важно, чтобы все аргументы оператора имели значение ИСТИНА (если в выражении их несколько), в противном случае вся логическая цепочка будет возвращать значение ЛОЖЬ.

Синтаксис оператора ИЛИ:

=ИЛИ(лог_значение1; лог_значение2; …), возможное количество используемых аргументов – от 1 до 255.

В отличие от И, функция ИЛИ будет возвращать значение ИСТИНА даже в случае, когда хотя бы один из используемых аргументов ему соответствует, а все остальные – ложные.

Оператор НЕ

Синтаксис функции НЕ: =НЕ(лог_значение).

Количество аргументов оператора НЕ – всегда один. Соответственно, результат функции (ИСТИНА/ЛОЖЬ) полностью зависит только от значения аргумента.

Операторы ЕСЛИ и ЕСЛИОШИБКА

Общий синтаксис функции ЕСЛИ представляет собой конструкцию:

=ЕСЛИ(логическое_выражение;значение_если_истина;значение_если-ложь).

Оператор ЕСЛИ используется для построения сложных развернутых логических цепочек. Суть функции – в проверке внесенного в качестве логического выражения условия. Если условие выполняется, и оно истинно, то в качестве результата функции возвращается одно выражение, если же логическое выражение ложно, то в качестве результата функции возвращается другое условие.

Синтаксис оператора ЕСЛИОШИБКА имеет вид:

=ЕСЛИОШИБКА(значение;значение_если_ошибка).

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

Операторы ЕОШИБКА и ЕПУСТО

Оператор ЕОШИБКА имеет следующую структуру:

Читать еще:  Найти и удалить пустые строки excel

=ЕОШИБКА(значение)

Он позволяет осуществить проверку корректности уже заполненных ячеек (одной или диапазона), и, если ячейка некорректно заполнена, возвращает результат ИСТИНА, в противном случае – ЛОЖЬ.

Примеры значений в некорректно заполненных ячейках:

Аргумент функции – адрес конкретной ячейки или ссылка на диапазон ячеек.

Формула функции ЕПУСТО выглядит следующим образом:

=ЕПУСТО(значение)

Функционал оператора проверяет ячейку или диапазон ячеек и возвращает ИСТИНА, если в ячейке/диапазоне ячеек нет данных, и ЛОЖЬ, если в ячейке/диапазоне ячеек присутствуют данные. Аргумент функции – адрес конкретной ячейки или ссылка на диапазон ячеек.

Практический пример использования логических функций

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

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

Нам необходимо произвести расчет премии. Ключевые условия, от которых зависит размер премии:

  • величина обычной премии, которую получат все сотрудники без исключения – 3 000 руб.;
  • сотрудницам женского пола положена повышенная премия – 7 000 руб.;
  • молодым сотрудникам (младше 1984 г. рождения) положена повышенная премия – 7 000 руб.;

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

  1. Встаем в первую ячейку столбца, в которой хотим посчитать размеры премий и щелкаем кнопку “Вставить функцию” (слева от сроки формул).
  2. В открывшемся Мастере функций выбираем категорию “Логические”, затем в предложенном перечне операторов кликаем по строке “ЕСЛИ” и жмем OK.
  3. Теперь нам нужно задать аргументы функции. Так как у нас не одно, а два условия получения повышенной премии, причем нужно, чтобы выполнялось хотя бы одно из них, чтобы задать логическое выражение, воспользуемся функцией ИЛИ. Находясь в поле для ввода значения аргумента “Лог_выражение” кликаем в основной рабочей области книги на небольшую стрелку вниз, расположенную в левой верхней части окна программы, где обычно отображается адрес ячейки. В открывшемся списке функций выбираем оператор ИЛИ, если он представлен в перечне (или можно кликнуть на пункт “Другие функции” и выбрать его в новом окне Мастера функций, как мы изначально сделали для выбора оператора ЕСЛИ).
  4. Мы переключимся в окно аргументов функци ИЛИ. Здесь задаем наши условия получения премии в 7000 руб.:
    • год рождения позже 1984 года;
    • пол – женский;
  5. Теперь обращаем внимание на строку формул. Кликаем в ней на название первоначального оператора ЕСЛИ, чтобы переключиться в аргументы этой функции.
  6. Заполняем аргументы функции и щелкаем OK:
    • в значении “Истина” пишем цифру 7000;
    • в значении “Ложь” указываем цифру 3000;
  7. Результат работы логических операторов отобразится в первой ячейке столбца, которую мы выбрали. Как мы можем видеть, окончательный вид формулы выглядит следующим образом:
    =ЕСЛИ(ИЛИ(C2>1984;D2=»жен.»);7000;3000) .
    Кстати, вместо использования Мастера функций можно было вручную составить и прописать данную формулу в требуемой ячейке.
  8. Чтобы рассчитать премию для всех сотрудников, воспользуемся Маркером заполнения. Наведем курсор на правый нижний угол ячейки с формулой. После того, как курсор примет форму черного крестика (это и есть Маркер заполнения), зажимаем левую кнопку мыши и протягиваем выделение вниз, до последней ячейки столбца.
  9. Все готово. Благодаря логическим операторам мы получили заполненные данные для столбца с премиями.

Заключение

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

Поиск отличий в двух списках

Типовая задача, возникающая периодически перед каждым пользователем 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 для сравнения двух таблиц — 4 способа

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

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

Итак, вот наши исходные данные.

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

Читать еще:  Метод автозаполнения в excel

Для этого используем несколько способов.

  1. При помощи функции ВПР для каждого товара из прайс-листа №2 будем искать цену в первом прайс-листе и выводить ее рядом с новой. Так легче будет определить различия.
  2. Построим сводную таблицу по данным обоих прайс-листов, и там эти отличия увидим.
  3. Используем стандартную операцию сравнения.
  4. Применим формулу массива.

1. Используем ВПР, чтобы сравнить две таблицы.

Создадим именованный диапазон B4:C19 и назовем его «прайс1». Так нам будет проще ссылаться на первоначальные данные.

Добавим к новым данным еще одну колонку и назовем ее «Цена старая». Для каждого наименования из прайс-листа №2 найдем соответствующую ему цену в №1.

В Н4 вводим формулу

и копируем ее вниз по столбцу.

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

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

Для этого используем функцию ЕСЛИОШИБКА и вместо #Н/Д выведем ноль.

Изменим нашу формулу:

Теперь мы можем рассчитать отклонения новой цены от старой.

Можно показать результаты сравнения двух таблиц с использованием ВПР более наглядно и красиво. Давайте результаты сравнения вынесем отдельно.

Согласитесь, что такое сравнение выглядит гораздо аккуратнее и нагляднее.

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

То есть, ключевым является выражение ЕСЛИОШИБКА(ВПР(F4;прайс1;2;0);0).

Если найденное значение равно «новой» цене из ячейки G4, то выводим пустой пробел “”.

Значения смежных ячеек привязаны к этому результату.

Если ячейка J4 пуста, тогда ничего не выводим и в остальных:

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

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

То есть, сравнивать придется в двух направлениях.

Согласитесь, не всегда хочется делать двойную работу.

2. Сравнение при помощи сводной таблицы.

Поскольку структура сравниваемых данных одинакова, то мы можем объединить их. Чтобы различить, откуда взяты какие значения, добавьте еще один столбец и укажите там источник данных – прайс1 или прайс2.

Используя наш предыдущий пример, это можно сделать следующим образом:

Теперь через меню Вставка-Сводная таблица создадим свод, можно на этом же листе для наглядности.

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

Чтобы не мешали, итоги по строкам и столбцам можно убрать. Для этого используйте вкладку Конструктор – Общие итоги – Отключить итоги для строк и столбцов.

Это еще один пример того, что у функции ВПР есть весьма достойные альтернативные варианты во многих случаях.

Главный недостаток здесь – данные нужно предварительно подготовить, объединив их в единый массив.

Следует также отметить, что с большими объемами данных сводные таблицы умеют работать гораздо быстрее, чем ВПР.

3. Стандартное сравнение.

Это самые простой и элементарный способ сравнить два столбца Excel на совпадения. Работать таким образом возможно как с числовыми значениями, так и с текстовыми.

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

Для примера сравним два прайса, записав в столбце I условие совпадения цены

При равенстве мы получим ответ «ИСТИНА», а если совпадения нет, будет «ЛОЖЬ». Копируем из I4 вниз по столбцу.

Этот способ сравнения таблиц – самый элементарный, поэтому останавливаться на нем более не будем.

4. Использование формул массива вместе с ВПР.

Здесь все гораздо сложнее. Вновь вернемся к нашим исходным данным и разместим списки товаров и цен на двух листах рабочей книги: «Прайс1» и «Прайс2».

Создадим из наименований товаров в каждой из таблиц именованный диапазон, как это показано на рисунке.

Назовем их соответственно «прайс_1» и «прайс_2». Так нам легче будет разбираться в формулах.

Результаты сравнения таблиц вынесем также на отдельный лист «Сравнение».

В ячейке A5 запишем формулу

=ЕСЛИОШИБКА(ЕСЛИОШИБКА(ИНДЕКС(прайс_1; ПОИСКПОЗ(0;СЧЁТЕСЛИ(A$4:$A4;прайс_1);0)); ИНДЕКС(прайс_2;ПОИСКПОЗ(0;СЧЁТЕСЛИ(A$4:$A4;прайс_2);0)));»»)

Поскольку это формула массива, то не забудьте завершить ее ввод комбинацией клавиш Ctrl+Shift+Enter.

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

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

Функция ПОИСКПОЗ вычисляет номер позиции этого уникального значения и передает его в функцию ИНДЕКС, которая, в свою очередь, по номеру позиции извлекает значение из массива и записывает его в ячейку.

Поскольку это формула массива, то мы последовательно проходим по всему списку от начала до конца, повторяя все эти операции.

Если первая таблица закончилась, то возникает ошибка. ЕСЛИОШИБКА реагирует на это и начинает таким же образом перебирать значения второй таблицы. Когда и там возникает ошибка, то возвращается пустая строка “”.

Скопируйте эту формулу по столбцу вниз. Список уникальных значений готов.

Затем добавим еще два столбца, в которых при помощи функции ВПР запишем результат сравнения двух таблиц по каждому наименованию товара.

Не забудьте, что это тоже формула массива (Ctrl+Shift+Enter).

Можно для наглядности выделить несовпадения цветом, используя условное форматирование.

Напомним, что для этого надо использовать меню Главная – Условное форматирование – Правила выделения ячеек – Текст содержит…

Ну и если значение существует в таблице, то логично было бы его вывести в таблице сравнения.

Заменим в нашей формуле значение «Есть» на функцию ВПР:

В итоге наше формула преобразуется к виду:

Аналогично в С5 :

Напомним, что на листах Прайс1 и Прайс2 находятся наши сравниваемые таблицы.

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

0 0 голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты