Логический оператор ЕСЛИ в Excel применяется для записи определенных условий. Сопоставляются числа и/или текст, функции, формулы и т.д. Когда значения отвечают заданным параметрам, то появляется одна запись. Не отвечают – другая.
Логические функции – это очень простой и эффективный инструмент, который часто применяется в практике. Рассмотрим подробно на примерах.
Синтаксис функции ЕСЛИ с одним условием
Синтаксис оператора в Excel – строение функции, необходимые для ее работы данные.
=ЕСЛИ (логическое_выражение;значение_если_истина;значение_если_ложь)
Разберем синтаксис функции:
Логическое_выражение – ЧТО оператор проверяет (текстовые либо числовые данные ячейки).
Значение_если_истина – ЧТО появится в ячейке, когда текст или число отвечают заданному условию (правдивы).
Значение,если_ложь – ЧТО появится в графе, когда текст или число НЕ отвечают заданному условию (лживы).
Пример:
Оператор проверяет ячейку А1 и сравнивает ее с 20. Это «логическое_выражение». Когда содержимое графы больше 20, появляется истинная надпись «больше 20». Нет – «меньше или равно 20».
Внимание! Слова в формуле необходимо брать в кавычки. Чтобы Excel понял, что нужно выводить текстовые значения.
Еще один пример. Чтобы получить допуск к экзамену, студенты группы должны успешно сдать зачет. Результаты занесем в таблицу с графами: список студентов, зачет, экзамен.
Обратите внимание: оператор ЕСЛИ должен проверить не цифровой тип данных, а текстовый. Поэтому мы прописали в формуле В2= «зач.». В кавычки берем, чтобы программа правильно распознала текст.
Функция ЕСЛИ в Excel с несколькими условиями
Часто на практике одного условия для логической функции мало. Когда нужно учесть несколько вариантов принятия решений, выкладываем операторы ЕСЛИ друг в друга. Таким образом, у нас получиться несколько функций ЕСЛИ в Excel.
Синтаксис будет выглядеть следующим образом:
=ЕСЛИ(логическое_выражение;значение_если_истина;ЕСЛИ(логическое_выражение;значение_если_истина;значение_если_ложь))
Здесь оператор проверяет два параметра. Если первое условие истинно, то формула возвращает первый аргумент – истину. Ложно – оператор проверяет второе условие.
Примеры несколько условий функции ЕСЛИ в Excel:
Таблица для анализа успеваемости. Ученик получил 5 баллов – «отлично». 4 – «хорошо». 3 – «удовлетворительно». Оператор ЕСЛИ проверяет 2 условия: равенство значения в ячейке 5 и 4.
В этом примере мы добавили третье условие, подразумевающее наличие в табеле успеваемости еще и «двоек». Принцип «срабатывания» оператора ЕСЛИ тот же.
Расширение функционала с помощью операторов «И» и «ИЛИ»
Когда нужно проверить несколько истинных условий, используется функция И. Суть такова: ЕСЛИ а = 1 И а = 2 ТОГДА значение в ИНАЧЕ значение с.
Функция ИЛИ проверяет условие 1 или условие 2. Как только хотя бы одно условие истинно, то результат будет истинным. Суть такова: ЕСЛИ а = 1 ИЛИ а = 2 ТОГДА значение в ИНАЧЕ значение с.
Функции И и ИЛИ могут проверить до 30 условий.
Пример использования оператора И:
Пример использования функции ИЛИ:
Как сравнить данные в двух таблицах
Пользователям часто приходится сравнить две таблицы в Excel на совпадения. Примеры из «жизни»: сопоставить цены на товар в разные привозы, сравнить балансы (бухгалтерские отчеты) за несколько месяцев, успеваемость учеников (студентов) разных классов, в разные четверти и т.д.
Чтобы сравнить 2 таблицы в Excel, можно воспользоваться оператором СЧЕТЕСЛИ. Рассмотрим порядок применения функции.
Для примера возьмем две таблицы с техническими характеристиками разных кухонных комбайнов. Мы задумали выделение отличий цветом. Эту задачу в Excel решает условное форматирование.
Исходные данные (таблицы, с которыми будем работать):
Выделяем первую таблицу. Условное форматирование – создать правило – использовать формулу для определения форматируемых ячеек:
В строку формул записываем: =СЧЕТЕСЛИ (сравниваемый диапазон; первая ячейка первой таблицы)=0. Сравниваемый диапазон – это вторая таблица.
Чтобы вбить в формулу диапазон, просто выделяем его первую ячейку и последнюю. «= 0» означает команду поиска точных (а не приблизительных) значений.
Выбираем формат и устанавливаем, как изменятся ячейки при соблюдении формулы. Лучше сделать заливку цветом.
Выделяем вторую таблицу. Условное форматирование – создать правило – использовать формулу. Применяем тот же оператор (СЧЕТЕСЛИ).
Скачать все примеры функции ЕСЛИ в Excel
Здесь вместо первой и последней ячейки диапазона мы вставили имя столбца, которое присвоили ему заранее. Можно заполнять формулу любым из способов. Но с именем проще.
Совет: Попробуйте использовать новые функции ПРОСМОТРX и XMATCH, а также улучшенные версии функций, описанные в этой статье. Эти новые функции работают в любом направлении и возвращают точные совпадения по умолчанию, что упрощает и упрощает работу с ними по сравнению с предшественниками.
Предположим, у вас есть список номеров офисов, и вам нужно знать, какие сотрудники работают в каждом из них. Таблица очень угрюмая, поэтому, возможно, вам кажется, что это сложная задача. С функцией подытов на самом деле это довольно просто.
Функции ВВ., а также ИНДЕКС и ВЫБОРПОЗ — одни из самых полезных функций в Excel.
Примечание: Мастер подметок больше не доступен в Excel.
Ниже в качестве примера по выбору вы можете найти пример использования в этой области.
=ВПР(B2;C2:E7,3,ИСТИНА)
В этом примере B2 является первым аргументом —элементом данных, который требуется для работы функции. В случае СРОТ ВЛ.В.ОВ этот первый аргумент является искомой значением. Этот аргумент может быть ссылкой на ячейку или фиксированным значением, таким как «кузьмина» или 21 000. Вторым аргументом является диапазон ячеек C2–:E7, в котором нужно найти и найти значение. Третий аргумент — это столбец в диапазоне ячеек, содержащий ищите значение.
Четвертый аргумент необязателен. Введите истина или ЛОЖЬ. Если ввести ИСТИНА или оставить аргумент пустым, функция возвращает приблизительное совпадение значения, указанного в качестве первого аргумента. Если ввести ЛОЖЬ, функция будет соответствовать значению, заведомо первому аргументу. Другими словами, если оставить четвертый аргумент пустым или ввести ИСТИНА, это обеспечивает большую гибкость.
В этом примере показано, как работает функция. При вводе значения в ячейку B2 (первый аргумент) в результате поиска в ячейках диапазона C2:E7 (2-й аргумент) выполняется поиск в ней и возвращается ближайшее приблизительное совпадение из третьего столбца в диапазоне — столбца E (третий аргумент).
Четвертый аргумент пуст, поэтому функция возвращает приблизительное совпадение. Иначе потребуется ввести одно из значений в столбец C или D, чтобы получить какой-либо результат.
Если вы хорошо разучились работать с функцией ВГТ.В.В., то в равной степени использовать ее будет легко. Вы вводите те же аргументы, но выполняется поиск в строках, а не в столбцах.
Использование индекса и MATCH вместо ВРОТ
При использовании функции ВПРАВО существует ряд ограничений, которые действуют только при использовании функции ВПРАВО. Это означает, что столбец, содержащий и look up, всегда должен быть расположен слева от столбца, содержащего возвращаемого значения. Теперь, если ваша таблица не построена таким образом, не используйте В ПРОСМОТР. Используйте вместо этого сочетание функций ИНДЕКС и MATCH.
В данном примере представлен небольшой список, в котором искомое значение (Воронеж) не находится в крайнем левом столбце. Поэтому мы не можем использовать функцию ВПР. Для поиска значения «Воронеж» в диапазоне B1:B11 будет использоваться функция ПОИСКПОЗ. Оно найдено в строке 4. Затем функция ИНДЕКС использует это значение в качестве аргумента поиска и находит численность населения Воронежа в четвертом столбце (столбец D). Использованная формула показана в ячейке A14.
Дополнительные примеры использования индексов и MATCH вместо В ПРОСМОТР см. в статье билла Https://www.mrexcel.com/excel-tips/excel-vlookup-index-match/ Билла Джилена (Bill Jelen), MVP корпорации Майкрософт.
Попробуйте попрактиковаться
Если вы хотите поэкспериментировать с функциями подытовки, прежде чем попробовать их с собственными данными, вот примеры данных.
Пример работы с ВЛОКОНПОМ
Скопируйте следующие данные в пустую таблицу.
Совет: Прежде чем врезать данные в Excel, установите для столбцов A–C ширину в 250 пикселей и нажмите кнопку «Перенос текста» (вкладка «Главная», группа «Выравнивание»).
Плотность |
Вязкость |
Температура |
0,457 |
3,55 |
500 |
0,525 |
3,25 |
400 |
0,606 |
2,93 |
300 |
0,675 |
2,75 |
250 |
0,746 |
2,57 |
200 |
0,835 |
2,38 |
150 |
0,946 |
2,17 |
100 |
1,09 |
1,95 |
50 |
1,29 |
1,71 |
0 |
Формула |
Описание |
Результат |
=ВПР(1,A2:C10,2) |
Используя приблизительное соответствие, функция ищет в столбце A значение 1, находит наибольшее значение, которое меньше или равняется 1 и составляет 0,946, а затем возвращает значение из столбца B в той же строке. |
2,17 |
=ВПР(1,A2:C10,3,ИСТИНА) |
Используя приблизительное соответствие, функция ищет в столбце A значение 1, находит наибольшее значение, которое меньше или равняется 1 и составляет 0,946, а затем возвращает значение из столбца C в той же строке. |
100 |
=ВПР(0,7,A2:C10,3,ЛОЖЬ) |
Используя точное соответствие, функция ищет в столбце A значение 0,7. Поскольку точного соответствия нет, возвращается сообщение об ошибке. |
#Н/Д |
=ВПР(0,1,A2:C10,2,ИСТИНА) |
Используя приблизительное соответствие, функция ищет в столбце A значение 0,1. Поскольку 0,1 меньше наименьшего значения в столбце A, возвращается сообщение об ошибке. |
#Н/Д |
=ВПР(2,A2:C10,2,ИСТИНА) |
Используя приблизительное соответствие, функция ищет в столбце A значение 2, находит наибольшее значение, которое меньше или равняется 2 и составляет 1,29, а затем возвращает значение из столбца B в той же строке. |
1,71 |
Пример ГВ.Г.В.В.
Скопируйте всю таблицу и вставьте ее в ячейку A1 пустого листа Excel.
Совет: Прежде чем врезать данные в Excel, установите для столбцов A–C ширину в 250 пикселей и нажмите кнопку «Перенос текста» (вкладка «Главная», группа «Выравнивание»).
Оси |
Подшипники |
Болты |
4 |
4 |
9 |
5 |
7 |
10 |
6 |
8 |
11 |
Формула |
Описание |
Результат |
=ГПР(«Оси»;A1:C4;2;ИСТИНА) |
Поиск слова «Оси» в строке 1 и возврат значения из строки 2, находящейся в том же столбце (столбец A). |
4 |
=ГПР(«Подшипники»;A1:C4;3;ЛОЖЬ) |
Поиск слова «Подшипники» в строке 1 и возврат значения из строки 3, находящейся в том же столбце (столбец B). |
7 |
=ГПР(«П»;A1:C4;3;ИСТИНА) |
Поиск буквы «П» в строке 1 и возврат значения из строки 3, находящейся в том же столбце. Так как «П» найти не удалось, возвращается ближайшее из меньших значений: «Оси» (в столбце A). |
5 |
=ГПР(«Болты»;A1:C4;4) |
Поиск слова «Болты» в строке 1 и возврат значения из строки 4, находящейся в том же столбце (столбец C). |
11 |
=ГПР(3;{1;2;3:»a»;»b»;»c»;»d»;»e»;»f»};2;ИСТИНА) |
Поиск числа 3 в трех строках константы массива и возврат значения из строки 2 того же (в данном случае — третьего) столбца. Константа массива содержит три строки значений, разделенных точкой с запятой (;). Так как «c» было найдено в строке 2 того же столбца, что и 3, возвращается «c». |
c |
Примеры индекса и match
В последнем примере функции ИНДЕКС и MATCH совместно возвращают номер счета с наиболее ранней датой и соответствующую дату для каждого из пяти городов. Так как дата возвращается как число, для ее формата используется функция ТЕКСТ. Функция ИНДЕКС использует результат, возвращенный функцией ПОИСКПОЗ, как аргумент. Сочетание функций ИНДЕКС и ПОИСКПОЗ используется в каждой формуле дважды — сперва для возврата номера счета, а затем для возврата даты.
Скопируйте всю таблицу и вставьте ее в ячейку A1 пустого листа Excel.
Совет: Перед тем как вировать данные в Excel, установите для столбцов A–D ширину в 250 пикселей и нажмите кнопку «Перенос текста» (вкладка «Главная», группа «Выравнивание»).
Счет |
Город |
Дата выставления счета |
Счет с самой ранней датой по городу, с датой |
3115 |
Казань |
07.04.12 |
=»Казань = «&ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Казань»,$B$2:$B$33,0),1)& «, Дата выставления счета: » & ТЕКСТ(ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Казань»,$B$2:$B$33,0),3),»m/d/yy») |
3137 |
Казань |
09.04.12 |
=»Орел = «&ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Орел»,$B$2:$B$33,0),1)& «, Дата выставления счета: » & ТЕКСТ(ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Орел»,$B$2:$B$33,0),3),»m/d/yy») |
3154 |
Казань |
11.04.12 |
=»Челябинск = «&ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Челябинск»,$B$2:$B$33,0),1)& «, Дата выставления счета: » & ТЕКСТ(ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Челябинск»,$B$2:$B$33,0),3),»m/d/yy») |
3191 |
Казань |
21.04.12 |
=»Нижний Новгород = «&ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Нижний Новгород»,$B$2:$B$33,0),1)& «, Дата выставления счета: » & ТЕКСТ(ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Нижний Новгород»,$B$2:$B$33,0),3),»m/d/yy») |
3293 |
Казань |
25.04.12 |
=»Москва = «&ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Москва»,$B$2:$B$33,0),1)& «, Дата выставления счета: » & ТЕКСТ(ИНДЕКС($A$2:$C$33,ПОИСКПОЗ(«Москва»,$B$2:$B$33,0),3),»m/d/yy») |
3331 |
Казань |
27.04.12 |
|
3350 |
Казань |
28.04.12 |
|
3390 |
Казань |
01.05.12 |
|
3441 |
Казань |
02.05.12 |
|
3517 |
Казань |
08.05.12 |
|
3124 |
Орел |
09.04.12 |
|
3155 |
Орел |
11.04.12 |
|
3177 |
Орел |
19.04.12 |
|
3357 |
Орел |
28.04.12 |
|
3492 |
Орел |
06.05.12 |
|
3316 |
Челябинск |
25.04.12 |
|
3346 |
Челябинск |
28.04.12 |
|
3372 |
Челябинск |
01.05.12 |
|
3414 |
Челябинск |
01.05.12 |
|
3451 |
Челябинск |
02.05.12 |
|
3467 |
Челябинск |
02.05.12 |
|
3474 |
Челябинск |
04.05.12 |
|
3490 |
Челябинск |
05.05.12 |
|
3503 |
Челябинск |
08.05.12 |
|
3151 |
Нижний Новгород |
09.04.12 |
|
3438 |
Нижний Новгород |
02.05.12 |
|
3471 |
Нижний Новгород |
04.05.12 |
|
3160 |
Москва |
18.04.12 |
|
3328 |
Москва |
26.04.12 |
|
3368 |
Москва |
29.04.12 |
|
3420 |
Москва |
01.05.12 |
|
3501 |
Москва |
06.05.12 |
Если произвести поиск по функциям подстановки, Google покажет, что ВПР намного популярнее функции ИНДЕКС. Оно и понятно, ведь чтобы придать функции ИНДЕКС тот же функционал, что и ВПР, необходимо воспользоваться еще одной формулой – ПОИСКПОЗ. Что касается меня, было всегда непросто попробовать и освоить две новые функции одновременно. Но они дают больше возможностей и гибкости в создании электронных таблиц. Но обо всем по порядку.
Функция ВПР()
Предположим, у вас есть таблица с данными о работниках. В первой колонке хранится табельный номер сотрудника, в остальных – другие данные (ФИО, отдел и т.д.). Если у вас есть табельный номер, то можно воспользоваться функцией ВПР, чтобы вернуть определенную информацию о сотруднике. Синтаксис формулы =ВПР(искомое_значение; таблица; номер_столбца; [интервальный_просмотр]). Она говорит Excel: «Найди в таблице строку, первая ячейка которой совпадает с искомым_значением, и верни значение ячейки с порядковым номером номер_столбца».
Но случаются ситуации, когда у вас есть имя сотрудника и необходимо вернуть табельный номер. На рисунке в ячейке A10 – имя работника и требуется определить табельный номер в ячейке B10.
Когда ключевое поле находится правее данных, которые вы хотите получить, ВПР не поможет. Если, конечно, была бы возможность задать номер_столбца -1, тогда проблем бы не было. Одним из распространенных решений является добавление нового столбца A, копирование имен сотрудников в этот столбец, заполнить табельные номера с помощью ВПР, сохранить их как значения и удалить временную колонку A.
Функция ИНДЕКС()
Чтобы решить нашу проблему в один шаг, необходимо воспользоваться формулами ИНДЕКС и ПОИСКПОЗ. Сложность данного подхода заключается в том, что требуется применить две функции, которые, возможно, вы никогда не применяли до этого. Для упрощения понимания решим эту задачу в два этапа.
Начнем с функции ИНДЕКС. Кошмарное название. Когда кто-нибудь говорит «индекс», у меня в голове не возникает ни единой ассоциации, чем же занимается эта функция. А требует она целых три аргумента: =ИНДЕКС(массив; номер_строки; [номер_столбца]).
Говоря по-простому, Excel идет в массив данных и возвращает значение, находящееся на пересечении указанной строки и столбца. Как будто бы просто. Таким образом, формула =ИНДЕКС($A$2:$C$6;4;2) вернет значение, находящееся в ячейке B5.
Применительно к нашей проблеме, чтобы вернуть табельный номер работника, формула должна выглядеть следующим образом =ИНДЕКС($A$2:$A$6;?;1). Выглядит как бессмыслица, но если мы заменим знак вопроса формулой ПОИСКПОЗ, у нас есть решение.
Функция ПОИСКПОЗ()
Синтаксис этой функции таков: =ПОИСКПОЗ(искомое_значение; просматриваемы_массив; [тип_сопоставления]).
Она говорит Excel: «Найди искомое_значение в массиве данных и верни номер строки массива, в которой это значение встречается». Таким образом, чтобы найти в какой строке находиться имя сотрудника в ячейке A10, необходимо прописать формулу =ПОИСКПОЗ(A10; $B$2:$B$6; 0). Если в ячейке A10 будет имя «Колин Фарел», тогда ПОИСКПОЗ вернет 5-ю строку массива B2:B6.
Ну, в принципе, все. Функция ПОИСКПОЗ указывает функции ИНДЕКС, в какой строке искать значение. Замените знак вопроса в формуле ИНДЕКС формулой ПОИСКОПОЗ и вы получите эквивалент ВПР с возможностью поиска данных, находящихся левее ключевого столбца. Получиться так:
=ИНДЕКС($A$2:$B$6;ПОИСКПОЗ(A10;$B$2:$B$6;0);1)
В начале было непривычно, был огромный соблазн вставить еще одну колону и работать, как всегда работал. Но со временем использование функции ИНДЕКС вошло в привычку. Оказалось, что это быстрее и требует меньших манипуляций. Так что в следующий раз, когда у вас возникнет желание задать номеру столбца отрицательное число в ВПР, воспользуйтесь сочетанием двух странных функций ИНДЕКС и ПОИСКПОЗ, чтобы решить свою проблему.
Поиск значений в списке данных
Смотрите также я и хотела не связанных диапазона разный. Таких строкПример во вложении(на да и наApplication.EnableEvents = False сформирует правильную ссылку задачи дизайн не. наименований строк и одно из них.30108,26). Как мы помним, когда таблица данныхОК ячейка диапазона (такжеПредположим, что требуется найти узнать нужую функцию и что с
В этой статье
ежемесячно около 100, первом листе как английском все.
newVal = Target на внешний источник имеет значения. Наличие
После этого все ячейки, столбцов. Без выполнения Так как урублей. Но проблема
у нас платеж используется с одним.
называемая начальной ячейкой). внутренний телефонный номер для нас, чтобы
ним делать ума вручную приходится сидеть должно быть и
Поиск значений в списке по вертикали по точному совпадению
Как сделала выборApplication.Undo информации. заголовка (шапки) важно. значения в которых
Примеры функции ВПР
данного условия инструмент нас изменения переменной состоит в том,
Примеры функций ИНДЕКС и ПОИСКПОЗ
проводится в конце
переменным значением. ВозьмемСледуйте инструкциям мастера.Формула сотрудника по его не приходить за
не приложу и всё это ниже пустые шаблоны что бы приoldval = TargetДелаем активной ячейку, куда В нашем примере соответствуют вышеописанному условию, при использовании двух
происходит по столбцам, что заёмщик в календарного месяца, то
наиболее типичный пример
Поиск значений в списке по вертикали по приблизительному совпадению
К началу страницыПОИСКПОЗ(«Апельсины»;C2:C7;0)
идентификационному номеру или готовыми решениями, аVideoAlex делать..
, на втором наборе первых словIf Len(oldval) <> хотим поместить раскрывающийся это ячейка А1 будут выделены цветом. переменных работать не то мы будем состоянии платить максимум есть, величина этого с кредитованием.Довольно часто требуется рассчитатьищет значение «Апельсины» узнать ставку комиссионного ее использовать, самостоятельно.: В общем вотЮрий М листе имена и
выскакивало нужное значение 0 And oldval список.
со словом «Деревья».
Поиск значений по вертикали в списке неизвестного размера по точному совпадению
Проанализировав табличный массив, можно будет. использовать поле
29000 рублей в аргумента будет равнаИтак, в настоящее время итоговый результат для в диапазоне C2:C7. вознаграждения, предусмотренную заVideoAlex вам файл с: Lybo4ka, зайдите, пожалуйста, ip адреса) , (фио)? Уж очень <> newVal Then
Открываем параметры проверки данных. То есть нужно сделать некоторые выводы.Затем выделяем весь полученный
«Подставить значения по столбцам месяц, то есть,«0» нам предлагаются следующие различных комбинаций вводных Начальную ячейку не определенный объем продаж.
: И я тут удф. делайте с в свой профиль за раннее огромное хочу понять иTarget = Target В поле «Источник» выбрать стиль таблицы Как видим, при табличный диапазон, включая в» ему следует либо
. Но, учитывая то,
Поиск значений в списке по горизонтали по точному совпадению
условия кредитования: данных. Таким образом следует включать в
Необходимые данные можно еще извиняюсь за ним что хотите и исправьте отображаемое спасибо всем кто осилить эту задачу.
& «,» & вводим формулу: =ДВССЫЛ(“[Список1.xlsx]Лист1!$A$1:$A$9”). со строкой заголовка.
существующем сроке кредитования
Поиск значений в списке по горизонтали по приблизительному совпадению
наименование столбцов, строк. Устанавливаем туда курсор,
найти банк, предлагающий что этот показательСрок кредитования – 3 пользователь сможет оценить
этот диапазон. быстро и эффективно тафтологииLyubov Vladimirova имя (ник): сейчас откликнулся на мольбуПомогите советом или newValИмя файла, из которого
Получаем следующий вид (36 месяцев), чтобы и ячейку с
а затем кликаем
Создание формулы подстановки с помощью мастера подстановок (только Excel 2007)
условия с более не является обязательным, года (36 месяцев); все возможные варианты1 находить в спискеLyubov Vladimirova: в каждой строке
оно с нарушением о помощи. ссылкой! Пожалуйста…Else берется информация для диапазона: вложиться в выше формулой по ячейке в низкой процентной ставкой, и по умолчанию,Сумма займа – 900000 действий, отобрать те, — это количество столбцов, и автоматически проверять
-
: Здравствуйте, дело в
-
в левом столбце наших Правил. У_Boroda_KuzmichTarget = newVal списка, заключено вСтавим курсор в ячейку,
-
обозначенную сумму ежемесячногоПЛТ исходном наборе данных, либо уменьшить тело
если его не
-
рублей; результат взаимодействия которых которое нужно отсчитать их правильность. Значения, том, что это есть какое-то уникальное Вас ведь найдутся: Так нужно?
-
: Как раз иEnd If квадратные скобки. Этот где будет находиться платежа, нам нужно. Переходим во вкладку которая содержит текущую
-
займа, либо увеличить использовать, значение иПроцентная ставка – 12,5% его удовлетворяет, и, справа от начальной возвращенные поиском, можно был мой пример, ключ слово, по
-
на клавиатуре символы
В соседний столбец
support.office.com
Таблица данных в Microsoft Excel
начните с изученияIf Len(newVal) = файл должен быть выпадающий список. Открываем взять заём не«Данные» величину процентов. После срок кредитования. Просчитать так подразумевается равным годовых. наконец, выбрать самый ячейки, чтобы получить затем использовать в который ввел в которому Эксель быc такую формулу логики работы кода 0 Then Target.ClearContents открыт. Если книга параметры инструмента «Проверка
превышающий 860000,00 рублей,. Как и в
того, как координаты различные варианты действий
Использование таблицы данных
«0»Выплаты происходят в конце оптимальный вариант. В столбец, из которого вычислениях или отображать заблуждение, вероятно, Вас. определял, что ки200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИ(A2=» Name=»;A2&ИНДЕКС(Лист2!A$4:A$541;СЧЁТЕСЛИ(A$1:A2;A2));ЕСЛИ(A2=» Address=»;A2&ИНДЕКС(Лист2!B$4:B$541;СЧЁТЕСЛИ(A$1:A2;A2));A2))&»» в этом примере.Application.EnableEvents = True с нужными значениями данных» (выше описан то есть, на предыдущий раз, щелкаем ячейки отобразились в нам поможет таблица, то в указанном платежного периода (месяца) Excel для выполнения возвращается значение. В как результаты. Существует помог разрешить вопрос. этой строке стоитhЕе можно укоротить,Откройте файл ПоискEnd If находится в другой
путь). В поле 40000 меньше первоначально по кнопке поле, жмем на подстановок. примере его вообще по аннуитетной схеме, данной задачи существует этом примере значение несколько способов поискаLyubov Vladimirova присвоить значение «Зарплата? я сознательно так
значений в базеEnd Sub папке, нужно указывать «Источник» прописываем такую запланированного.«Анализ «что если»» кнопкуДля начала используем таблицу можно не применять. то есть, равными специальный инструмент – возвращается из столбца значений в списке: VideoAlex, спасибо большое
Эля» или «зарплатаСпасибо! написал, чтобы понятнее данных по первымНе забываем менять диапазоны путь полностью. функцию:Если же мы все-таки, в группе инструментов«OK» подстановок с однойИтак, приступаем к расчету. долями. При этом,«Таблица данных» D данных и отображения за помощь. Вероятно,
Дима», и мнеСергей Беляев было буквам… на «свои». СпискиВозьмем три именованных диапазона:Протестируем. Вот наша таблица
Способ 1: применение инструмента с одной переменной
намерены брать кредит«Работа с данными». переменной. Посмотрим, как Выделяем ячейку на вначале всего срока
(Продажи результатов.
- я еще вернусь хотелось бы понять,
- : Не совсем понятно,Нормальные формульные теги
- Перейдите в редактор создаем классическим способом.
Это обязательное условие. Выше со списком на размером 900000 рублей,. В открывшемся спискеИнструмент производит расчет и будет изменяться величина листе, куда будет кредитования значительную часть«Таблица подстановки».Поиск значений в списке с незначительными вопросами, какая формула могла потому что восьмая преобразовывают N в VBA А всю остальную
описано, как сделать одном листе: то срок кредитования выбираем пункт заполняет весь табличный обязательного месячного платежа выводиться расчетное значение. выплат составляют процентные). Давайте узнаем, какК началу страницы
по вертикали по но большое-большое, огромное бы нам помочь позиция включает вторую. Ч, поэтому обставилСлева будет VBAProject, работу будут делать обычный список именованнымДобавим в таблицу новое должен составлять 4«Таблица данных…» диапазон значениями, которые
при различных вариациях
Клацаем по кнопке платежи, но по им пользоваться дляДля выполнения этой задачи точному совпадению Вам спасибо. автоматизировать этот процесс. По какому признаку формулу VBA-шными тегами. выделите Forms-ufrmNilem – макросы. диапазоном (с помощью
значение «елка». года (48 месяцев).. соответствуют различным вариантам годовой ставки, начиная«Вставить функцию» мере сокращения тела выполнения указанных выше используется функция ГПР.Поиск значений в спискеМихаил С.Скажите пожалуйста, для
исключить вторую позицию?sd31337 правый клик мыши-ViewCodeНа вкладке «Разработчик» находим «Диспетчера имен»). Помним,Теперь удалим значение «береза». Только в такомЗапускается окно инструмента процентной ставки. Если
от. процентные платежи уменьшаются, сценариев. См. пример ниже. по вертикали по: тогда примерно так Вашего примера сВот решение с:Перед вами будет инструмент «Вставить» – что имя не
Осуществить задуманное нам помогла случае размер ежемесячного«Таблица данных» установить курсор в9,5%Запускается а увеличивается размерСкачать последнюю версиюФункция ГПР выполняет поиск приблизительному совпадению (см. файл) Анной, Эксель определяет дополнительными столбцами. Можно_Boroda_ код, описывающий работу «ActiveX». Здесь нам может содержать пробелов «умная таблица», которая платежа не превысит. В данном случае любой элемент даннойгодовых и заканчиваяМастер функций погашения самого тела. Excel по столбцуПоиск значений по вертикалиLyubov Vladimirova релевантное значение по
- убрать на скрытый, формы. нужна кнопка «Поле и знаков препинания. легка «расширяется», меняется. установленную границу в
- нам потребуются оба табличной области, то12,5%. Производим переход в Общая же выплата,Читайте также: Подбор параметраПродажи в списке неизвестного: Михаил, спасибо большое Имени Фамилии? У лист. Решение тупое,Огромное СПАСИБО ,
- При инициализации формы со списком» (ориентируемсяСоздадим первый выпадающий список,
Теперь сделаем так, чтобы 29000 рублей. поля. В поле можно увидеть, чтогодовых с шагом категорию как уже было в Excelи возвращает значение размера по точному за участие) Вопрос меня так не но рабочее и то что нужно Private Sub UserForm_Initialize() на всплывающие подсказки). куда войдут названия
можно было вводитьТаким образом, воспользовавшись данным«Подставлять значения по столбцам в строке формул0,5%«Финансовые» сказано выше, остается
Инструмент из строки 5 в совпадению решен, огромное спасибо, получалось. Мой Эксель понятное решение. Что =) в массив xЩелкаем по значку – диапазонов. новые значения прямо табличным массивом и в» отображается не обычная. Все остальные условия, выбираем из перечня без изменений.«Таблица данных» указанном диапазоне.Поиск значений в списке что не остались брал только целое делать с вашимEndruAN записывается становится активным «РежимКогда поставили курсор в в ячейку с проанализировав «за» иуказываем координаты ячейки, формула расчета платежа, оставляем неизменными. Чертим наименование
Нужно рассчитать, какова будетпредназначен для того,Дополнительные сведения см. в по горизонтали по равнодушны) значение из ячейки, Ивановым пока не: Есть в экселедиапазон от A2
- конструктора». Рисуем курсором поле «Источник», переходим этим списком. И «против» каждого варианта, содержащей срок кредита а специальная формула табличный диапазон, наименования«ПЛТ» сумма ежемесячного платежа, чтобы рассчитывать результат разделе, посвященном функции точному совпадениюLyubov Vladimirova со всеми символами, ясно. Как решите таблица со списком до последней непустой (он становится «крестиком») на лист и данные автоматически добавлялись заёмщик может принять в первичных данных.
- неразрывного массива. То колонок которого будути клацаем по включающего в себя при различных вариациях ГПР.Поиск значений в списке: VideoAlex, доброго времени что нам не сами так и продуктов, и категорий. ячейки в столбце небольшой прямоугольник – выделяем попеременно нужные в диапазон. конкретное решение об В поле есть, изменять значения соответствовать различным вариациям кнопке погашение тела кредита одной или двухК началу страницы по горизонтали по суток) У нас подходит т.к. идентификатор ответ получите. Например, каши - А (Sheet1) место будущего списка. ячейки.Сформируем именованный диапазон. Путь: условиях кредитования, выбрав«Подставлять значения по строкам
- в отдельных ячейках процентной ставки. При«OK» и выплат по определенных переменных. ПослеДля выполнения этой задачи приблизительному совпадению возникли проблемы с всегда другой, вLyubov Vladimirova рис, гречка… Нужноx = Range(«A2»,Жмем «Свойства» – открываетсяТеперь создадим второй раскрывающийся «Формулы» — «Диспетчер
- наиболее отвечающий его в» теперь нельзя. Удалять этом строку. процентам. Для этого расчета все возможные используется функция ГПР.Создание формулы подстановки с макросом ) в конце (5W3229PU24E5U). А: Добрый день, Сергей. что-бы при выборе Cells(Rows.Count, 1).End(xlUp)).Value
- перечень настроек. список. В нем имен» — «Создать». пожеланиям вариант изуказываем адрес ячейки результаты расчета можно«Ежемесячные выплаты»Вслед за этим происходит в Экселе имеется варианты предстанут вВажно: помощью мастера подстановок англоязычной версии у можете, пожалуйста, пояснить 8-я и 2-я ячейки с выпадающимЗатем вы вводитеВписываем диапазон в строку должны отражаться те Вводим уникальное название всех возможных. исходных параметров, содержащей
- только все вместе,оставляем так, как активация окошка аргументов оператор виде таблицы, которую Значения в первой (только Excel 2007) меня появляется такая алгоритм действий, если позиция отличны друг списком категорий, в в TextBox1 какую-либо ListFillRange (руками). Ячейку, слова, которые соответствуют диапазона – ОК.Конечно, таблицу подстановок можно величину тела кредита. а не по есть. В первой вышеуказанной функции.ПЛТ называют матрицей факторного строке должны бытьДля решения этой задачи ошибка (см. скриншот) не сложно? Я от друга, ничего другой ячейке формировался букву, срабатывает процедура
- куда будет выводиться выбранному в первомСоздаем раскрывающийся список в использовать не только После того, как отдельности. её ячейке должнаСтавим курсор в поле. анализа. отсортированы по возрастанию. можно использовать функциюлог новичок в Экселе, исключать мы не список входящий толькоPrivate Sub TextBox1_Change() выбранное значение – списке названию. Если любой ячейке. Как для расчета кредитных
все данные введены.Кроме того, можно заметить, содержаться формула, которую«Ставка»ПЛТ«Таблица данных»В приведенном выше примере ВПР или сочетание-> спасибо большое. можем. В том-то в эту категорию. и в ListBox1
в строку LinkedCell. «Деревья», то «граб», это сделать, уже вариантов, но и Клацаем по кнопке что величина ежемесячного мы рассчитали ранее., после чего кликаем
относится к группеотносится к группе
Способ 2: использование инструмента с двумя переменными
функция ГПР ищет функций ИНДЕКС иerror111720_02.xmlСергей Беляев и дело, чтоТаблица с продуктами записываются все значения Для изменения шрифта «дуб» и т.д. известно. Источник – для решения множества«OK» платежа при 12.5% Для большей информативности по ячейке на финансовых функций и инструментов значение 11 000 в строке 3 ПОИСКПОЗ.Errors were detected: Извиняюсь, что забыл
- я сама не построена по принципу из и размера – Вводим в поле имя диапазона: =деревья. других задач.. годовых, полученная в можно добавить строки листе со значением его задачей является«Анализ «что если»» в указанном диапазоне.Дополнительные сведения см. в in file ‘C:UsersUser_XDownloads1 решение приложить. могу это решить ячейка 1 категория,диапазона х, начинающиеся Font. «Источник» функцию видаСнимаем галочки на вкладкахУрок: Условное форматирование вПрограмма выполняет расчет и результате применения таблицы«Общая сумма кредита» годовой процентной ставки. вычисление ежемесячного кредитного, которая размещена на Значение 11 000 отсутствует, поэтому разделе, посвященном функции
- (2).xlsm’VideoAlex ) Придется программу ячейка 2 продукт. на эту букву.Скачать пример выпадающего списка =ДВССЫЛ(E3). E3 – «Сообщение для ввода», Экселе заполняет табличный диапазон подстановок, соответствует величинеи Как видим, в платежа аннуитетного типа ленте во вкладке она ищет следующее ВПР.-
- : Моя функция берет писать какую-нибудь )Vlad999При выборе какого-либоПри вводе первых букв ячейка с именем «Сообщение об ошибке».В общем, нужно отметить, данными. На пересечении при том же«Общая сумма процентов» поле тут же на основании суммы«Данные» максимальное значение, неЧто означает:Removed Part: /xl/vbaProject.bin столько сколько ей Раз Экселем нет: Условия Excel 2007 значения в ListBox1
- с клавиатуры высвечиваются первого диапазона. Если этого не что таблица подстановок строк и столбцов размере процентов, которую. Столбец, в котором отображаются её координаты. тела кредита, срокав блоке
- превышающее 11 000, и возвращает=ИНДЕКС(нужно вернуть значение из part. (Visual Basic дают решения. Спасибо) не это ищете? происходит выделение этого подходящие элементы. ИБывает, когда из раскрывающегося сделать, Excel не является очень полезным теперь можно наблюдать, мы получили путем находится расчет, делаем Но, как мы кредитования и процентной«Работа с данными»
- 10 543. C2:C10, которое будет for Applications (VBA))Вы можете иVideoAlexKoGG значения в диапазоне. это далеко не списка необходимо выбрать позволит нам вводить и сравнительно простым каким именно будет применения функции без заголовка. помним, нам нужна ставки. Синтаксис этой
- . До версии ExcelДополнительные сведения см. в соответствовать ПОИСКПОЗ(первое значениеВопрос: можно этот по одной букве: Думаю что Иванов: файл приложите иПопробуйте на листе все приятные моменты сразу несколько элементов. новые значения. инструментом для определения ежемесячный платеж, приПЛТДалее рассчитаем общую сумму месячная ставка, а функции представлен в 2007 этот инструмент разделе, посвященном функции «Капуста» в массиве макрос мне в искать соответствие, но и Дима это опишите в какой
- Sheet1 заполнить базу данного инструмента. Здесь Рассмотрим пути реализацииВызываем редактор Visual Basic.
результата при различных соответствующей величине годовых. Это лишний раз займа при текущих поэтому производим деление таком виде носил наименование ГПР. B2:B10)) Plain Text увидеть? вероятность ошибки будет один человек и ячейке вып. список
данных, нажав на можно настраивать визуальное задачи. Для этого щелкаем комбинациях переменных. Применив процентов и указанном доказывает правильность расчета. условиях. Для этого полученного результата на=ПЛТ(ставка;кпер;пс;бс;тип)«Таблица подстановки»
К началу страницыФормула ищет в C2:C10 Ибо компьютер ругается очень велика зарплата Иванову будет и где должно стрелку Заполнить.. ( представление информации, указыватьСоздаем стандартный список с правой кнопкой мыши
одновременно с ним сроке кредитования.Проанализировав данный табличный массив, выделяем первую ячейку 12 («Ставка»
, что даже болееПримечание:
первое значение, соответствующее на него иVideoAlex или Диме - появляться содержание выбранной в В1 установите в качестве источника помощью инструмента «Проверка по названию листа условное форматирование, кромеКак видим, значений довольно
следует сказать, что,
lumpics.ru
Выпадающий список в Excel с помощью инструментов или макросов
строки/12— аргумент, определяющий точно отражало его Поддержка надстройки «Мастер подстановок» значению рубит на корню.
: Алгоритм прост до не критично. ТС категории. 20 – сразу два столбца. данных». Добавляем в и переходим по того, можно визуализировать много. Для решения как видим, только
Создание раскрывающегося списка
«Общая сумма кредита»). процентную ставку кредитных суть, чем нынешнее в Excel 2010
Капуста Прикрепленные файлы Error_Message1.png безобразия. просто устала и
- Сделано.будет 20 случайных
- Marina_Spb исходный код листа вкладке «Исходный текст». полученную информацию.
- других задач их при ставке 9,5%и умножаем содержимоеВ поле
выплат. Показатель выставляется название.
прекращена. Эта надстройка
Выпадающий список в Excel с подстановкой данных
(B7), и возвращает (4.52 КБ)Функция берет каждое по запарке дваLybo4ka значений).: Здравствуйте! готовый макрос. Как
- Либо одновременно нажимаемАвтор: Максим Тютюшев может быть ещё годовых получается приемлемый
- ячеек«Кпер» за период. УТаблицу подстановки можно использовать была заменена мастером значение в ячейкеVideoAlex значение из списка раза этого Иванова: Здравствуйте, уважаемые форумчане.Затем кликните ПоискСделала выбор из это делать, описано
- клавиши Alt +Под выпадающим списком понимается больше. Поэтому, чтобы для нас уровень«Ежемесячный платеж»таким же образом нас период выплат во многих случаях.
функций и функциями C7 (: Public Function Morgan_Freeman(chto
соответствий и сравнивает воткнула. Сергей Беляев,
Столкнулись с одной
с формой и списка, все хорошо, выше. С его
F11. Копируем код содержание в одной сделать выдачу результатов ежемесячного платежа (менееи вносим координаты ячеек равен месяцу. Поэтому
- Например, типичный вариант, для работы со100 As String, gde его с НАЧАЛОМ
- хотелось бы посмотреть задачкой, с которой проделайте процедуру, описанную но когда 200 помощью справа от
- (только вставьте свои ячейке нескольких значений. более наглядной и 29000 рублей).«Срок кредита» срока кредита. В годовую ставку в
- когда нужно рассчитать ссылками и массивами.). As Range) Dim заданной строки. Когда на решение. не можем справиться, выше. значений (ФИО), сложно выпадающего списка будут параметры).Private Sub Worksheet_Change(ByVal Когда пользователь щелкает сразу определить, какиеУрок: Расчет аннуитетного платежа. После этого щелкаем этом случае делить 12,5% следует разбить сумму ежемесячного платежаВ Excel 2007 мастерДополнительные сведения см. в arr(), i As находит совпадение простоLybo4ka, макросы подойдут? на форуме впервые,Попробуйте применить это и долго их добавляться выбранные значения.Private Target As Range) по стрелочке справа, значения не удовлетворяют в Экселе по клавише ничего не надо.
- на число месяцев по кредиту при
- подстановок создает формулу разделах, посвященных функциям Integer arr = берет соответствующее значениеПока писал ТС надеюсь на любезность к своему файлу искать в списке.
Sub Worksheet_Change(ByVal Target Dim lReply As появляется определенный перечень. заданному условию, можноКонечно, отыскать в настоящееEnter
В поле в году, то различных вариациях периода
Выпадающий список в Excel с данными с другого листа/файла
подстановки, основанную на ИНДЕКС и ПОИСКПОЗ. gde For i из списка соответствий. ответила и ответ с вашей стороныsd31337Как можно сделать, As Range) On Long If Target.Cells.Count Можно выбрать конкретное.
- использовать инструменты визуализации. время банки, которые.
- «Пс» есть, 12. кредитования и суммы
данных листа, содержащихК началу страницы = 1 To Извините за тафталогию меня поразил. Как и подсказке, можно: Добрый день! что бы при Error Resume Next > 1 Then
Как сделать зависимые выпадающие списки
Очень удобный инструмент Excel
В нашем случае выдают кредит подДля расчета общей суммынужно указать координаты«Кпер» займа, либо периода названия строк иДля выполнения этой задачи
- UBound(arr, 1) IfСергей Беляев тогда отличать Иванова
- ли нашу потребностьНе раз спасали наборе первых слов If Not Intersect(Target, Exit Sub If
- для проверки введенных это будет условное 9,5% годовых, очень процентов при текущих ячейки, содержащей величину— аргумент, определяющий кредитования и процентной столбцов. С помощью используется функция ВПР. Left(chto, Len(arr(i, 1))): Ексель как и от Дмитрия? реализовать при помощи
Выбор нескольких значений из выпадающего списка Excel
на Вашем форуме выскакивало нужное значение? Range(«Е2:Е9»)) Is Nothing Target.Address = «$C$2″ данных. Повысить комфорт
- форматирование. Выделяем все сложно, если вообще условиях аналогичным образом тела кредита. Выполняем численность периодов за ставки. Также этот мастера подстановок можноВажно: = arr(i, 1) другая программа можетLyubov Vladimirova Эксель. .Спасибо And Target.Cells.Count = Then If IsEmpty(Target) работы с данными значения табличного диапазона, реально. Поэтому посмотрим, отнимаем от общей это. Также ставим весь срок предоставления инструмент можно использовать найти остальные значения Значения в первой Then Morgan_Freeman =
- справиться с любой: Подойдет все, еслиВ Excel таблицеСтолкнулся с задачейSerge_007 1 Then Application.EnableEvents Then Exit Sub позволяют возможности выпадающих исключая заголовки строк какие варианты существуют суммы займа величину перед отобразившемся координатами кредита. В нашем при анализе моделей в строке, если строке должны быть arr(i, 2) Next проблемой(ну почти с будет работать…список справа-
- нам нужно автоматически добавления новых устройств: http://www.excelworld.ru/board/vba/tricks/find_in_database/9-1-0-27 = False If If WorksheetFunction.CountIf(Range(«Деревья»), Target)
списков: подстановка данных, и столбцов.
вложиться в приемлемый тела кредита. Для
знак примере период равен инвестиционных проектов. известно значение в
отсортированы по возрастанию.
End Function
любой). Проблема заключается
он будет дополняться,
сопоставить ячейки с к карте мониторингаMarina_Spb
Len(Target.Offset(0, 1)) = = 0 Then отображение данных другого
Перемещаемся во вкладку
уровень ежемесячного платежа
вывода результата на
«-» одному месяцу, а
Но также следует знать,
одном столбце, и
В приведенном выше примере
Влад в том, что («оплата за телефон, рандомным текстом (содержащим, .: Я правильно поняла,
Выпадающий список с поиском
- 0 Then Target.Offset(0, lReply = MsgBox(«Добавить листа или файла,«Главная» при различных комбинациях экран щелкаем по
- . Дело в том, срок кредитования составляет что чрезмерное применение наоборот. В формулах, функция ВПР ищет: Хых… Видали мы
- у вас противоречивые Платеж за одну
- однако, чёткие ключевыеРуками добавлять почти что это можно 1) = Target введенное имя « наличие функции поискаи клацаем по других переменных: величины
кнопке
что функция 3 года или данного инструмента может которые создает мастер имя первого учащегося такие траблы) Вылазит условия, поэтому ни услугу, платеж за слова, которые мы 600 объектов очень
exceltable.com
Подстановка данных при вводе из имеющегося списка (Формулы/Formulas)
только с помощью Else Target.End(xlToRight).Offset(0, 1)
& _ Target и зависимости. значку тела займа иEnterПЛТ
36 месяцев. Таким привести к торможению подстановок, используются функции с 6 пропусками в
на тех машинах,
на Си ни другую услугу, чтобы
загодя знаем), с долго , если макросов? = Target End & » в
Путь: меню «Данные» -«Условное форматирование» срока кредитования. При. Таким образом мыпо умолчанию выдает образом, количество периодов системы, так как
ИНДЕКС и ПОИСКПОЗ. диапазоне A2:B7. Учащихся
где при установке на на Асемблере в этих цифрах унифицированным описанием этих есть люди знающиеNic70y If Target.ClearContents Application.EnableEvents выпадающий список?», vbYesNo инструмент «Проверка данных»
. Он расположен в этом процентную ставку получаем сумму, которую итоговый результат именно
будет рано 36.
пересчет данных производитсяЩелкните ячейку в диапазоне. с офиса была снята даже вашу проблему не сидеть и ячеек, которое мы как из списка: Если к ячейке, = True End + vbQuestion) If — вкладка «Параметры». блоке инструментов оставим неизменной (12,5%).
переплачиваем при возврате с отрицательным знаком,«ПС» постоянно. Поэтому рекомендуетсяНа вкладке6 галка на установке
не решить. У не путаться из
также загодя подготовим в .тхт либо в которую нужно If End Sub lReply = vbYes
Тип данных –«Стили» В решении данной займа.
справедливо считая ежемесячный— аргумент, определяющий
в небольших табличныхФормулы пропусками в таблице нет,
VBA. вас нет условия. первого столбца..)мне бы
и которое должно из столбца , вводить, будет прилегатьЧтобы выбранные значения показывались
Then Range(«Деревья»).Cells(Range(«Деревья»).Rows.Count + «Список».на ленте. В задачи нам поможет
Теперь настало время применить кредитный платеж убытком.
приведенную стоимость кредита, массивах для решенияв группе
поэтому функция ВПРrango Вы не привели хотелось увидеть решение,
вставляться напротив них, подставить значения по
сам список, то снизу, вставляем другой 1, 1) =Ввести значения, из которых
раскрывшемся меню выбираем инструмент инструмент Но нам для то есть, это аналогичных задач не
Решения ищет первую запись
: Добрый день! пример Иванова Дмитрия как это можно в зависимости от
нужно мне критерию и макросов не
excelworld.ru
подставить значения из списка (Формулы/Formulas)
код обработчика.Private Sub Target End If
будет складываться выпадающий пункт«Таблица данных»
«Таблица данных» наглядности применения таблицы размер тела кредита использовать этот инструмент,
выберите команду со следующим максимальнымимеются листы с такого как у реализовать. содержащейся в нихСуть проблемы . надо. Worksheet_Change(ByVal Target As
End If End
список, можно разными
«Правила выделения ячеек»
с использованием двух
. Выделяем весь табличный
данных нужно, чтобы
на момент его
а применять копирование
Подстановка
значением, не превышающим названиями по месяцам вас во второйVideoAlex части текста. ФормулуЕсть список вида
А без Вашего Range) On Error
If End Sub способами:. В дополнительном списке переменных.
массив, кроме наименований
данное число было
выдачи. В нашем
формул с помощью
. 6. Она находит внутри которых одинаковые позиции. Если вам
: Когда ответите как ВПР / VLOOKUP50109 10.50.27.1 примера неизвестно. Resume Next IfСохраняем, установив тип файлаВручную через «точку-с-запятой» в кликаем по позицииЧертим новый табличный массив. строк. После этого положительным. Поэтому мы
случае этот показатель маркера заполнения.
Если команда значение 5 и возвращает
таблицы.
надо искать такого, отличить иванова от не подходит, так50111 10.50.27.129
Marina_Spb Not Intersect(Target, Range(«Н2:К2»)) «с поддержкой макросов». поле «Источник».
«Меньше…» Теперь в наименованиях переходим во вкладку и ставим знак
равен 900000 рублей.Оправданным применениеПодстановка
excelworld.ru
Подстановка при выборе из выпадающего списка
связанное с нимЗадача сделать сводную но после него дмитрия тогда можно как она ищет50117 10.50.29.1: Мозг вскипел) изучила Is Nothing AndПереходим на лист соВвести значения заранее. А. столбцов будет указываться
«Данные»«минус»«БС»«Таблицы данных»
недоступна, необходимо загрузить имя таблицу и универсальную
не будет больше будет взяться за или точное или50118 10.50.29.65 ссылку Сергея, ну Target.Cells.Count = 1 списком. Вкладка «Разработчик»
в качестве источника
CyberForum.ru
Автоматическая подстановка значений в необходимые ячейки
Вслед за этим открывается срок кредитования (от. Щелкаем по кнопкеперед одним из— аргумент, указывающийявляется только в надстройка мастера подстановок.Алексей формулу собирающую данные данных, то это решение а пока же примерное совпадение,
50122 10.50.30.65 не осилить мне Then Application.EnableEvents = — «Код» - указать диапазон ячеек окно настройки условного2 на ленте аргументов функции. Как на величину тела больших табличных диапазонах,Загрузка надстройки мастера подстановок. из всех листов, не проблема. смысла не вижу получается или ничего50130 10.50.32.65 это. Я даже False If Len(Target.Offset(1, «Макросы». Сочетание клавиш со списком. форматирования. В левомдо«Анализ «что если»» известно, умножение кредита на момент когда копирование формулНажмите кнопкуДополнительные сведения см. в с авто подстановкойМихаил С.Lyubov Vladimirova не комментирует, т.к.50133 10.50.33.1 не понимаю с 0)) = 0
для быстрого вызоваНазначить имя для диапазона поле указываем величину,6
, которая размещена в«минус» его полной выплаты. может отнять большоеMicrosoft Office разделе, посвященном функции
названия листов из: Lyubov Vladimirova, а: Хорошо, дайте мне точно совпадать кодгде чего начать. Пример Then Target.Offset(1, 0) – Alt + значений и в менее которой ячейкилет в месяцах группе инструментовна
Естественно, что данный
количество времени, а, а затем — ВПР. ячеек строки 1 вот к этим немного времени.
напротив фамилии не50109 хороший, но для = Target Else F8. Выбираем нужное поле источник вписать будут выделены. Как с шагом в«Работа с данными»«минус» показатель будет равен
во время самой кнопкуК началу страницыrango данным что соответствует?Вот здесь я будет 2 раза\ имя устройства профи. Target.End(xlDown).Offset(1, 0) = имя. Нажимаем «Выполнить». это имя. помним, нас удовлетворяет один год), а
(в Excel 2016в итоге дает нулю. Этот аргумент процедуры увеличивается вероятностьПараметры ExcelДля выполнения этой задачи: Другими словами нужноLyubov Vladimirova добавила ориентировочный именованный никогда или же10.50.27.1При том, что Target End If
Когда мы введем в
Любой из вариантов даст условие, при котором в строках — группа инструментов«плюс»
не является обязательным допущения ошибок. Нои выберите категорию используются функции СМЕЩ вместо обычной ссылки: Пожалуйста, не могли список тех значений, вписывает любое ближайшее\ IP адрес с обычными формулами Target.ClearContents Application.EnableEvents = пустую ячейку выпадающего такой результат. ежемесячный платеж по величина тела кредита
«Прогноз». параметром. Если его и в этомНадстройки и ПОИСКПОЗ. на ячейку другого
бы вы описать которые должны подставляться значение, т.е. любое
устройства excel я неплохо True End If списка новое наименование, кредиту будет составлять (от). Затем открывается небольшоеВ поля пропустить, то подразумевается, случае рекомендуется в
.Примечание: листа вида алгоритм данной функции? к каждой соответствующей описание, а намНеобходимо подряд подставить справляюсь) End Sub появится сообщение: «ДобавитьНеобходимо сделать раскрывающийся список
менее850000 меню. В нем«Бс» что он равен
диапазоне таблицы подстановкиВ поле Данный метод целесообразно использовать=сентябрь!R[1]C Если не сложно? строке. Извините пожалуйста, нужна чёткая идентификация значения вПрошу помощи!?Чтобы выбираемые значения отображались введенное имя баобаб со значениями из29000до выбираем позицию
и числу «0». отключить автоматический пересчетУправление при поиске данныхиспользовать формулу Спасибо. Если нет, если ввела в по части текста,Name=Marina_Spb в одной ячейке, в выпадающий список?». динамического диапазона. Еслирублей. Вписываем данное950000«Таблица данных…»«Тип»«Тип»
формул, во избежаниевыберите значение в ежедневно обновляемом
с подстановкой значения названия то ладно, будем заблуждение отправленным вначале т.е. по фамилии
50270: Спустя почти пять разделенные любым знакомНажмем «Да» и добавиться вносятся изменения в
число. В правомрублей с шагом.
данные вообще не— также необязательный излишней нагрузки наНадстройки Excel внешнем диапазоне данных. книги разбираться ) файлом со своими или по названию
\сюда добавить следующий часов разобралась я препинания, применим такой еще одна строка имеющийся диапазон (добавляются поле существует возможность10000Открывается небольшое окошко, которое вносим. Клацаем по аргумент. Он сообщает систему.и нажмите кнопку Известна цена виз ячейки: ВместоVideoAlex отметками. Здесь немного конторы, т.к. большинство объект немного что такое модуль. со значением «баобаб». или удаляются данные), выбора цвета выделения,рублей). При этом
так и называется кнопке о том, когдаГлавное отличие между различными
Перейти столбце B, носентябрь: Да вроде описал. понятнее информация выглядит? платежей у насLeft=43 макрос, даже смогла
Private Sub Worksheet_Change(ByValКогда значения для выпадающего
они автоматически отражаются хотя можно оставить обязательным условием является«Таблица данных»«OK» именно будет проводиться вариантами применения таблицы. неизвестно, сколько строк- формула.Lyubov VladimirovaVideoAlex повторяющиеся, но названия
Top=43 добавить перевод «из Target As Range) списка расположены на
в раскрывающемся списке. его и по то, чтобы ячейка,. Как видим, у. платеж: в начале данных состоит в
В области данных возвратит сервер,Не понимаю какую: Здравствуйте, к этим: Теперь появился вопрос у многих неочевидные.Group=8
цифры в сумму»,On Error Resume другом листе или
Выделяем диапазон для выпадающего умолчанию. После того, в которой находится него имеется дваПосле этого оператор производит периода (параметр –
количестве переменных, принимающихДоступные надстройки а первый столбец комбинацию нужно использовать данным будет соответствовать какая строка соответствующая.(ID=1
но с подстановкой
Next
в другой книге,
списка. В главном как все требуемые формула расчета (в
поля. Так как
подсчет и выводит«1» участие в вычислении:
установите флажок рядом не отсортирован вVlad999 «Зарплата Демида»(которое мы Так то первыйКак это теоретически можноAddress= значение из списка
If Not Intersect(Target, стандартный способ не меню находим инструмент настройки введены, клацаем нашем случае мы работаем с в заранее обозначенную) или в конце одна переменная или с пунктом алфавитном порядке.: Код =ДВССЫЛ(B$1&»!B»&СТРОКА(B3)) добавим впоследствиии, которые файл был гораздо
было бы реализовать10.50.67.65 не пойму как Range(«C2:C5»)) Is Nothing работает. Решить задачу «Форматировать как таблицу». по кнопкеПЛТ
planetaexcel.ru
Подстановка в формулу значения из ячейки в качестве названия листа
одной переменной, то ячейку результат общего
периода (параметр – две.Мастер подстановокC1
rango будут добавлены в понятнее. Этот файл) Подскажите, пожалуйста.\сюда добавить ip создать такие ячейки And Target.Cells.Count =
можно с помощьюОткроются стили. Выбираем любой.«OK»), располагалась на границе нам понадобится только ежемесячного платежа –«0»Сразу давайте рассмотрим вариант,и нажмите кнопку — это левая верхняя: Спасибо! будущем) Для того
просто два ничемИдентификационный код всегда
адрес этого объекта как в образце,
1 Then функции ДВССЫЛ: она
CyberForum.ru
Для решения нашей
Самый быстрый ВПР
Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в Excel может доходить до нескольких минут.
В этом случае, правильный выбор функции, применяемой для связывания таблиц, играет решающую роль — разница в производительности между ними, как мы увидим далее, может составлять более 20 раз!
Когда я писал свою первую книжку пять лет назад, то уже делал сравнительный скоростной тест различных способов поиска и подстановки данных функциями ВПР, ИНДЕКС+ПОИСКПОЗ, СУММЕСЛИ и др. С тех пор сменилось три версии Office, появились надстройки Power Query и Power Pivot, кардинально изменившие весь процесс работы с данными. А в прошлом году ещё и обновился вычислительный движок Excel, получив поддержку динамических массивов и новые функции ПРОСМОТРХ, ФИЛЬТР и т.п.
Так что пришла пора снова взяться за секундомер и выяснить — кто же самый быстрый. Ну и, заодно, проверить — какие способы поиска и подстановки данных в Excel вы знаете 🙂
Подопытный кролик
Тест будем проводить на следующем примере:
Это книга Excel с одним листом, где расположены две таблицы: отгрузки (500 000 строк) и прайс-лист (600 строк). Наша задача — подставить цены из прайс-листа в таблицу отгрузок. Для каждого способа будем вводить формулу в ячейку С2 и копировать вниз на весь столбец, замеряя время, которое потребуется Excel, чтобы просчитать весь столбец из полумиллиона ячеек. Полученные значения, безусловно, зависят от множества факторов (поколение процессора, объем оперативной памяти, текущая загрузка системы, версия Office и т.д.), но нам важны не конкретные цифры, а, скорее, их сравнение друг с другом. Важно понимать прожорливость каждого способа и их ограничения.
Способ 1. ВПР
Сначала — классика 🙂 Легендарная функция вертикального просмотра — ВПР (VLOOKUP) , которая приходит в голову первой в подобных ситуациях:
- B2 — искомое значение, т.е. название товара, который мы хотим найти в прайс-листе
- $G$2:$H$600 — закреплённая знаками доллара (чтобы не сползала при копировании формулы вниз) абсолютная ссылка на прайс
- 2 — номер столбца в прайс-листе, откуда мы хотим взять цену
- 0 или ЛОЖЬ — переключение в режим поиска точного соответствия, когда любое некорректное название товара (например, ФОНЕРА) в столбце B в таблице отгрузок приведёт к появлению ошибки #Н/Д как результата работы функции.
Время вычисления = 4,3 сек.
Способ 2. ВПР с выделением столбцов целиком
Многие пользователи, применяя ВПР, во втором аргументе этой функции, где нужно задать поисковую таблицу (прайс), выделяют не ограниченный диапазон ( $G$2:$H$600 ), а сразу столбцы G:H целиком. Это проще, быстрее, позволяет не думать про F4 и то, что завтра прайс-лист может быть на несколько строк больше. Формула в этом случае выглядит тоже компактнее:
В старых версиях Excel такое выделение не сильно влияло на скорость вычислений, но сейчас (неожиданно для меня, признаюсь) результат получился в разы хуже предыдущего.
Время вычисления = 14,5 сек.
Способ 3. ИНДЕКС и ПОИСКПОЗ
Следующей после ВПР ступенью эволюции для многих пользователей Microsoft Excel обычно является переход на использование связки функций ИНДЕКС (INDEX) и ПОИСКПОЗ (MATCH) . Выглядит эта формула так:
Функция ИНДЕКС извлекает из заданного в первом аргументе диапазона (столбца $H$2:$H$600 с ценами в прайс-листе) содержимое ячейки с заданным номером. А номер этот, в свою очередь, определяется функцией ПОИСКПОЗ, у которой три аргумента:
- Что нужно найти — название товара из B2
- Где мы это ищем — столбец с названиями товаров в прайсе ( $G$2:$G$600 )
- Режим поиска: 0 — точный, 1 или -1 — приблизительный с округлением в меньшую или большую сторону, соответственно.
Формула выходит чуть сложнее, но, при этом имеет несколько ощутимых преимуществ перед классической ВПР, а именно:
- Не нужно отсчитывать номер столбца (как в третьем аргументе ВПР).
- Можно извлекать данные, которые находятся левее столбца, где просходит поиск.
По скорости, однако же, этот способ проигрывает ВПР почти в два раза:
Время вычисления = 7,8 сек.
Если же, вдобавок, полениться и выделять не ограниченные диапазоны, а столбцы целиком:
. то результат получается совсем печальный:
Время вычисления = 28,5 сек.
28 секунд, Карл! В 6 раз медленнее ВПР!
Способ 4. СУММЕСЛИ
Если нужно найти не текстовые, а именно числовые данные (как в нашем случае — цену), то вместо ВПР вполне можно использовать функцию СУММЕСЛИ (SUMIF) . Изначально она задумывалась как инструмент для выборочного суммирования данных по условию (найди и сложи мне все продажи кабелей, например), но можно заставить её искать нужный нам товар и в прайс-листе. Если грузы в нём не повторяются, то суммировать будет не с чем и эта функция просто выведет искомое значение:
- Первый аргумент СУММЕСЛИ — это диапазон проверяемых ячеек, т.е. названия товаров в прайсе ( $G$2:$G$600 ).
- Второй аргумент ( B2 ) — что мы ищем.
- Третий аргумент — диапазон ячеек с ценами $H$2:$H$600 , числа из которых мы хотим просуммировать, если в соседних ячейках проверяемого диапазона есть искомое значение.
Очевидным минусом такого подхода является то, что он работает только с числами. Также этот способ не удобен, если прайс-лист находится в отдельном файле — придется всё время держать его открытым, т.к. функция СУММЕСЛИ не умеет брать данные из закрытых книг, в отличие от ВПР, для которой это не проблема.
В плюсы же можно записать удобство при поиске сразу по нескольким столбцам — для этого идеально подходит более продвинутая версия этой функции — СУММЕСЛИМН (SUMIFS) . Скорость вычислений же, при этом, весьма посредственная:
Время вычисления = 12,8 сек.
При выделении столбцов целиком, т.е. использовании формулы вида =СУММЕСЛИ( G:G ; B2 ; H:H ) всё ещё хуже:
Время вычисления = 41,7 сек.
Это самый плохой результат в нашем тесте.
Способ 5. СУММПРОИЗВ
Этот подход сейчас встречается не часто, но всё ещё достаточно регулярно. Обычно так любят извращаться пользователи старой школы, ещё хорошо помнящие те времена, когда в Excel было всего 255 столбцов и 56 цветов 🙂
Суть этого метода заключается в использовании функции СУММПРОИЗВ (SUMPRODUCT) , изначально предназначенной для поэлементного перемножения нескольких диапазонов с последующим суммированием полученных произведений. В нашем случае, вместо одного из массивов будет выступать условие, а вторым будут цены:
Выражение ($G$2:$G$600=B2) , по сути, проверяет каждое название груза в прайс-листе на предмет соответствия искомому значению (ФАНЕРА ПР). Результатом каждого сравнения будет логическое значение ИСТИНА (TRUE ) или ЛОЖЬ (FALSE) , что в Excel интерпретируется как 1 и 0, соответственно. Последующее умножение этих нулей и единиц на цены оставит в живых цену только того товара, который нам, в данном случае, и нужен.
Эта формула является, по сути, формулой массива, но не требует нажатия обычного для них сочетания клавиш Ctrl + Shift + Enter , т.к. функция СУММПРОИЗВ поддерживает массивы уже сама по себе. Возможно, по этой же причине (формулы массива всегда медленнее, чем обычные) такой скорость пересчёта такой формулы — не очень:
Время вычисления = 11,8 сек.
- Совместимость с любыми, самыми древними версиями Excel.
- Возможность задавать сложные условия (и несколько)
- Способность этой формулы работать с данными из закрытых файлов, если добавить перед ней двойное бинарное отрицание (два подряд знака «минус»). СУММЕСЛИМН таким похвастаться не может.
Способ 6. ПРОСМОТР
Ещё один относительно экзотический способ поиска и подстановки данных, наравне с ВПР — это использование функции ПРОСМОТР (LOOKUP) . Только не перепутайте её с новой, буквально, на днях появившейся функцией ПРОСМОТРХ (XLOOKUP) — про неё мы поговорим дальше особо. Функция ПРОСМОТР существовала в Excel начиная с самых ранних версий и тоже вполне может решить нашу задачу:
- B2 — название груза, которое мы ищем
- $G$2:$G$600 — одномерный диапазон-вектор (столбец или строка), где мы ищем совпадение
- $H$2:$H$600 — такого же размера диапазон, откуда нужно вернуть найденный результат (цену)
На первый взгляд всё выглядит очень удобно и логично, но всю картину портят два неочевидных момента:
- Эта функция требует обязательной сортировки прайс-листа по возрастанию (алфавиту) и без этого не работает.
- Если в таблице отгрузок искомое значение будет написано с опечаткой (например, АГ Е ДОЛ вместо АГИДОЛ), то функция ПРОСМОТР выдаст не ошибку #Н/Д, а цену для ближайшего предыдущего товара:
При работе с неидеальными данными в реальном мире это гарантированно создаст проблемы, как вы понимаете.
Скорость же вычислений у функции ПРОСМОТР (LOOKUP) весьма приличная:
Время вычисления = 7,6 сек.
Способ 7. Новая функция ПРОСМОТРХ
Эта функция пришла с одним из недавних обновлений пока только пользователям Office 365 и пока отсутствует во всех остальных версиях (Excel 2010, 2013, 2016, 2019). По сравнению с классической ВПР у этой функции есть масса преимуществ (упрощенный синтаксис, возможность искать не только сверху-вниз, возможность сразу задать значение вместо #Н/Д и т.д.) Формула для решения нашей задачи будет выглядеть в этом случае так:
Если не брать в расчёт необязательные 4,5,6 аргументы, то синтаксис этой функции полностью совпадает с её предшественником — функцией ПРОСМОТР (LOOKUP) . Скорость вычислений при тестировании на наши 500000 строк тоже оказалась аналогичной:
Время вычисления = 7,6 сек.
Почти в два раза медленнее, чем у ВПР, вместо которой Microsoft предлагает теперь использовать ПРОСМОТРХ. Жаль.
И, опять же, если полениться и выделить диапазоны в прайс-листе целыми столбцами:
. то скорость падает до совершенно неприличных уже значений:
Время вычисления = 28,3 сек.
А если на динамических массивах?
Прошлогоднее (осень 2019) обновление вычислительного движка Microsoft Excel добавило ему поддержку динамических массивов (Dynamic Arrays), о которых я уже писал. Это принципиально новый подход к работе с данными, который можно использовать почти с любыми классическими функциями Excel. На примере ВПР это будет выглядеть так:
Разница с классическим вариантом в том, что первым аргументом ВПР здесь выступает не одно искомое значение (а формулу потом нужно копировать вниз на остальные строки), а сразу весь массив из полумиллиона грузов B2:B500000, цены для которых мы хотим найти. Формула при этом сама распространяется вниз, занимая требуемое количество ячеек.
Скорость пересчета в таком варианте меня, откровенно говоря, ошеломила — пауза между нажатием на Enter после ввода формулы и получением результатов почти отсутствовала.
Время вычисления = 1 сек.
Что интересно, и новая ПРОСМОТРХ, и старая ПРОСМОТР, и связка ИНДЕКС+ПОИСКПОЗ в таком режиме тоже были очень быстрыми — время вычислений не больше 1 секунды! Фантастика.
А вот олдскульные подходы на основе СУММПРОИЗВ и СУММЕСЛИ(МН) с динамическими массивами работать отказались 🙁
Что с умными таблицами?
Обрадовавшись фантастическим результатам, полученным на динамических массивах, я решил вдогон попробовать протестировать разницу в скорости при работе с обычными и «умными» таблицами. Я имею ввиду те самые «красивые таблицы», в которые вы можете преобразовать ваш диапазон с помощью команды Форматировать как таблицу на вкладке Главная (Home — Format as Table) или с помощью сочетания клавиш Ctrl + T .
Если предварительно превратить наши отгрузки и прайс в «умные» (по умолчанию они получат имена Таблица1 и Таблица2, соответственно), то формула с той же ВПР будет выглядеть как:
- [@Груз] — ссылка на ячейку B2, означающая, в данном случае, что нужно взять значение из той же строки из столбца Груз текущей умной таблицы.
- Таблица2 — ссылка на прайс-лист
Жирным плюсом такого подхода будет возможность легко добавлять данные в наши таблицы в будущем. При дописывании новых строк в отгрузки или к прайс-листу, наши «умные» таблицы будут растягиваться автоматически.
Скорость же, как выяснилось, тоже вырастает очень значительно и примерно равна скорости работы на динамических массивах:
Время вычисления = 1 сек.
У меня есть подозрение, что дело тут не в самих «умных» таблицах, а всё в том же обновлении вычислительного движка, т.к. на старых версиях Excel такого прироста в скорости на умных таблицах я не помню.
Бонус. Запрос Power Query
Замерять, так замерять! Давайте, для полноты картины, сравним наши перечисленные способы еще и с запросом Power Query, который тоже может решить нашу задачу. Кто-то скажет, что некорректно сравнивать пересчёт формул с механизмом обновления запроса, но мне, откровенно говоря, просто самому было интересно — кто быстрее?
- Превращаем обе наши таблицы в «умные» с помощью команды Форматировать как таблицу на вкладке Главная (Home — Format as Table) или с помощью сочетания клавиш Ctrl + T .
- По очереди загружаем таблицы в Power Query с помощью команды Данные — Из таблицы / диапазона (Data — From Table/Range) .
- После загрузки в Power Query возвращаемся обратно в Excel, оставляя загруженные данные как подключение. Для этого в окне Power Query выбираем Главная — Закрыть и загрузить — Закрыть и загрузить в. — Только создать подключение (Home — Close&Load — Close&Load to. — Only create connection) .
- После того, как обе исходные таблицы будут загружены как подключения, создадим ещё один, третий запрос, который будет объединять их между собой, подставляя цены из прайса в отгрузки. Для этого на вкладке Данные выберем Получить данные / Создать запрос — Объединить запросы — Объединить (Get Data / New Query — Merge queries — Merge) :
В отличие от формул, запросы Power Query не обновляются автоматически «на лету», а требуют щелчка правой кнопкой мыши по таблице (или запросу в правой панели) и выбору команды Обновить (Refresh) . Также можно воспользоваться командой Обновить все (Refresh All) на вкладке Данные (Data) .
Время обновления = 8,2 сек.
Итоговая таблица и выводы
Если вы честно дочитали до этого места, то какие-то выводы, наверное, уже сделали самостоятельно. Если же пропустили все детали и сразу перешли к итогам, то вот вам общая результирующая таблица по скорости всех методов:
Само-собой, у каждого из нас свои предпочтения, задачи и тараканы, но для себя я сформулировал выводы после этого тестирования так:
ВПР с несколькими условиями: 5 примеров.
Очень часто наши требования к поиску данных не ограничиваются одним условием. К примеру, нам нужна выручка по магазину за определенный месяц, количество конкретного товара, проданного определенному покупателю и т.д. Обычными средствами функции ВПР эту задачу решить сложно и даже не всегда возможно. Ведь там предусмотрено использование только одного критерия поиска.
Мы предложим вам несколько вариантов решения проблемы поиска по нескольким условиям.
ВПР по нескольким условиям с использованием дополнительного столбца.
Задачу, рассмотренную в предыдущем примере, можно решить и другим способом – без использования формулы массива. Ведь работа с массивами многим представляется сложной и недоступной для понимания. Дополнительный столбец для поиска по нескольким условиям будет в определенном отношении более простым вариантом.
Итак, необходимо выбрать значение выручки за определенный месяц, год и по нужному магазину. В итоге имеем 3 условия отбора.
Сразу по трем столбцам функция ВПР искать не может. Поэтому нам нужно объединить их в один. И, поскольку поиск производится всегда в крайнем левом (первом) столбце, то нужно добавить его в нашу таблицу тоже слева.
Вставляем перед таблицей с данными дополнительный столбец A. Затем при помощи оператора & объединяем в нем содержимое B,C и D. Записываем в А7
и копируем в находящиеся ниже ячейки.
Формула поиска в D4 будет выглядеть:
В диапазон поиска включаем и наш дополнительный столбец. Критерий поиска – также объединение 3 значений. И извлекаем результат из 5 колонки.
Все работает, однако вид несколько портит дополнительный столбец. В крайнем случае, его можно скрыть, используя контекстное меню по нажатию правой кнопки мыши.
Вид станет приятнее, а на результаты это никак не повлияет.
ВПР по двум условиям при помощи формулы массива.
У нас есть таблица, в которой записана выручка по каждому магазину за день. Мы хотим быстро найти сумму продаж по конкретному магазину за определенный день.
Для этого в верхней части нашего листа запишем критерии поиска: дата и магазин. В ячейке B3 будем выводить сумму выручки.
Формула в B3 выглядит следующим образом:
Обратите внимание на фигурные скобки, которые означают, что это формула массива. То есть наша функция ВПР работает не с отдельными значениями, а разу с массивами данных.
Разберем процесс подробно.
Мы ищем дату, записанную в ячейке B1. Но вот только разыскивать мы ее будем не в нашем исходном диапазоне данных, а в немного видоизмененном. Для этого используем условие
То есть, в том случае, если наименование магазина совпадает с критерием в ячейке B2, мы оставляем исходные значения из нашего диапазона. А если нет – заменяем их на пробелы. И так по каждой строке.
В результате получим вот такой виртуальный массив данных на основе нашей исходной таблицы:
Как видите, строки, в которых ранее был «Магазин 1», заменены на пустые. И теперь искать нужную дату мы будем только среди информации по «Магазин 2». И извлекать значения выручки из третьей колонки.
С такой работой функция ВПР вполне справится.
Такой ход стал возможен путем применения формулы массива. Поэтому обратите особое внимание: круглые скобки в формуле писать руками не нужно! В ячейке B3 вы записываете формулу
И затем нажимаете комбинацию клавиш CTRL+Shift+Enter. При этом Excel поймет, что вы хотите ввести формулу массива и сам подставит скобки.
Таким образом, функция ВПР поиск по двум столбцам производит в 2 этапа: сначала мы очищаем диапазон данных от строк, не соответствующих одному из условий, при помощи функции ЕСЛИ и формулы массива. А затем уже в этой откорректированной информации производим обычный поиск по одному только второму критерию при помощи ВПР.
Чтобы упростить работу в будущем и застраховать себя от возможных ошибок при добавлении новой информации о продажах, мы рекомендуем использовать «умную» таблицу. Она автоматически подстроит свой размер с учетом добавленных строк, и никакие ссылки в формулах не нужно будет менять.
Вот как это будет выглядеть.
ВПР по нескольким критериям с применением массивов — способ 2.
Выше мы уже рассматривали, как при помощи формулы массива можно организовать поиск ВПР с несколькими условиями. Предлагаем еще один способ.
Условия возьмем те же, что и в предыдущем примере.
Формулу в С4 введем такую:
Естественно, не забываем нажать CTRL+Shift+Enter.
Теперь давайте пошагово разберем, как это работает.
Наше задача здесь – также создать дополнительный столбец для работы функции ВПР. Только теперь мы создаем его не на листе рабочей книги Excel, а виртуально.
Как и в предыдущем примере, мы ищем текст из объединенных в одно целое условий поиска.
Далее определяем данные, среди которых будем искать.
Конструкция вида A7:A20&B7:B20&C7:C20;D7:D20 создает 2 элемента. Первый – это объединение колонок A, B и C из исходных данных. Если помните, то же самое мы делали в нашем дополнительном столбце. Второй D7:D20 – это значения, одно из которых нужно в итоге выбрать.
Функция ВЫБОР позволяет из этих элементов создать массив. как раз и означает, что нужно взять сначала первый элемент, затем второй, и объединить их в виртуальную таблицу – массив.
В первой колонке этой виртуальной таблицы мы будем искать, а из второй – извлекать результат.
Таким образом, для работы функции ВПР с несколькими условиями мы вновь используем дополнительный столбец. Только создаем его не реально, а виртуально.
Двойной ВПР при помощи ИНДЕКС + ПОИСКПОЗ
Далее речь у нас пойдет уже не о функции ВПР, но задачу мы будем решать ту же самую. В качестве критерия поиска нам опять нужно использовать несколько условий.
Формула в С4 теперь выглядит так:
И не забываем при вводе нажать CTRL+Shift+Enter! Это формула массива.
Теперь давайте разбираться, как это работает.
Функция ИНДЕКС в нашем случае позволяет извлечь элемент из списка по его порядковому номеру. Список – это диапазон D7:D20, где записаны суммы выручки. А вот порядковый номер, который нужно извлечь, мы определяем при помощи ПОИСКПОЗ.
Синтаксис здесь следующий:
ПОИСКПОЗ(что_ищем; где_ищем; тип_поиска)
Тип поиска ставим 0, то есть точное совпадение. В нашем случае мы будем искать 1. Далее мы определим массив, в котором будем работать.
Выражение (A7:A20=C1)*(B7:B20=C2)*(C7:C20=C3) позволит создать виртуальную таблицу примерно такого вида:
Как видите, первоначально мы последовательно сравниваем каждое значение с нашим критерием отбора. В столбце А у нас записаны месяцы – сравниваем их с месяцем-критерием из ячейки C1. В случае совпадения получаем ИСТИНА, иначе – ЛОЖЬ. Аналогично последовательно проверяем год и название магазина. А затем просто перемножаем значения. Поскольку логические переменные для Excel – это либо 0, либо 1, то произведение их может быть равно 1 только в том случае, если мы имеем по каждой колонке ИСТИНА (то есть,1). Во всех остальных случаях получаем 0.
Убеждаемся, что цифра 1 встречается только единожды.
При помощи ПОИСКПОЗ определяем, на какой позиции она находится. На какой позиции находится 1, на той же позиции находится в массиве и искомая сумма выручки. В нашем случае это 10-я.
Далее при помощи ИНДЕКС извлекаем 10-ю по счету выручку.
Таким образом мы выбрали значение по нескольким условиям без использования функции ВПР.
Достойная замена – функция СУММПРОИЗВ.
У нас есть данные о продажах нескольких менеджеров в различных регионах. Нужно сделать выборку по дате, менеджеру и региону.
Работает как формула массива, хотя по факту таковой не является. В этом заключается замечательное свойство функции СУММПРОИЗВ, о которой мы еще много будем говорить в других статьях.
Последовательно по каждой строке диапазона от 2-й до 27-й она проверяет совпадение каждого соответствующего значения с критерием поиска. Эти результаты перемножаются между собой и в итоге еще умножаются на сумму выручки. Если среди трех условий будет хотя бы одно несовпадение, то итогом будет 0. В случае совпадения сумма выручки трижды умножится на 1.
Затем все эти 27 произведений складываются, и результатом будет выручка нужного менеджера в каком-то регионе за определенную дату.
В качестве бонуса можно продолжить этот пример и рассчитать общую сумму продаж менеджера в определенном регионе.
Для этого из формулы просто уберем сравнение по дате.
Кстати, возможен и другой вариант расчета с этой же функцией:
Итак, мы рассмотрели примеры использования функции ВПР с двумя и с несколькими условиями. А также обнаружили, что этой ценной функции есть замечательная альтернатива.
Примеры использования функции ВПР:
Как объединить две или несколько таблиц в Excel — В этом руководстве вы найдете некоторые приемы объединения таблиц Excel путем сопоставления данных в одном или нескольких столбцах. Как часто при анализе в Excel вся необходимая информация собирается на одном…
2 способа извлечь данные из разных таблиц при помощи ВПР. — Задача: Данные, которые нужно найти и извлечь при помощи функции ВПР, находятся в нескольких таблицах. Эти таблицы имеют одинаковую структуру (то есть, одни и те же столбцы, расположенные в одном…
/> Вычисление номера столбца для извлечения данных в ВПР — Задача: Наиболее простым способом научиться указывать тот столбец, из которого функция ВПР будет извлекать данные. При этом мы не будем изменять саму формулу, поскольку это может привести в случайным ошибкам.…
4 способа, как сделать левый ВПР в Excel. — Функция ВПР – одна из самых популярных, когда нужно найти и извлечь из таблицы какие-либо данные. Но при этом она имеет один существенный недостаток. Поиск она производит в крайнем левом…
Формула ВПР в Excel для сравнения двух таблиц — 4 способа — Сравнение таблиц – это задача, которую в Excel приходится довольно часто решать. Например, у нас есть старый прайс-лист и его новая версия. Нужно просмотреть, цены на какие товары изменились и…
Почему не работает ВПР в Excel? — Функция ВПР – это очень мощный инструмент поиска. Но если он по каким-то причинам завершился неудачно, то вы получите сообщение об ошибке #Н/Д (#N/A в английском варианте). Давайте постараемся вместе…
Функция ВПР в Excel: пошаговая инструкция с 5 примерами — ВПР — это функция Excel для поиска и извлечения данных из определенного столбца в таблице. Она поддерживает приблизительное и точное сопоставление, а также подстановочные знаки (* и ?). Значения поиска…
Формула ВПР в Excel — 22 факта, которые нужно знать. — В процессе работы в Excel часто возникает задача извлечения нужных данных из рабочих таблиц. Для этой цели в Excel предусмотрена формула ВПР (VLOOKUP в английском варианте). И хотя ВПР относительно…
Суть запроса на выборку – выбрать из исходной таблицы строки, удовлетворяющие определенным критериям (подобно применению стандартного Фильтра ). Произведем отбор значений из исходной таблицы с помощью формул массива . В отличие от применения Фильтра ( CTRL+SHIFT+L или Данные/ Сортировка и фильтр/ Фильтр ) отобранные строки будут помещены в отдельную таблицу.
В этой статье рассмотрим наиболее часто встречающиеся запросы, например: отбор строк таблицы, у которых значение из числового столбца попадает в заданный диапазон (интервал); отбор строк, у которых дата принаждежит определенному периоду; задачи с 2-мя текстовыми критериями и другие. Начнем с простых запросов.
1. Один числовой критерий (Выбрать те Товары, у которых цена выше минимальной)
Пусть имеется Исходная таблица с перечнем Товаров и Ценами (см. файл примера, лист Один критерий — число ).
Необходимо отобразить в отдельной таблице только те записи (строки) из Исходной таблицы, у которых цена выше 25.
Решить эту и последующие задачи можно легко с помощью стандартного фильтра . Для этого выделите заголовки Исходной таблицы и нажмите CTRL+SHIFT+L . Через выпадающий список у заголовка Цены выберите Числовые фильтры. , затем задайте необходимые условия фильтрации и нажмите ОК.
Будут отображены записи удовлетворяющие условиям отбора.
Другим подходом является использование формул массива . В отличие от фильтра отобранные строки будут помещены в отдельную таблицу — своеобразный Отчет , который, например, можно отформатировать в стиль отличный от Исходной таблицы или производить другие ее модификации.
Критерий (минимальную цену) разместим в ячейке Е6 , таблицу для отфильтрованных данных — в диапазоне D10:E19 .
Теперь выделим диапазон D11:D19 (столбец Товар) и в Строке формул введем формулу массива :
Вместо ENTER нажмите сочетание клавиш CTRL+SHIFT+ENTER .
Те же манипуляции произведем с диапазоном E11:E19 куда и введем аналогичную формулу массива :
В результате получим новую таблицу, которая будет содержать только товары, у которых цены попадают в интервал, указанный в ячейках Е5 и Е6 .
Чтобы показать динамизм полученного Отчета (Запроса на выборку) введем в Е6 значение 65. В новую таблицу будет добавлена еще одна запись из Исходной таблицы, удовлетворяющая новому критерию.
Если в Исходную таблицу добавить новый товар с Ценой в диапазоне от 25 до 65, то в новую таблицу будет добавлена новая запись.
В файле примера также содержатся формулы массива с обработкой ошибок, когда в столбце Цена содержится значение ошибки, например #ДЕЛ/0! (см. лист Обработка ошибок ).
Следующие задачи решаются аналогичным образом, поэтому не будем их рассматривать так детально.
3. Один критерий Дата (Выбрать те Товары, у которых Дата поставки совпадает заданной)
Пусть имеется Исходная таблица с перечнем Товаров и Датами поставки (см. файл примера, лист Один критерий — Дата ).
Для отбора строк используются формулы массива, аналогичные Задаче1 (вместо критерия =$B$12:$B$20)*(СТРОКА($B$12:$B$20)-СТРОКА($B$11));$J$12-СТРОКА(A12)+СТРОКА($B$11)+1))
Примечание : После ввода формулы вместо клавиши ENTER (ВВОД) нужно нажать сочетание клавиш CTRL+SHIFT+ENTER. Это сочетание клавиш используется для ввода формул массива.
Скопируйте формулу массива вниз на нужное количество ячеек. Формула вернет только те значения Товаров, которые были поставлены в диапазоне указанных дат. В остальных ячейках будут содержаться ошибки #ЧИСЛО! Ошибки в файле примера (Лист 4.Диапазон Дат) скрыты с помощью Условного форматирования .
Аналогичную формулу нужно ввести и для дат в столбец E.
В ячейке J12 вычислено количество строк исходной таблицы, удовлетворяющих критериям:
Решение2 : Для отбора строк можно использовать формулы массива, аналогичные Задаче2 (т.е. формулы массива, возвращающие несколько значений ):
Для ввода первой формулы выделите диапазон ячеек G12:G20 . После ввода формулы вместо клавиши ENTER (ВВОД) нужно нажать сочетание клавиш CTRL+SHIFT+ENTER.
Решение3 : Если столбец Дат СОРТИРОВАН, то можно не использовать формулы массива.
Сначала необходимо вычислить первую и последнюю позиции строк, которые удовлетворяют критериям. Затем вывести строки с помощью функции СМЕЩ() .
Этот пример еще раз наглядно демонстрирует насколько предварительная сортировка данных облегчает написание формул.
5. Один критерий Дата (Выбрать те Товары, у которых Дата поставки не раньше/ не позже заданной)
Пусть имеется Исходная таблица с перечнем Товаров и Датами поставки (см. файл примера, лист Один критерий — Дата (не позже) ).
Для отбора строк, дата которых не раньше (включая саму дату), используется формула массива:
= ИНДЕКС(A12:A20;НАИМЕНЬШИЙ(ЕСЛИ($E$7 C15;И($B$7>=B15;$B$7 =$B$13:$B$21)*($B$13:$B$21>0);СТРОКА($B$13:$B$21);»»);СТРОКА($B$13:$B$21)-СТРОКА($B$12)) -СТРОКА($B$12))
Условие $E$7=$A$13:$A$21 гарантирует, что будут отобраны товары только определенного типа. Условие $E$8>=$B$13:$B$21 гарантирует, что будут отобраны даты не позже заданной (включая). Условие $B$13:$B$21>0 необходимо, если в диапазоне дат имеются пустые ячейки. Знак * (умножение) используется для задания Условия И (все 3 критерия должны выполняться для строки одновременно).
Примечание . Случай, когда список несортирован, рассмотрен в статье Поиск ДАТЫ (ЧИСЛА) ближайшей к заданной, с условием в MS EXCEL. Несортированный список .
7. Один Текстовый критерий (Выбрать Товары определенного вида)
Пусть имеется Исходная таблица с перечнем Товаров и Ценами (см. файл примера, лист Один критерий — Текст ).
Задача решается аналогично Задачам 1 и 3. Более подробное решение см. в статье Поиск ТЕКСТовых значений в MS EXCEL с выводом их в отдельный список. Часть1. Обычный поиск .
8. Два Текстовых критерия (Выбрать Товары определенного вида, поставленные в заданный месяц)
Пусть имеется Исходная таблица с перечнем Товаров и Ценами (см. файл примера, лист 2 критерия — текст (И) ).
Для отбора строк используется формула массива:
Выражение ($F$6=$A$11:$A$19)*($F$7=$B$11:$B$19) задает оба условия (Товар и Месяц).
Выражение СТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК($A$11:$A$19))) формирует массив последовательных чисел , т.е. номера строк в таблице.
9. Два Текстовых критерия (Выбрать Товары определенных видов)
Пусть имеется Исходная таблица с перечнем Товаров и Ценами (см. файл примера, лист 2 критерия — текст (ИЛИ) ).
В отличие от Задачи 7 отберем строки с товарами 2-х видов ( Условие ИЛИ ).
Для отбора строк используется формула массива:
= ИНДЕКС(A$11:A$19; НАИБОЛЬШИЙ((($E$6=$A$11:$A$19)+($E$7=$A$11:$A$19))*(СТРОКА($A$11:$A$19)-СТРОКА($A$10)); СЧЁТЕСЛИ($A$11:$A$19;$E$6)+СЧЁТЕСЛИ($A$11:$A$19;$E$7)-ЧСТРОК($A$11:A11)+1))
Условие ($E$6=$A$11:$A$19)+($E$7=$A$11:$A$19) гарантирует, что будут отобраны товары только заданных видов из желтых ячеек (Товар2 и Товар3). Знак + (сложение) используется для задания Условие ИЛИ (должен быть выполнен хотя бы 1 критерий).
Вышеуказанное выражение вернет массив . Умножив его на выражение СТРОКА($A$11:$A$19)-СТРОКА($A$10) , т.е. на массив последовательных чисел , получим массив позиций (номеров строк таблицы), удовлетворяющих критериям. В нашем случае это будет массив .
С помощью функции НАИБОЛЬШИЙ() выведем 3 значения из позиции 5 (строка 15 листа), 6 (16) и 7 (17), т.е. значения Товар2, Товар2 и Товар3. Для этого используем выражение СЧЁТЕСЛИ($A$11:$A$19;$E$6)+СЧЁТЕСЛИ($A$11:$A$19;$E$7)-ЧСТРОК($A$11:A11)+1 , которое последовательно (начиная со строки 11) будет возвращать числа 3; 2; 1; 0; -1; -2; . Формула НАИБОЛЬШИЙ(. ;3) вернет число 5, НАИБОЛЬШИЙ(. ;2) вернет число 6, НАИБОЛЬШИЙ(. ;1) вернет число 7, а НАИБОЛЬШИЙ(. ;0) и далее вернет ошибку, которую мы скроем условным форматированием .
И наконец, с помощью функции ИНДЕКС() последовательно выведем наши значения из соответствующих позиций: = ИНДЕКС(A$11:A$19;5) вернет Товар2, = ИНДЕКС(A$11:A$19;6) вернет Товар2, = ИНДЕКС(A$11:A$19;7) вернет Товар3.
10. Отбор значений с учетом повторов
В разделе Отбор на основании повторяемости собраны статьи о запросах с группировкой данных. Из повторяющихся данных сначала отбираются уникальные значения, а соответствующие им значения в других столбцах — группируются (складываются, усредняются и пр.).
Наиболее популярные статьи из этого раздела:
В качестве примера приведем решения следующей задачи: Выбрать Товары, цена которых лежит в определенном диапазоне и повторяется заданное количество раз или более.
В качестве исходной возьмем таблицу партий товаров.
Предположим, что нас интересует сколько и каких партий товаров поставлялось по цене от 1000р. до 2000р. (критерий 1). Причем, партий с одинаковой ценой должно быть минимум 3 (критерий 2).
Решением является формула массива:
Эта формула возвращает номера строк, которые удовлетворяют обоим критериям.
Формула =СУММПРОИЗВ(($C$14:$C$27>=$B$7)*($C$14:$C$27 =$B$10)) подсчитывает количество строк, которые удовлетворяют критериям.
В файле примера на листе «10.Критерий — колич-во повторов» настроено Условное форматирование , которое позволяет визуально определить строки удовлетворяющие критериям, а также скрыть ячейки, в которых формула массива возвращает ошибку #ЧИСЛО!
11. Используем значение критерия (Любой) или (Все)
В фильтре Сводных таблиц MS EXCEL используется значение (Все), чтобы вывести все значения столбца. Другими словами, в выпадающем списке значений критерия содержится особое значение, которое отменяет сам критерий (см. статью Отчеты в MS EXCEL , Отчет №3).
В файле примера на листе «11. Критерий Любой или (Все)» реализован данный вариант критерия.
Формула в этом случае должна содержать функцию ЕСЛИ() . Если выбрано значение (Все), то используется формула для вывода значений без учета данного критерия. Если выбрано любое другое значение, то критерий работает обычным образом.
Остальная часть формулы аналогична рассмотренным выше.
12. Актуальная цена
Пусть для товара ежедневно заполняется таблица цен (цена может меняться, но не каждый день). Нужно найти актуальнуй цену, т.е. цену на последнюю дату. Если товар всего один, то можно отсортировать по дате и в последней строке будет нужная актуальная цена. Если товаров много, то нужно сначала выбрать Автофильтром нужный товар, затем опять отсортировать по цене.
Чтобы иметь перечень товаров с актуальными ценами придется использовать формулы:
2) определяем последнюю (максимальную) дату для каждого товара с помощью формулы массива =МАКС((Таблица1[товар]=E8)*Таблица1[дата])
3) наконец, выводим актуальную цену =СУММЕСЛИМН(Таблица1[цена];Таблица1[товар];E8;Таблица1[дата];F8)
Для товара не должно быть повторов дат, иначе цены будут суммироваться (если повторяется последняя дата).