Формула ВПР в Excel — 22 факта, которые нужно знать.
В процессе работы в Excel часто возникает задача извлечения нужных данных из рабочих таблиц. Для этой цели в Excel предусмотрена формула ВПР (VLOOKUP в английском варианте). И хотя ВПР относительно проста в использовании даже для начинающих, есть много вещей, которые могут здесь пойти не так.
Одна из причин заключается в том, что имеется существенный недостаток: по умолчанию предполагается, что вам достаточно не точного, а приблизительного соответствия при поиске. Что, скорее всего, не соответствует вашим пожеланиям. Это может привести к тому, что результаты расчетов выглядят совершенно нормально, даже если они совершенно ошибочны. Поверьте, это НЕ то, что вы хотите объяснить своему боссу, после того, как он уже отправил вашу таблицу руководству 🙂
Читайте далее и узнайте, как справиться с этой задачей. Прочтите другие советы по оптимизации работы. Особое внимание мы уделим ошибкам, возникающим при использовании формулы ВПР, а также приёмам, которые позволят сделать её использование простым и вместе с тем эффективным. Также мы разберём несколько случаев выбора и поиска данных, в которых продемонстрированы альтернативные методики, позволяющие существенно расширить стандартные возможности Excel.
Итак, какие особенности использования функции ВПР в Excel нужно учитывать?
1. Как расшифровывается ВПР в Excel?
Запомнить назначение формулы несложно: ВПР (VLOOKUP) переводится как сокращение «Вертикальный ПРосмотр» или на английском — “Vertical Look Up”.
Такая расшифровка аббревиатуры ВПР указывает, что она последовательно просматривает содержимое определенного диапазона по вертикали и ищет нужное нам значение. Это одна из самых часто используемых функций отбора данных.
Термин «вертикальный», означает, что показатели в таблице должны быть расположены вертикально, а данные — по строкам. А для горизонтально структурированных данных используется ГПР (HLOOKUP на английском). Как вы, думаю, догадываетесь, ГПР расшифровывается как «горизонтальный просмотр». В общем, то же самое действие, но по горизонтали.
2. Что делает ВПР?
Она возвращает значение из таблицы как результат поиска другого, связанного с ним значения этой же таблицы.
Для этого она находит интересующее нас содержимое в первом столбце и возвращает (то есть показывает нам в ответ на наш запрос) соответствующие данные из ячейки, находящейся на пересечении строки с найденным значением и указанного нами столбца.
Необходимо, чтобы таблица была создана таким образом, чтобы значения поиска располагались в крайнем левом столбце. Скажем, названия товаров. Данные, которые вы хотите получить (результирующие значения), могут быть записаны в любом месте, находящемся правее. А правее в этой таблице могут значиться артикул товара, его вес, цена, количество и т.д. Мы движемся по первому столбцу сверху вниз, и как только находим что-то подходящее, то останавливаемся на этой строке и берем данные из какого-то из столбцов, находящихся правее. Нужно только указать, из какого по счету.
3. Для чего используется ВПР?
Эти действия подобны розыску нужного номера в телефонном справочнике. Для этого вы сначала листаете справочник, чтобы обнаружить искомую фамилию и, только обнаружив ее, получаете номер телефона. Или же вы просматриваете прайс-лист, и напротив нужного товара видите его цену.
Таким образом, ВПР нужна, чтобы найти в Экселе определенную информацию в одной таблице и вставить ее в определенное место в другую.
Еще раз сделаем важное замечание: поиск всегда происходит в первом (крайнем левом) столбце.
Именно это ограничение и не позволяет считать ее универсальным решением. Но все же возможности применения очень широки.
Синтаксис ВПР позволят нам применять ее для очень большого круга задач, при котором необходимо найти и вернуть определённое значение.
Мы начнем с самого простого и постепенно будем рассматривать все более сложные способы ее использования.
4. Как расшифровываются параметры ВПР?
Чтобы лучше понять, что такое ВПР в Excel, давайте для начала просто попробуем создать ее на нашем рабочем листе.
Устанавливаем курсор в нужную ячейку, в которую нужно вставить цену из прайс-листа по определенному товару. Нажимаем на значок возле строки формул и в категории «Ссылки и массивы» находим ВПР.

Либо просто ставим «=» и начинаем писать название. И тут же появляется выпадающий список подходящих функций. Выбираем нужную.
Затем в открывшемся окне заполняем все параметры. Их вы видите на рисунке выше.
ВПР(искомое; таблица; номер_столбца; параметр_просмотра)
- Искомое — то, что ищем.
- Таблица — диапазон ячеек, в котором ищем и из которого затем извлекаем данные.
- Номер_столбца — номер столбца диапазона, из которого возвращаются данные, если значение в первом столбце данной строки совпадает с аргументом искомое_ значение.
- Интервальный_просмотр — необязательный, но очень важный логический аргумент. О нем мы поговорим ниже.
5. ВПР имеет два режима поиска.
Четвертый параметр «интервальный просмотр» позволяет задать режим сравнения, в котором нужно работать – точный или приблизительный. Это логический параметр, то есть для него возможно 2 варианта:
- 0 или ЛОЖЬ – интервальный просмотр выключен (ищем точное соответствие)
- 1 или ИСТИНА – интервальный просмотр включен (достаточно приблизительного)
Если этот параметр — ЛОЖЬ, то ищется точное равенство в первом столбце с аргументом «искомое». Если же такого нет, возвращается ошибка #Н/Д. Точный режим нужен, когда вы хотите найти информацию, основанную на каком-то уникальном ключе. Скажем, информацию о товаре — по коду товара, или данные фильма по его названию, человека — по фамилии.
Если он равен ИСТИНА или вовсе пропущен, то допускается неточное совпадение в данных отсортированной таблицы с аргументом «искомое». То есть нам нужно «лучшее соответствие», «как можно самое близкое». Возможно, вы просматриваете почтовые тарифы по весу посылки, ищете налоговую ставку на основе дохода, или определяете скидку на основе ежемесячного объема продаж. В этих случаях вы, скорее всего, не найдете именно ваш вес либо точную цифру вашего дохода. А если точного нет, то принимается ближайшее подходящее значение.
Обратите внимание, что при этом предполагается, что наш перечень отсортирован по столбцу поиска.
6. Внимание: неточный поиск включен по умолчанию!
К сожалению, четвертый аргумент является необязательным и по умолчанию имеет значение ИСТИНА. Это означает, что программа ищет не именно ваше, а просто похожее значение по умолчанию, даже если вы указали только 3 аргумента.
Если аргумент используется ЛОЖЬ (или ноль), то сортировка не обязательна, поскольку ищется точное соответствие.
Это часто создает проблемы, потому что многие люди невольно оставляют ВПР в режиме по умолчанию, забывают точно указать, как именно они хотят искать. А это может привести к неверному результату, если в данных не было сортировки. То есть, программа обнаружит первое подходящее значение и прекратит поиск. Допустим, мы ищем «апельсин», а первым в списке числится «банан». Эксель решит, что после слова на букву Б нет смысла искать апельсин, ведь список должен быть отсортирован по алфавиту. А если вы не сделали сортировку, то ваш апельсин вполне может находиться где-то ниже в списке. Но найти его уже не удастся. Результат — ошибка в заполнении таблицы с товарами и ценами.
Чтобы избежать этой проблемы, обязательно используйте ЛОЖЬ или ноль в качестве 4-го аргумента, когда нужен именно точный поиск.
7. Для приблизительного поиска данные должны быть отсортированы.
Если аргумент интервальный_просмотр равен ИСТИНА или опущен, то для правильной работы данные должны быть упорядоченны по возрастанию. Сортировка производится по тому столбцу, в котором ищем, то есть по первому. Если сортировку не сделать, то как только будет найдено значение большее, чем искомое, то процесс будет прекращен, несмотря на то, что ответ будет находиться чуть ниже.
Если ваш критерий начинается с буквы “A” (апельсин), а в начале списка находится слово, начинающееся с буквы “C” (допустим, сливы), то, оценив это, Эксель решит, что если встретилась буква “C”, то в списке букву “A” дальше искать бессмысленно. Работа остановится и будет возвращена ошибка #Н/Д (#N/A в англоязычной версии), несмотря на то, что правильное наименование в вашем списке было, но чуть ниже. Но вы об этом даже не узнаете.
Может случиться и другое – будет найден товар с похожим названием, сотрудник с похожей фамилией. В случае, если вы ищете конкретного человека либо конкретный товар, вряд ли вас устроит такой приблизительный поиск. Но самое плохое заключается в том, что вы не узнаете о том, что найдено просто первое похожее. А это может привести к ошибкам в принятии решений на основе ваших расчетов.
Также имейте в виду, что иногда текстовые данные могут выглядеть отсортированными, даже если это не так. Ведь в строке могут встречаться пробелы в конце, буквы русского алфавита заменены аналогичными по написанию английскими и т.д. Визуально вы определить это вряд ли сможете. Мы расскажем вам в отдельной статье, как решить эту проблему.
8. ВПР ищет только справа.
Возможно, самым большим ограничением ВПР является то, что она может искать только вправо от ключевого столбца.
Это означает, что вы сможете получить данные только из колонок, находящихся справа от первого столбца. Когда значения поиска находятся в первом (крайнем левом) столбце, это ограничение не имеет большого значения, поскольку все остальные уже находятся справа. Однако, если область поиска находится внутри таблицы, вы сможете искать значения только справа от неё. Вам также нужно будет в качестве источника данных брать не всю таблицу, а только ее часть, которая начинается с области поиска.
Впрочем, это ограничение можно преодолеть, о чем мы также вам расскажем. Читайте подробнее: 4 способа, как сделать левый ВПР в Excel.
9. ВПР пригодится, чтобы объединять данные из разных таблиц.
Типичный случай использования этого замечательного инструмента — объединение данных из двух или более таблиц. Предположим, у вас есть данные заказа в одной, а информация о цене — в другой, и вы хотите перенести цену товаров в таблицу заказов для расчета их точной стоимости.
Поскольку наименование товара имеется в обеих таблицах, то вы можете использовать его в качестве ключа поиска, чтобы получить нужную цену.

Обратите также внимание, что даже точный поиск можно сделать немного приблизительным, используя знаки подстановки * и ?. Напомню, что знак вопроса заменяет собой любой один символ, а звездочка — любое количество знаков (в том числе и ноль). Таким вот образом мы обнаружили в перечне товаров персики, записав в условии поиска «*»&»персики»&»*» или же «*»&D2&»*».
10. Может помочь классифицировать данные.
Если вам когда-либо понадобится применить классифицировать данные, то есть разделить их на группы по каким-то признакам, вы можете легко сделать это, используя таблицу, которая выступает в качестве «ключа» для назначения этих признаков.
Классическим случаем являются оценки, где вам нужно определить результат на основе набранных баллов:

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

12. Именованные диапазоны облегчают понимание формул и еще больше упрощают работу.
Абсолютные ссылки выглядят довольно некрасиво и не очень понятно и наглядно. Поэтому можно сделать ваши расчёты намного чище и проще для понимания, заменив абсолютные ссылки именованными диапазонами. И никакие возможные изменения на вашем листе Excel не смогут их «испортить».
Копировать и переносить их также можно без проблем.
В приведенном выше примере с данными о сотрудниках вы можете назвать входную ячейку B2 «фамилия», а затем выделить все ячейки с информацией и назвать диапазон B5:F100 как «ДанныеСлужащего». Затем перепишите свою формулу в C2 следующим образом:

Сравните сами — насколько понятнее стал расчет из совета №12 по сравнению с №11.
13. Вставка столбца может «сломать» ваши вычисления.
Если вы вставите дополнительную колонку внутрь таблицы, из которой вы извлекаете данные, то ваши расчеты могут «сломаться». Дело в том, что в результате изменятся порядковые номера некоторых колонок с данными. А вы по-прежнему ссылаетесь на старые номера. В результате извлекать данные вы уже будете не из тех адресов.
Здесь вы видите результаты для отдела, когда код сотрудника и даты стали неверными, когда был вставлен новый столбец D между именем и отделом. Имя же человека по-прежнему было взято правильное, потому что находится слева от места вставки.
Чтобы избежать этой проблемы, вы можете рассчитать и использовать меняющийся индекс столбца, как описано в следующих двух советах.
14. Индекс столбца можно рассчитать автоматически
Вы можете использовать функцию СТОЛБЕЦ() для генерации динамических индексов. Если вы получаете данные из последовательных колонок, этот трюк позволяет настроить одну первую формулу ВПР, а затем просто скопировать ее, не меняя ничего руками.
Посмотрите, как мы можем использовать функцию СТОЛБЕЦ (COLUMN в английском варианте) для создания динамического индекса. Для первой формулы в ячейке C3 нам нужен номер столбца 2. Поэтому запишем:
Поскольку столбец C является третьим на листе, поэтому нам просто нужно вычесть 1 и получить 2.
Далее просто скопируйте из C3 в D3, E3, F3.
15. Используйте ВПР + ПОИСКПОЗ для полностью динамического индекса столбца
Усовершенствовав предыдущий совет, вы можете использовать ПОИСКПОЗ для определения позиции столбца и возврата полностью динамического его индекса (порядкового номера).
Иногда это называется двусторонним поиском, поскольку вы просматриваете как по вертикали, так и по горизонтали.
Пригодиться это может при вычислении продаж для продавца в конкретном месяце или выборе цены на конкретный продукт от конкретного поставщика.
Предположим, что у вас есть продажи за месяц, с разбивкой по менеджерам.
ВПР может легко найти нужного сотрудника, но у нее нет возможности автоматически обрабатывать еще и название месяца. Хитрость заключается в том, чтобы использовать функцию ПОИСКПОЗ вместо статического индекса. С ее помощью мы вычислим номер нужной нам колонки.
При этом давайте еще попробуем использовать именованные диапазоны. Так нам будет проще разобраться.
Итак, A7:D17 присвоим имя «данные». A6:D6 назовем «месяц».
В результете в G8 мы можем записать:

Примечание: подобный двусторонний поиск с помощью ИНДЕКС и ПОИСКПОЗ, который предлагает большую гибкость и лучшую производительность для больших наборов данных, мы рассмотрим в дальнейшем: Вычисление номера столбца для извлечения данных в ВПР.
16. Можно использовать символы подстановки для определения частичного соответствия.
Каждый раз, когда вы используете ВПР в режиме точного поиска, у вас есть возможность использовать подстановочные знаки в поисковом значении. Это может показаться нелогичным, но эти знаки позволяют найти точное совпадение на основе частичного совпадения 🙂
Если аргумент «искомое» является текстом и интервальный_просмотр имеет значение ЛОЖЬ, то для обнаружения точного совпадения можно использовать символы подстановки * и ?.
- * (звездочка) – любое количество любых символов (в том числе и их полное отсутствие)
- ? (вопросительный знак) – один любой символ.
Но будьте внимательны с этими знаками. Как только будет найдено что-то подходящее, дальше искать уже не будет.

Они дают вам простой способ создать «ленивый поиск», но они также позволяют ошибиться.
17. Вместо ошибки #Н/Д можно показать любое сообщение
В режиме точного совпадения ВПР отобразит ошибку #Н/Д, если ничего не найдено. С одной стороны, это полезно, потому что оно однозначно говорит вам, что нет подходящих данных.
Иногда это не очень удобно, поскольку такие ошибки #Н/Д потом порождают новые ошибки при попытке рассчитать сумму, попадают в распечатку и т.д. Можно легко перехватить их и заменить на любое другое подходящее значение (скажем, на ноль) с помощью функции ЕСЛИОШИБКА (IFERROR).

Далее мы рассмотрим обработку ошибок более подробно. Читайте: Почему не работает ВПР?
18. Числа, записанные как текст, могут стать причиной ошибки.
Иногда таблица, с которой вы работаете, может содержать числа, введенные в виде текста. И если вы ищете именно число, то совпадений не обнаружите.

В этом случае артикул 99023 записан в одном случае как текст, в другом – как число. Поэтому и видим ошибку #Н/Д.
Чтобы решить эту проблему, необходимо убедиться, что критерий поиска и первая колонка имеют одинаковый тип данных (либо оба числа, либо оба текста).
Один из способов сделать это — преобразовать значения в диапазоне поиска в числа. Простой способ сделать это — прибавить ноль к каждому из них с помощью инструмента специальной вставки.
И наоборот, можно преобразовать критерий поиска в текст, присоединяя пустой пробел («») следующим образом:
Если вы не уверены, когда у вас будут цифры, а когда будет текст, вы можете использовать оба варианта, заключив ВПР в ЕСЛИОШИБКА и написав выражение для обработки обоих случаев:
А вообще об ошибках мы будем говорить в отдельной статье: ВПР с функцией ЕСЛИОШИБКА.
19. ВПР нужна для замены вложенных операторов ЕСЛИ.
Одним из наиболее интересных применений ВПР является замена вложенных операторов ЕСЛИ. Наверняка вы когда-либо создавали серию вложенных как матрешки друг в друга условий и заметили, что они работают нормально, но требуют большого количества скобок. Запутаться и сделать логическую ошибку тут очень легко.
Обычное использование вложенных ЕСЛИ — это расчет процента скидки или уровня налоговой ставки на основе соответствующей шкалы.
В приведенном ниже скриншоте вы можете сравнить использование вложенной ЕСЛИ и то, что можно сделать при помощи функции ВПР.

Полная вложенная формула ЕСЛИ выглядит следующим образом:
Это прекрасно работает, но учтите, что логика и шкала оценки вставляются прямо в выражение. Если шкала по какой-либо причине изменится, вам нужно будет аккуратно изменить его, а затем, возможно, скопировать куда необходимо.
С ВПР все гораздо проще. Все, что вам нужно сделать, это убедиться, что список интервалов оценки правильно настроен, то есть отсортирован в порядке возрастания.
Обратите внимание, что используется интервальный (неточный) поиск.
Приятным бонусом этого подхода является то, что логика и оценки записаны прямо на лист Excel. Если что-то изменится, вы можете просто поправить критери границ дохода, а редактирование самого выражения не требуется.
20. Можно использовать только один критерий.
ВПР может искать только на основе одного критерия, который указывается в качестве значения для поиска в первом столбце (предназначенном для поиска).
Это означает, что вы не можете легко сделать такие вещи, как поиск сотрудника с фамилией «Петров» в «Бухгалтерии» или поиск сотрудника на основе имени и фамилии, если они записаны в отдельных столбиках.
Однако существуют способы преодоления этого ограничения. Одним из простых обходных путей является создание вспомогательного столбца, который объединяет значения из разных колонок для создания новых значений поиска.
Об этом и других способах борьбы с этим ограничением читайте на нашем сайте в специальных инструкциях: ВПР с несколькими условиями: 5 примеров и Поиск ВПР нескольких значений по нескольким условиям.
21. Два ВПР быстрее, чем один.
Это может показаться совершенно невероятным, но когда у вас большой набор данных и вам необходимо найти точное совпадение, вы можете значительно ускорить вычисления, добавив еще один ВПР в формулу!
Предыстория: представьте, что у вас много данных о заказах, скажем, более 10000 записей, и ВПР нужна для поиска общей суммы заказа на основе идентификатора заказа. Итак, вы используете что-то вроде этого:
То есть, мы ищем точное совпадение. Если номер заказа не будет найден, то получим ошибку #Н/Д.
Проблема в том, что точные совпадения действительно ищутся медленно, потому что Excel должен перебирать последовательно через все значения, пока не найдет искомое (или нет).
И наоборот, приблизительные совпадения молниеносны, потому что Excel может выполнять то, что называется бинарным поиском.
Однако проблема с этим двоичным поиском состоит в том, что Excel может возвращать неправильный результат, когда номер заказа не найден. Он просто возьмет наиболее похожий и близкий, что вряд ли вас устроит. Хуже того, ответ может выглядеть совершенно нормально, поэтому ошибку очень сложно обнаружить.
Решение состоит в том, чтобы использовать ВПР дважды, оба раза в режиме приблизительного соответствия. Первый раз просто проверяем, что значение действительно существует. Если это так, второй ВПР запускается (опять же, в режиме приблизительного соответствия), чтобы получить нужные данные. Если нет, вы можете вернуть любую фразу, которой вы хотите указать, что результат не был найден.
Окончательное выражение выглядит так:
= ЕСЛИ(ВПР(заказ_ID, заказ_данные, 1,ИСТИНА)=заказ_ID; ВПР(заказ_ID,заказ_данные,5,ИСТИНА);»Не найдено»)
То есть, мы сначала ищем и извлекаем номер заказа. И если результат этого поиска точно совпадает с критерием, повторяем еще раз, но теперь уже извлекаем именно сумму заказа.
Примечание: ваши данные должны быть отсортированы, чтобы использовать этот способ.
22. ИНДЕКС и ПОИСКПОЗ могут больше и лучше, чем ВПР.
Если вы будете читать о работе в Excel, то вы, вероятно, столкнетесь с дебатами «ВПР или ИНДЕКС+ПОИСКПОЗ ?». Спор может быть на удивление горячим 🙂
Суть в следующем: ИНДЕКС+ПОИСКПОЗ может делать все, что может делать ВПР (и ГПР), с гораздо большей гибкостью, но за счет немного большей сложности.
Таким образом, те, кто поддерживает ИНДЕКС и ПОИСКПОЗ, будут утверждать (и очень разумно), что вы могли бы также начать их изучать, так как в итоге это дает вам лучший набор инструментов.
Формула ВПР в Excel для сравнения двух таблиц — 4 способа
Сравнение таблиц – это задача, которую в Excel приходится довольно часто решать. Чтобы проверить, имеется ли значение из первой таблицы во второй, можно использовать формулы поиска, например, ВПР.
К примеру, у нас есть старый прайс-лист и его новая версия. Нужно просмотреть, цены на какие товары изменились и на сколько.
Давайте для сравнения этих двух таблиц попробуем использовать функцию ВПР. Но отметим при этом, что существуют и другие альтернативные варианты сравнения таблиц, на которых мы также остановимся.
Итак, вот наши исходные данные.

По количеству строк сразу заметно, что во втором прайсе произошли какие-то изменения среди товаров. Да и цены на отдельные позиции также поменялись. Давайте сравним таблицы, попробуем определить изменения и представить их наиболее наглядно.
Для этого используем несколько способов.
- При помощи функции ВПР для каждого товара из прайс-листа №2 будем искать цену в первом прайс-листе и выводить ее рядом с новой. Так легче будет определить различия.
- Построим сводную таблицу по данным обоих прайс-листов, и там эти отличия увидим.
- Используем стандартную операцию сравнения.
- Применим формулу массива.
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 находятся наши сравниваемые таблицы.
Для сравнения двух таблиц вы можете выбрать любой из этих методов исходя из собственных предпочтений.
Функция ВПР в Excel: пошаговая инструкция с 5 примерами
ВПР — это функция Excel для поиска и извлечения данных из определенного столбца в таблице. Она поддерживает приблизительное и точное сопоставление, а также подстановочные знаки (* и ?). Значения поиска должны отображаться в первом столбце таблицы, а столбцы поиска находятся правее.
Давайте теперь рассмотрим, как сделать поиск с ВПР и как она работает. Ниже смотрите примеры ее применения в формулах Excel.
Как сделать ВПР в Excel: понятная пошаговая инструкция.
Для начала на простом примере разберем, как работает функция ВПР в Excel. Предположим, у нас есть две таблицы. Первая – это прайс-лист с наименованиями и ценами. Вторая – это заказ на покупку некоторых из этих товаров. Искать в прайс листе нужный товар и руками вписывать в заказ его цену – занятие очень утомительное. Ведь прайс с ценами может насчитывать сотни строк. Нам необходимо сделать всё автоматически.
Нам необходимо обнаружить интересующее нас наименование в первом столбце и возвратить (то есть показать в ответ на наш запрос) содержимое из желаемого столбца той же строки, где находится наименование.
Наш прайс-лист расположен в столбцах А и В. Список покупок – в E-H. Допустим, первая позиция в списке покупок – бананы. Нам нужно в столбце A, где указаны все наименования, найти этот товар, затем его цену поместить в ячейку G2.

Для этого в G2 запишем следующую формулу:
А теперь разберем подробно, как сделать ВПР.

- Мы берем значение из E2.
- Ищем точное совпадение (поскольку четвертым параметром указан 0) в диапазоне $A$2:$B$7 в первой его колонке (крайней левой). Обратите внимание, что лучше сразу же использовать абсолютные ссылки на прайс-лист, чтобы при копировании этой формулы ссылка не «соскользнула».
- Если товар будет найден, то нужно перейти во второй столбец диапазона (на это указывает третий параметр = 2).
- Взять из него цену и вставить ее в нашу ячейку G2.
Получилось? Теперь просто скопируйте формулу из G2 в G3:G8.

Отчет о продажах готов.
Также чтобы понять, что такое точное совпадение, попробуйте в A5 или в E2 изменить наименование товара. К примеру, добавьте пробел в конце. Внешне ничего не изменилось, но вы сразу же получите ошибку #Н/Д. То есть, товар не был обнаружен. В то же время, таких случайных ошибок можно легко избежать, о чем мы поговорим отдельно.
Особо остановимся на четвертом параметре. Мы указали ноль (можно было написать ЛОЖЬ), что означает «точный поиск». А что, если забыть его указать и закончить номером столбца, из которого извлекаются нужные данные?
Давайте еще раз шаг за шагом разберем, что в этом случае будет происходить.

- Берем значение из E2.
- Начинаем его искать в крайней левой колонке диапазона $A$2:$B$7, то есть в столбце A. Поскольку в A2 совпадение не найдено, смотрим дальше: что находится ниже.
- Там обнаруживаем товар «Сливы». При этом предполагается, что наш список отсортирован по алфавиту. Ведь именно это – главное условие поиска приблизительного совпадения.
- Поскольку в сортированном списке «сливы» находятся ниже, чем «бананы», то функция принимает решение, что дальше искать слово, начинающееся на «Б» нет смысла. Процесс можно остановить. И остаться на букве «А». То есть, там и находится наиболее близкое значение.
- Поскольку поиск завершен, переходим из A2 во второй столбец, то есть в B. Вставляем данные из B2 в G2 как результат вычислений.
К сожалению, «бананы» были в нашем прайс-листе ниже, но до них просто «не дошел ход». И в список покупок теперь записана неправильная цена.
При помощи этой инструкции мы рассмотрели только основы. А как реально этим можно пользоваться?
Как работает функция ВПР в Excel: несколько примеров для «чайников».
Предположим, нам необходимо из списка сотрудников выбрать данные определенного человека. Посмотрим, какие здесь есть тонкости.
Во-первых, нужно сразу определиться: точный либо приблизительный поиск нам нужен. Ведь они предъявляют разные требования к подготовке исходных данных.
Использование точного и приблизительного поиска.
Посмотрите, какие результаты выборки цен мы получаем с использованием приблизительного поиска на неупорядоченном массиве данных.

Обратите внимание, что четвертый параметр равен 1.
Кое-что из результатов определено верно, но в большинстве случаев – ошибки. Функция продолжает просматривать данные столбца D с наименованиями товаров до тех пор, пока не встретит значение больше, чем заданное ей в качестве критерия поиска. Тогда она останавливается и возвращает цену.

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

Если у нас количество товара 11 единиц, то мы просматриваем столбец D до тех пор, пока не встретим число, большее 11. Это 20 и находится оно в 4-й строке. Останавливаемся здесь. Значит, наша скидка расположена в 3-й строке и равна 3%.
При работе с интервалами вида «от – до» такая методика вполне пригодна.
И еще один небольшой совет.
Применяйте именованный диапазон.

Для упрощения работы с формулами можно создать именованный диапазон и в дальнейшем ссылаться на него. В нашем случае назовем его «ДанныеСотрудников» (помните, что пробелы здесь недопустимы).
В ячейке B2 мы будем вводить нужную фамилию, а в ячейках С2:F2 запишем формулы:
Как видите, отличаются они только номером столбца, из которого будет извлечена нужная информация. Вместо ЛОЖЬ можно использовать 0.
Какие здесь преимущества?
- У вас не рябит в глазах от букв, цифр и знаков доллара в обычных адресах диапазонов?
Формула с именованным диапазоном выглядит намного более дружественно, наглядно и понятно. Вместо скучных и безликих координат вы видите идентификаторы, которые рождают у вас некоторые ассоциации. Согласитесь, “price” или «цена» – это наверняка информация о ценах.
- Если по каким-то причинам вам необходимо будет изменить координаты диапазона поиска, который вы использовали в большом количестве формул – вам нужно корректировать каждую формулу или пользоваться функцией “Найти и заменить”? Согласитесь, это очень долго, трудоемко, возможны ошибки.
Используя именованный диапазон, просто нажмите
Меню – Формула – Диспетчер имён.
Затем в списке диапазонов найдите нужный вам диапазон и откорректируйте его. Изменения автоматически будут применены во всех формулах.
- Используя обычные адреса, мы всегда должны думать, какую адресацию применить – относительную либо абсолютную. При использовании именованных диапазонов этой проблемы не существует.
Использование символов подстановки и другие тонкости критерия поиска.
Как и в предыдущих примерах, при вводе фамилии происходит точный поиск. Но есть несколько моментов, о которых мы ранее не упоминали.

- Регистр символов не влияет на результат. Можно все вводить прописными буквами – ничего не изменится. Пример вы видите чуть ниже.
- Если в списке есть люди с одинаковыми фамилиями, то найден будет только первый из них. Как и мы говорили ранее, как только найдено что-то подходящее, процесс останавливается.
- Можно использовать символы подстановки * и ?. Напомню, что вопросительный знак заменяет собой любой символ, а звездочка – любое количество символов (в том числе и ноль). О них мы упоминали в начале.
Это целесообразно делать, если мы знаем только часть значения аргумента.

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

Формула в ячейке F2 выглядит следующим образом:
Здесь мы используем оператор «склеивания» строк &.
Конструкция «*»&D2&»*» означает, что к содержимому ячейки D2 добавляются с обоих сторон звездочки *. То есть, мы ищем любое вхождение этого слова – перед ним и после него могут быть любые другие слова и символы. Как, например, произошло с товаром «персики». Первый параметр будет в нашем случае выглядеть как «*персики*». При поиске такой конструкции приемлемым вариантом будут определены «Консервированные персики (Турция)».
Использование нескольких условий.
Еще один простой пример для «чайников» — как использовать при выборе нужного значения несколько условий?
Предположим, у нас есть список имен и фамилий. Нам нужно найти нужного человека и вывести сумму его дохода.

В F2 используем следующую формулу:
Разберем пошагово, как в этом случае работает ВПР.
В начале мы формируем условие. Для этого при помощи оператора & «склеиваем» вместе имя и фамилию, а между ними вставляем пробел.
Не забываем при этом пробел заключить в кавычки, иначе Excel не воспримет его как текст.
Затем в таблице с доходами ищем ячейку с именем и фамилией, разделенными пробелом.
Дальше все происходит по уже отработанной схеме.
Можно попробовать подстраховаться на тот случай, если между именем и фамилией введено несколько пробелов. Знак пробела в формуле заменяем на знак подстановки «*».
Приметно так — D2&»*»&E2
Но при этом имейте в виду, что совпадение имени и фамилии уже будет не совсем точным. Подобный пример мы рассматривали чуть выше.
Более сложные и точные способы работы с несколькими условиями мы рассмотрим отдельно: ВПР с несколькими условиями: 5 примеров. Смотрите также ссылки в конце статьи.
«Умная» таблица.
И еще одна рекомендация: используйте «умную» таблицу.

Бывает очень удобно сначала преобразовать поисковую таблицу (прайс-лист) в «умную» с помощью команды Главная – Форматировать как таблицу (Home – Format as Table в английской версии Excel), и затем указать во втором аргументе использовать имя созданной таблицы. Кстати, оно ей будет присвоено автоматически.
В этом случае размеры списка товаров с ценами нас уже не будут беспокоить в будущем. При добавлении новых товаров в прайс-лист, либо их удалении, размеры «умной таблицы» сами подстроятся.
Специальные инструменты для ВПР в Excel.
Несомненно, ВПР — одна из самых мощных и полезных функций Excel, но она также одна из самых запутанных. Чтобы сделать работу с ней проще, можно использовать надстройку Ultimate Suite for Excel с инструментом «Мастер ВПР», позволяющим значительно сэкономить время на поиск нужных данных.
Мастер ВПР — простой способ писать сложные формулы
Интерактивный мастер ВПР проведет вас через необходимые параметры конфигурации поиска, чтобы построить идеальную формулу для заданных вами критериев. В зависимости от вашей структуры данных он будет использовать стандартную функцию ВПР или формулу ИНДЕКС+ПОИСКПОЗ, если будет нужно извлечь значения слева от столбца поиска.
Вот что вам нужно сделать, чтобы получить формулу под вашу задачу:
- Запустите мастер кнопкой Vlookup Wizard на ленте Ablebits Data.
- Выберите свою основную таблицу (Your table) и таблицу поиска (Lookup table).
- Укажите следующие столбцы (во многих случаях они выбираются автоматически):
- Ключевой столбец (Key column) — находится в вашей основной таблице, содержит значения для поиска.
- Столбец поиска (Lookup column) — в кот ором будем искать.
- Возвращаемый столбец (Return column) — из него будем получать значения.
- Нажмите кнопку Вставить (Insert).
Давайте посмотрим всё в действии.
Стандартный ВПР.
Запускаем мастер Vlookup Wizard. Указываем координаты основной таблицы и таблицы поиска, а также ключевой столбец (из которого будем брать значения для поиска), колонку поиска (в котором будем их искать) и колонку результата (из него в случае успеха берем соответствующее значение и вставляем в основную таблицу). Просто заполняем все нужные поля, как это показано на рисунке ниже. Руками прописываем (или обозначаем при помощи мышки) только диапазоны. Поля же просто выбираем из раскрывающегося списка.
Как и в предыдущих примерах, наша задача — подобрать цену для каждого товара, извлекая ее из прайс-листа. Ежели область поиска (Цена) является крайним левым столбцом в зоне поиска, то вставляется обычная формула ВПР для точного соответствия:

Ничего руками писать не нужно.
После нажатия кнопки Insert справа от колонки с наименованиями товаров будет вставлена дополнительная, которая будет озаглавлена так же, как и столбец результата. Сюда будут записаны все найденные значения цены, причем в виде формулы. При необходимости вы сможете ее подправить либо использовать в других таблицах.
«Левый» ВПР.
Когда колонка результата (Цена) находится слева от области поиска (Прайс), то мастер автоматически вставляет формулу ИНДЕКС+ПОИСКПОЗ:

Мы рассматривали левый ВПР в отдельной статье. Там же вы можете посмотреть и формулы для ручного ввода. Здесь же мы получаем их автоматически, не вникая в тонкости синтаксиса и правильности написания.
Дополнительный бонус! Благодаря грамотному использованию ссылок на ячейки, полученные формулы ВПР можно копировать или перемещать в любой столбец без необходимости обновлять ссылки.
Надеемся, что наши пошаговые инструкции по использованию функции ВПР в таблицах Excel были доступны и понятны даже «чайникам». Безусловно, эти самые несложные рекомендации можно использовать только в самых простых случаях. Все более сложное мы рассмотрим отдельно.
Поиск данных в таблице или диапазоне ячеек с помощью встроенных функций Excel
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Описание
В этой статье приведены пошаговые инструкции по поиску данных в таблице (или диапазоне ячеек) с помощью различных встроенных функций Microsoft Excel. Для получения одного и того же результата можно использовать разные формулы.
Создание образца листа
В этой статье используется образец листа для иллюстрации встроенных функций Excel. Рассматривайте пример ссылки на имя из столбца A и возвращает возраст этого человека из столбца C. Чтобы создать этот лист, введите указанные ниже данные в пустой лист Excel.
Введите значение, которое вы хотите найти, в ячейку E2. Вы можете ввести формулу в любую пустую ячейку на том же листе.
Определения терминов
В этой статье для описания встроенных функций Excel используются указанные ниже условия.
Определение
Вся таблица подстановки
Значение, которое будет найдено в первом столбце аргумента «инфо_таблица».
Просматриваемый_массив
-или-
Лукуп_вектор
Диапазон ячеек, которые содержат возможные значения подстановки.
Номер столбца в аргументе инфо_таблица, для которого должно быть возвращено совпадающее значение.
3 (третий столбец в инфо_таблица)
Ресулт_аррай
-или-
Ресулт_вектор
Диапазон, содержащий только одну строку или один столбец. Он должен быть такого же размера, что и просматриваемый_массив или Лукуп_вектор.
Логическое значение (истина или ложь). Если указано значение истина или опущено, возвращается приближенное соответствие. Если задано значение FALSE, оно будет искать точное совпадение.
Это ссылка, на основе которой вы хотите основать смещение. Топ_целл должен ссылаться на ячейку или диапазон смежных ячеек. В противном случае функция СМЕЩ возвращает #VALUE! значение ошибки #ИМЯ?.
Число столбцов, находящегося слева или справа от которых должна указываться верхняя левая ячейка результата. Например, значение «5» в качестве аргумента Оффсет_кол указывает на то, что верхняя левая ячейка ссылки состоит из пяти столбцов справа от ссылки. Оффсет_кол может быть положительным (то есть справа от начальной ссылки) или отрицательным (то есть слева от начальной ссылки).
Функции
LOOKUP ()
Функция Просмотр находит значение в одной строке или столбце и сопоставляет его со значением в той же позицией в другой строке или столбце.
Ниже приведен пример синтаксиса формулы подСТАНОВКи.
= Просмотр (искомое_значение; Лукуп_вектор; Ресулт_вектор)
Следующая формула находит возраст Марии на листе «образец».
= ПРОСМОТР (E2; A2: A5; C2: C5)
Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в векторе подстановки (столбец A). Формула затем соответствует значению в той же строке в векторе результатов (столбец C). Так как «Мария» находится в строке 4, функция Просмотр возвращает значение из строки 4 в столбце C (22).
Примечание. Для функции Просмотр необходимо, чтобы таблица была отсортирована.
Чтобы получить дополнительные сведения о функции Просмотр , щелкните следующий номер статьи базы знаний Майкрософт:
ВПР ()
Функция ВПР или вертикальный просмотр используется, если данные указаны в столбцах. Эта функция выполняет поиск значения в левом столбце и сопоставляет его с данными в указанном столбце в той же строке. Функцию ВПР можно использовать для поиска данных в отсортированных или несортированных таблицах. В следующем примере используется таблица с несортированными данными.
Ниже приведен пример синтаксиса формулы ВПР :
= ВПР (искомое_значение; инфо_таблица; номер_столбца; интервальный_просмотр)
Следующая формула находит возраст Марии на листе «образец».
= ВПР (E2; A2: C5; 3; ЛОЖЬ)
Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в левом столбце (столбец A). Формула затем совпадет со значением в той же строке в Колумн_индекс. В этом примере используется «3» в качестве Колумн_индекс (столбец C). Так как «Мария» находится в строке 4, функция ВПР возвращает значение из строки 4 В столбце C (22).
Чтобы получить дополнительные сведения о функции ВПР , щелкните следующий номер статьи базы знаний Майкрософт:
INDEX () и MATCH ()
Вы можете использовать функции индекс и ПОИСКПОЗ вместе, чтобы получить те же результаты, что и при использовании поиска или функции ВПР.
Ниже приведен пример синтаксиса, объединяющего индекс и Match для получения одинаковых результатов поиска и ВПР в предыдущих примерах:
= Индекс (инфо_таблица; MATCH (искомое_значение; просматриваемый_массив; 0); номер_столбца)
Следующая формула находит возраст Марии на листе «образец».
= ИНДЕКС (A2: C5; MATCH (E2; A2: A5; 0); 3)
Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в столбце A. Затем он будет соответствовать значению в той же строке в столбце C. Так как «Мария» находится в строке 4, формула возвращает значение из строки 4 в столбце C (22).
Обратите внимание Если ни одна из ячеек в аргументе «число» не соответствует искомому значению («Мария»), эта формула будет возвращать #N/А.
Чтобы получить дополнительные сведения о функции индекс , щелкните следующий номер статьи базы знаний Майкрософт:
СМЕЩ () и MATCH ()
Функции СМЕЩ и ПОИСКПОЗ можно использовать вместе, чтобы получить те же результаты, что и функции в предыдущем примере.
Ниже приведен пример синтаксиса, объединяющего смещение и сопоставление для достижения того же результата, что и функция Просмотр и ВПР.
= СМЕЩЕНИЕ (топ_целл, MATCH (искомое_значение; просматриваемый_массив; 0); Оффсет_кол)
Эта формула находит возраст Марии на листе «образец».
= СМЕЩЕНИЕ (A1; MATCH (E2; A2: A5; 0); 2)
Формула использует значение «Мария» в ячейке E2 и находит слово «Мария» в столбце A. Формула затем соответствует значению в той же строке, но двум столбцам справа (столбец C). Так как «Мария» находится в столбце A, формула возвращает значение в строке 4 в столбце C (22).
Чтобы получить дополнительные сведения о функции СМЕЩ , щелкните следующий номер статьи базы знаний Майкрософт: