ЕСЛИ
Это одна из самых важных функций в Excel. Как и в настоящем языке программирования, она проверяет какое-то условие, и если оно выполняется — пишет в ячейку что-то одно, а если нет — пишет что-то другое.
В общем виде она выглядит так:
=ЕСЛИ(условие; “значение_если_да”;”значение_если_нет”)
В условии может быть что угодно: сравнение ячеек, другие формулы, сравнения и математические команды — всё, что вам нужно проверить.
На практике можно сделать, например, так: пусть Excel проверяет возраст, и пишет документ, который в этом возрасте удостоверяет личность. До 14 лет это свидетельство о рождении, а после — паспорт. Для этого используем такую команду в ячейке:
Программа проверит, что стоит в предыдущей ячейке, и если там число меньше 14, то напишет «Свидетельство о рождении», а если уже есть 14 лет, то «Паспорт»:
5 вариантов использования функции ИНДЕКС (INDEX)
Бывает у вас такое: смотришь на человека и думаешь «что за @#$%)(*?» А потом при близком знакомстве оказывается, что он знает пять языков, прыгает с парашютом, имеет семеро детей и черный пояс в шахматах, да и, вообще, добрейшей души человек и умница?
Так и в Microsoft Excel: есть несколько похожих функций, про которых фраза «внешность обманчива» работает на 100%. Одна из наиболее многогранных и полезных — функция ИНДЕКС (INDEX) . Далеко не все пользователи Excel про нее знают, и еще меньше используют все её возможности. Давайте разберем варианты ее применения, ибо их аж целых пять.
Вариант 1. Извлечение данных из столбца по номеру ячейки
Самый простой случай использования функции ИНДЕКС – это ситуация, когда нам нужно извлечь данные из одномерного диапазона-столбца, если мы знаем порядковый номер ячейки. Синтаксис в этом случае будет:
=ИНДЕКС( Диапазон_столбец ; Порядковый_номер_ячейки )
Этот вариант известен большинству продвинутых пользователей Excel. В таком виде функция ИНДЕКС часто используется в связке с функцией ПОИСКПОЗ (MATCH) , которая выдает номер искомого значения в диапазоне. Таким образом, эта пара заменяет легендарную ВПР (VLOOKUP) :
. но, в отличие от ВПР, могут извлекать значения левее поискового столбца и номер столбца-результата высчитывать не нужно.
Вариант 2. Извлечение данных из двумерного диапазона
Если диапазон двумерный, т.е. состоит из нескольких строк и столбцов, то наша функция будет использоваться немного в другом формате:
=ИНДЕКС( Диапазон ; Номер_строки ; Номер_столбца )
Т.е. функция извлекает значение из ячейки диапазона с пересечения строки и столбца с заданными номерами.
Легко сообразить, что с помощью такой вариации ИНДЕКС и двух функций ПОИСКПОЗ можно легко реализовать двумерный поиск:
Вариант 3. Несколько таблиц
Если таблица не одна, а их несколько, то функция ИНДЕКС может извлечь данные из нужной строки и столбца именно заданной таблицы. В этом случае используется следующий синтаксис:
=ИНДЕКС( (Диапазон1;Диапазон2;Диапазон3) ; Номер_строки ; Номер_столбца ; Номер_диапазона )
Обратите особое внимание, что в этом случае первый аргумент – список диапазонов — заключается в скобки, а сами диапазоны перечисляются через точку с запятой
Вариант 4. Ссылка на столбец / строку
Если во втором варианте использования функции ИНДЕКС номер строки или столбца задать равным нулю (или просто не указать), то функция будет выдавать уже не значение, а ссылку на диапазон-столбец или диапазон-строку соответственно:
Обратите внимание, что поскольку ИНДЕКС выдает в этом варианте не конкретное значение ячейки, а ссылку на диапазон, то для подсчета потребуется заключить ее в дополнительную функцию, например СУММ (SUM) , СРЗНАЧ (AVERAGE) и т.п
Вариант 5. Ссылка на ячейку
Общеизвестно, что стандартная ссылка на любой диапазон ячеек в Excel выглядит как Начало-Двоеточие-Конец, например A2:B5. Хитрость в том, что если взять функцию ИНДЕКС в первом или втором варианте и подставить ее после двоеточия, то наша функция будет выдавать уже не значение, а адрес, и на выходе мы получим полноценную ссылку на диапазон от начальной ячейки до той, которую нашла ИНДЕКС:
Нечто похожее можно реализовать функцией СМЕЩ (OFFSET) , но она, в отличие от ИНДЕКС, является волатильной, т.е. пересчитывается каждый раз при изменении любой ячейки листа. ИНДЕКС же работает более тонко и запускает пересчет только при изменении своих аргументов, что ощутимо ускоряет расчет в тяжелых книгах по сравнению со СМЕЩ.
Один из весьма распространенных на практике сценариев применения ИНДЕКС в таком варианте — это сочетание с функцией СЧЁТЗ (COUNTA) , чтобы получить автоматически растягивающиеся диапазоны для выпадающих списков, сводных таблиц и т.д.
Эквивалентность функции И() операции умножения *
В математических вычислениях EXCEL интерпретирует значение ЛОЖЬ как 0, а ИСТИНА как 1. В этом легко убедиться записав формулы =ИСТИНА+0 и =ЛОЖЬ+0
Следствием этого является возможность альтернативной записи формулы =И(A1>100;A2>100) в виде =(A1>100)*(A2>100) Значение второй формулы будет =1 (ИСТИНА), только если оба аргумента истинны, т.е. равны 1. Только произведение 2-х единиц даст 1 (ИСТИНА), что совпадает с определением функции И() .
Эквивалентность функции И() операции умножения * часто используется в формулах с Условием И, например, для того чтобы сложить только те значения, которые больше 5 И меньше 10: =СУММПРОИЗВ((A1:A10>5)*(A1:A10
Основная функция 4: изменение типов ячеек
Данные можно вводить разными способами в зависимости от того, что вам нужно с ними делать. В Excel есть несколько вкладок вверху с такими ярлыками, как «Главная», «Макет», «Таблицы» и т. Д. На вкладке «Главная» вы найдете раскрывающееся меню с надписью «Число».
В раскрывающемся меню вы увидите, что есть несколько вариантов типа ячейки, например «Общие», «Число», «Валюта» и «Учет». Тип ячейки по умолчанию — «Общий».
Вы можете измените тип ячейки, щелкнув ячейку правой кнопкой мыши и выбрав «Форматировать ячейку». из меню. В появившемся поле «Формат ячеек» также есть вкладки с такими ярлыками, как «Число», «Выравнивание», «Шрифт», «Граница», «Заливка» и «Защита».
На вкладке Number находится столбец с типами ячеек; здесь вы можете выбрать тип ячейки. Вы также можете изменить сразу несколько ячеек, выделив их и выбрав нужный тип ячеек в раскрывающемся меню, или следуя процедуре в меню «Формат ячеек».
Разбор функции ДВССЫЛ (INDIRECT) на примерах
На первый взгляд (особенно при чтении справки) функция ДВССЫЛ (INDIRECT) выглядит простой и даже ненужной. Ее суть в том, чтобы превращать текст похожий на ссылку – в полноценную ссылку. Т.е. если нам нужно сослаться на ячейку А1, то мы можем либо привычно сделать прямую ссылку (ввести знак равно в D1, щелкнуть мышью по А1 и нажать Enter), а можем использовать ДВССЫЛ для той же цели:
Обратите внимание, что аргумент функции – ссылка на А1 – введен в кавычках, поэтому что, по сути, является здесь текстом. “Ну ОК”, – скажете вы. “И что тут полезного?”
“И что тут полезного?”
“Ну ОК”, – скажете вы. “И что тут полезного?”.
Но не судите по первому впечатлению – оно обманчиво. Эта функция может выручить вас в большом количестве ситуаций.
Пример 1. Транспонирование
пазон в горизонтальный (транспонировать). Само-собой, можно использовать специальную вставку или функцию ТРАНСП (TRANSPOSE) в формуле массива, но можно обойтись и нашей ДВССЫЛ:
Логика проста: чтобы получить адрес очередной ячейки, мы склеиваем спецсимволом “&” букву “А” и номер столбца текущей ячейки, который выдает нам функция СТОЛБЕЦ (COLUMN) .
Обратную процедуру лучше проделать немного по-другому. Поскольку на этот раз нам нужно формировать ссылку на ячейки B2, C2, D2 и т.д., то удобнее использовать режим ссылок R1C1 вместо классического “морского боя”. В этом режиме наши ячейки будут отличаться только номером столбца: B2=R1C 2 , C2=R1C 3 , D2=R1C 4 и т.д.
Тут на помощь приходит второй необязательный аргумент функции ДВССЫЛ. Если он равен ЛОЖЬ (FALSE) , то можно задавать адрес ссылки в режиме R1C1. Таким образом, мы можем легко транспонировать горизонтальный диапазон обратно в вертикальный:
Пример 2. Суммирование по интервалу
Мы уже разбирали один способ суммирования по окну (диапазону) заданного размера на листе с помощью функции СМЕЩ (OFFSET) . Подобную задачу можно решить и с помощью ДВССЫЛ. Если нам нужно суммировать данные только из определенного диапазона-периода, то можно склеить его из кусочков и превратить затем в полноценную ссылку, которую и вставить внутрь функции СУММ (SUM) :
Пример 3. Выпадающий список по умной таблице
Иногда Microsoft Excel не воспринимает имена и столбцы умных таблиц как полноценные ссылки. Так, например, при попытке создать выпадающий список (вкладка Данные – Проверка данных) на основе столбца Сотрудники из умной таблицы Люди мы получим ошибку:
Если же “обернуть” ссылку нашей функцией ДВССЫЛ, то Excel преспокойно ее примет и наш выпадающий список будет динамически обновляться при дописывании новых сотрудников в конец умной таблицы:
Пример 4. Несбиваемые ссылки
Как известно, Excel автоматически корректирует адреса ссылок в формулах при вставке или удалении строк-столбцов на лист. В большинстве случаев это правильно и удобно, но не всегда. Допустим, что нам нужно перенести имена из справочника по сотрудникам в отчет:
Если ставить обычные ссылки (в первую зеленую ячейку ввести =B2 и скопировать вниз), то потом при удалении, например, Даши мы получим в соответствующей ей зеленой ячейке ошибку #ССЫЛКА! (#REF!). В случае применения для создания ссылок функции ДВССЫЛ такой проблемы не будет.
Пример 5. Сбор данных с нескольких листов
Предположим, что у нас есть 5 листов с однотипными отчетами от разных сотрудников (Михаил, Елена, Иван, Сергей, Дмитрий):
Допустим, что форма, размеры, положение и последовательность товаров и месяцев во всех таблицах одинаковые – различаются только числа.
Собрать данные со всех листов (не просуммировать, а положить друг под друга “стопочкой”) можно всего одной формулой:
Как видите, идея та же: мы склеиваем ссылку на нужную ячейку заданного листа, а ДВССЫЛ превращает ее в “живую”. Для удобства, над таблицей я добавил буквы столбцов (B,C,D), а справа – номера строк, которые нужно взять с каждого листа.
Подводные камни
При использовании ДВССЫЛ (INDIRECT) нужно помнить про ее слабые места:
- Если вы делаете ссылку в другой файл (склеивая имя файла в квадратных скобках, имя листа и адрес ячейки), то она работает только пока исходный файл открыт. Если его закрыть, то получим ошибку #ССЫЛКА!
- С помощью ДВССЫЛ нельзя сделать ссылку на динамический именованный диапазон. На статический – без проблем.
- ДВССЫЛ является волатильной (volatile) или “летучей” функцией, т.е. она пересчитывается при любом изменении любой ячейки листа, а не только влияющих ячеек, как у обычных функций. Это плохо отражается на быстродействии и на больших таблицах ДВССЫЛ лучше не увлекаться.
Примеры поиска функцией Find
Пример 1: Найти в диапазоне «A1:A50» все ячейки с текстом «asd» и поменять их все на «qwe»
Обратите внимание : Когда поиск достигнет конца диапазона, функция продолжит искать с начала диапазона. Таким образом, если значение найденной ячейки не менять, то приведенный выше пример зациклится в бесконечном цикле
Поэтому, чтобы этого избежать (зацикливания), можно сделать следующим образом:
Пример 2: Правильный поиск значения с использованием FindNext, не приводящий к зацикливанию.
В ниже следующем примере используется другой вариант продолжения поиска — с помощью той же функции Find с параметром After. Когда найдена очередная ячейка, следующий поиск будет осуществляться уже после нее. Однако, как и с FindNext, когда будет достигнут конец диапазона, Find продолжит поиск с его начала, поэтому, чтобы не произошло зацикливания, необходимо проверять совпадение с первым результатом поиска.
Пример 3: Продолжение поиска с использованием Find с параметром After.
Следующий пример демонстрирует применение SearchFormat для поиска по формату ячейки. Для указания формата необходимо задать свойство FindFormat.
Пример 4: Найти все ячейки с шрифтом «курсив» и поменять их формат на обычный (не «курсив»)
Примечание: В данном примере намеренно не используется FindNext для поиска следующей ячейки, т.к. он не учитывает формат (статья об этом: https://support.microsoft.com/ru-ru/kb/282151)
Коротко опишу алгоритм поиска Примера 4. Первые две строки определяют последнюю строку (lLastRow) на листе и последний столбец (lLastCol). 3-я строка задает формат поиска, в данном случае, будем искать ячейки с шрифтом Italic. 4-я строка определяет область ячеек с которой будет работать программа (с ячейки A1 и до последней строки и последнего столбца). 5-я строка осуществляет поиск с использованием SearchFormat. 6-я строка — цикл пока результат поиска не будет пустым. 7-я строка — меняем шрифт на обычный (не курсив), 8-я строка продолжаем поиск после найденной ячейки.
Хочу обратить внимание на то, что в этом примере я не стал использовать «защиту от зацикливания», как в Примерах 2 и 3, т.к. шрифт меняется и после «прохождения» по всем ячейкам, больше не останется ни одной ячейки с курсивом
Свойство FindFormat можно задавать разными способами, например, так:
Следующий пример — применение функции Find для поиска последней ячейки с заполненными данными. Использованные в Примере 4 SpecialCells находит последнюю ячейку даже если она не содержит ничего, но отформатирована или в ней раньше были данные, но были удалены.
Пример 5: Найти последнюю колонку и столбец, заполненные данными
В этом примере используется UsedRange, который так же как и SpecialCells возвращает все используемые ячейки, в т.ч. и те, что были использованы ранее, а сейчас пустые. Функция Find ищет ячейку с любым значением с конца диапазона.
При поиске можно так же использовать шаблоны, чтобы найти текст по маске, следующий пример это демонстрирует.
Пример 6: Выделить красным шрифтом ячейки, в которых текст начинается со слова из 4-х букв, первая и последняя буквы «т», при этом после этого слова может следовать любой текст.
Для поиска функцией Find по маске (шаблону) можно применять символы: * — для обозначения любого количества любых символов; ? — для обозначения одного любого символа;
— для обозначения символов *, ? и
. (т.е. чтобы искать в тексте вопросительный знак, нужно написать
?, чтобы искать именно звездочку (*), нужно написать
* и наконец, чтобы найти в тексте тильду, необходимо написать
Поиск даты с помощью Find
Если необходимо найти текущую дату или какую-то другую дату на листе Excel или в диапазоне с помощью Find, необходимо учитывать несколько нюансов:
- Тип данных Date в VBA представляется в виде #//#, соответственно, если необходимо найти фиксированную дату, например, 01 марта 2018 года, необходимо искать #3/1/2018#, а не «01.03.2018»
- В зависимости от формата ячеек, дата может выглядеть по-разному, поэтому, чтобы искать дату независимо от формата, поиск нужно делать не в значениях, а в формулах, т.е. использовать LookIn:=xlFormulas
Приведу несколько примеров поиска даты.
Пример 7: Найти текущую дату на листе независимо от формата отображения даты.
Пример 8: Найти 1 марта 2018 г.
Искать часть даты — сложнее. Например, чтобы найти все ячейки, где месяц «март», недостаточно искать «03» или «3». Не работает с датами так же и поиск по шаблону. Единственный вариант, который я нашел — это выбрать формат в котором месяц прописью для ячеек с датами и искать слово «март» в xlValues.
Тем не менее, можно найти, например, 1 марта независимо от года.
Пример 9: Найти 1 марта любого года.
Поиск неточного совпадения с помощью ВПР
Благодаря этой опции в работе ВПР, мы можем избежать сложных формул, чтобы найти нужный результат.
В массиве В5:С12 указаны процентные ставки по кредитам в зависимости от суммы займа. В ячейке В2 Указываем сумму кредита и хотим получить в С2 ставку для такой сделки. Задача сложна тем, что сумма может быть любой и вряд ли будет совпадать с указанными в массиве, поиск по точному совпадению не подходит:
Тогда запишем формулу нестрогого поиска: =ВПР(B2;B5:C12;2;ИСТИНА) . Теперь из всех представленных в столбце В данных программа будет искать ближайшее меньшее. То есть, для суммы 8 000 будет отобрано значение 5000 и выведен соответствующий процент.
Для корректной работы функции нужно отсортировать первый столбец таблицы по возрастанию. Иначе, она может дать ошибочный результат.
Функция ГПР имеет такой же синтаксис, как и ВПР, но ищет результат не в столбцах, а в строках. То есть, просматривает таблицы не сверху вниз, а слева направо и выводит заданный номер строки, а не столбца.
Функция ПОИСКПОЗ
в массиве записать с небольшим числомяблоки получили оценку «неудовлетворительно», выглядит следующим образом:. Для наглядности вычислим, в этом векторе. столбце диапазона B1:I1. значение FordМаркетинговый. По с одним столбцомВ ячейке B12 введите нажмите клавишу F2, 1, 2, …,ПОИСКПОЗ третьего столбца в
ячейку, должен быть5 соответствующие функции «ПОИСКПОЗ», элементов. Например, уперец то в соответствующую ИНДЕКС (массив, № что же возвращает При этом третийИз приведенных примеров видно, этой причине первый или с одной номер необходимого отдела, а затем — клавишу A-Z, ЛОЖЬ, ИСТИНА.следует пользоваться вместо диапазоне — столбца крайним левым столбцом
Синтаксис
3
выдающие эти номера. вас есть отчет
5 ячейку следует ввести строки, № столбца). нам данная формула: аргумент указывать необязательно. что первым аргументом Ford из отдела строкой. Поэтому сразу который потом выступит ВВОД
При необходимости0 одной из функций E (третий аргумент). в диапазоне.1 Обратите внимание, что об успеваемости несколькихперцы выражение: ИНДЕКС (С2:С5,
Данная функция может работатьТретьим аргументом функцииНапример, следующая формула возвращает функции
продаж не учитывается, усложним задачу и в качестве критерия измените ширину столбцов,ФункцияПРОСМОТРВ данном примере четвертыйТретий аргумент — это2 мы ищем выражение групп студентов иапельсины 1). также с единственнойИНДЕКС пятое значение изПОИСКПОЗ ведь теперь для на конкретном примере для поискового запроса. чтобы видеть все
ПОИСКПОЗ |
, когда требуется найти |
аргумент оставлен пустым, |
столбец в диапазоне«уд» «уд», расположенное в их оценки. Предположим,имбирьA строкой или сявляется номер столбца. диапазона A1:A12 (вертикальныйявляется искомое значение. функции два форда проиллюстрируем как применять Например, 3. |
данные. |
находит первое значение, позицию элемента в поэтому функция возвращает поиска ячеек, содержащий10 ячейке G2 и вы хотите, чтобы6B |
единственным столбцом. В |
Этот номер мы вектор): Вторым аргументом выступает – это разные функцию ПОИСКПОЗ дляВ ячейке B13 введитеПродукт равное аргументу диапазоне, а не приблизительное совпадение. значение, которое нужно12 «гр. 2» из в ячейке H2 |
-
моркоьC таком случае после получаем с помощьюДанная формула возвращает третье диапазон, который содержит значения (FordПродажи и таблицы с двумя номер статьи. Например,Количествоискомое_значение
-
сам элемент. Например,Разобравшись с функцией ВПР, найти.3
-
H2. Кроме того, появилось число студентов,бананыD указания одномерного массива
-
функции значение из диапазона искомое значение. Также FordМаркетинговый). Просматриваемый диапазон столбцами и более. 7.Бананы. функцию несложно будет освоитьХотя четвертый аргумент не«уд» нам нужны точные получивших оценку «неуд».корицаE выставляется одно число.ПОИСКПОЗ(C16;B1:E1;0) A1:L1(горизонтальный вектор): функция имеет еще теперь распространяется наДля примера возьмем списокВ ячейку B14 введите
Пример
25Просматриваемый_массивПОИСКПОЗ и функцию ГПР. является обязательным, большинство14 совпадения, поэтому вAДиапазон значений в этом1 Оно обозначает номер. Для наглядности вычислимЕсли Вы уже работали
и третий аргумент, |
2 столбца, так |
|
автомобилей из автопарка |
следующую формулу: |
|
Апельсины |
может быть не |
|
можно использовать для |
Функция ГПР использует |
|
пользователей вводят аргумент |
10 |
|
качестве последнего, третьего, |
B |
случае В3:В6. |
N/N |
строки, если массив и это значение: с функциями который задает тип же благодаря оператору |
средней фирмы, как |
В результате получаем значение |
38 упорядочен. |
передачи значения аргумента |
те же аргументы, |
ЛОЖЬ (или 0).14 аргумента в обоихC |
Выбираем ячейку в другой |
support.office.com>
Функция ВПР
Вертикальное первое равенство. Ищет совпадение по ключу в первом столбце определенного диапазона и возвращает значение из указанного столбца этого диапазона в совпавшей с ключом строке.
Синтаксис: =ВПР(ключ; диапазон; номер_столбца; ), где
- ключ – обязательный аргумент. Искомое значение, для которого необходимо вернуть значение.
- диапазон – обязательный аргумент. Таблица, в которой необходимо найти значение по ключу. Первый столбец таблицы (диапазона) должен содержать значение совпадающее с ключом, иначе будет возвращена ошибка #Н/Д.
- номер_столбца – обязательный аргумент. Порядковый номер столбца в указанном диапазоне из которого необходимо возвратить значение в случае совпадения ключа.
- интервальный_просмотр – необязательный аргумент. Логическое значение указывающее тип просмотра:
- ЛОЖЬ – функция ищет точное совпадение по первому столбцу таблицы. Если возможно несколько совпадений, то возвращено будет самое первое. Если совпадение не найдено, то функция возвращает ошибку #Н/Д.
- ИСТИНА – функция ищет приблизительное совпадение. Является значением по умолчанию. Приблизительное совпадение означает, если не было найдено ни одного совпадения, то функция вернет значение предыдущего ключа. При этом предыдущим будет считаться тот ключ, который идет перед искомым согласно сортировке от меньшего к большему либо от А до Я. Поэтому, перед применением функции с данным интервальным просмотром, предварительно отсортируйте первый столбец таблицы по возрастанию, так как, если это не сделать, функция может вернуть неправильный результат. Когда найдено несколько совпадений, возвращается последнее из них.
Важно не путать, что номер столбца указывается не по индексу на листе, а по порядку в указанном диапазоне. На изображении приведено 3 таблицы
Первая и вторая таблицы располагают исходными данными. Третья таблица собрана из первых двух.В первой таблице приведены категории товара и расположение каждой категории.Во второй категории имеется список всех товаров с указанием цен.Третья таблица содержать часть товаров для которых необходимо определить цену и расположение
На изображении приведено 3 таблицы. Первая и вторая таблицы располагают исходными данными. Третья таблица собрана из первых двух.В первой таблице приведены категории товара и расположение каждой категории.Во второй категории имеется список всех товаров с указанием цен.Третья таблица содержать часть товаров для которых необходимо определить цену и расположение.
Для цены необходимо использовать функцию ВПР с точным совпадением (интервальный просмотр ЛОЖЬ), так как данный параметр определен для всех товаров и не предусматривает использование цены другого товара, если вдруг она по случайности еще не определена.
Для определения расположения товара используется ВПР с приблизительным совпадением (интервальный просмотр ИСТИНА), так как распределение товара осуществляется по категориям. Из-за того, что наименование товара состоит из названия категории плюс дополнительный текст, по условиям сортировки от А до Я наименования товаров будут идти сразу после наименования категории, поэтому когда в таблице не обнаруживается совпадений с ключом подтягивается первое значение сверху.
В принципе, данный подход устраивал бы, если для товаров, для которых отсутствует категория, не подтягивалось расположение
Обратите внимание на товар «Лук Подмосковье». Для него определено расположение «Стелаж №2», хотя в первой таблице нет категории «Лук»
Это происходит все по тем же причинам, когда функцией не обнаруживается равенств, то она определяет для значения значение меньшего самого близкого по сортировке ключа, а для «Лук Подмосковье» это категория «Картофель».
Он подобного эффекта можно избавиться путем определения категории из наименования товара используя текстовые функции ЛЕВСИМВ(C11;ПОИСК(» «;C11)-1), которые вернут все символы до первого пробела, а также изменить интервальный просмотр на точный.
Помимо всего описанного, функция ВПР позволяет применять для текстовых значений подстановочные символы – * (звездочка – любое количество любых символов) и ? (один любой символ). Например, для искомого значения «*» & «иван» & «*» могут подойти строки Иван, Иванов, диван и т.д.
Также данная функция может искать значения в массивах – =ВПР(1;;2;ЛОЖЬ) – результат выполнения строка «Два».
Как в Excel искать значение по двум столбцам — Трюки и приемы в Microsoft Excel
В некоторых ситуациях может потребоваться поиск на основе значений в двух столбцах (рис. 122.1). Таблица содержит марки и модели автомобилей и соответствующие коды для каждого из них. Метод, описанный здесь, позволяет искать значение, основываясь на марке и модели автомобиля.
Рис. 122.1. В таблице выполняется поиск с использованием информации из двух столбцов (D и Е)
Лист использует именованные диапазоны, как показано в табл. 122.1.
F2:F12 | Код |
B1 | Марка |
B2 | Модель |
D2:D12 | Диапазон1 |
E2:E12 | Диапазон2 |
Следующая формула массива отображает соответствующий код для марки и модели автомобиля:=ИНДЕКС(Код;ПОИСКПОЗ(Марка&Модель;Диапазон1&Диапазон2;0))
При вводе формулы массива нажмите Ctrl+Shift+Enter (а не просто Enter).
Формула объединяет содержимое диапазонов Марка и Модель, а затем находит этот текст в массиве, состоящем из соответствующего объединенного текста, в диапазонах Диапазон1 и Диапазон2.
Альтернативный подход заключается в создании новой таблицы поиска из двух столбцов, как показано на рис. 122.2. Таблица содержит ту же информацию, что и исходная таблица, но столбец Н включает объединенные данные из столбцов D и Е.
Рис. 122.2. Избегайте поиска по двум столбцам, комбинируя два столбца в один
После создания новой таблицы вы можете использовать простую формулу для выполнения поиска:=ВПР(Марка&Модель;h3:I12;2)
Стратегический анализ расходов в Excel
Пример 2. Определить, сколько денег потратил бы покупатель в феврале, если бы купил 2 л молока и 4 кг яблок на основании данных, содержащихся в таблице к первому примеру.
Вид таблиц данных:
Для расчетов используем следующую формулу:
Функция СУММ возвращает сумму значений в ячейках, определенных функциями ИНДЕКС, умноженных на значения, содержащиеся в ячейках B12 и B13 (2 л, 4 кг) соответственно.
Результат вычислений:
Формула выглядит громоздкой, однако она является универсальной, поскольку позволяет вычислить суммарные затраты на покупку двух любых продуктов в любых количествах за любой из указанных месяцев.