Excel как найти строки которые есть в двух файлах

Хитрости »

15 Май 2011              512002 просмотров


Как найти значение в другой таблице или сила ВПР

  • Задача и её решение при помощи ВПР
  • Описание аргументов ВПР
  • Что важно всегда помнить при работе с ВПР
  • Как избежать ошибки #Н/Д(#N/A) в ВПР?
  • Как при помощи ВПР искать значение по строке, а не столбцу?
  • Решение при помощи ПОИСКПОЗ
  • Работа с критериями длиннее 255 символов
Задача и её решение при помощи ВПР

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

рис.1

На картинке выше для удобства они показаны рядом, но на самом деле могут быть расположены на разных листах и даже в разных книгах. Таблицы по сути одинаковые, но фамилии в них расположены в разном порядке, и к тому же в одной заполнены все столбцы, а во второй столбцы ФИО и Отдел. И из первой таблицы необходимо подставить во вторую дату для каждой фамилии. Для трех записей это не проблема и руками сделать — все очевидно. Но в жизни это таблицы на тысячи записей и поиск с подстановкой данных вручную может занять не один час. Вот где ВПР(VLOOKUP) будет весьма кстати. Все, что необходимо — записать в ячейку

C2

второй таблицы(туда, куда необходимо подставить даты из первой таблицы) такую формулу:

=ВПР($A2;Лист1!$A$1:$C$4;3;0)
=VLOOKUP($A2,Лист1!$A$1:$C$4,3,0)

Записать формулу можно либо непосредственно в ячейку, либо воспользовавшись диспетчером функций, выбрав в категории Ссылки и массивы(References & Arrays) функцию ВПР(VLOOKUP) и по отдельности указав нужные критерии. Теперь копируем(

Ctrl

+

C

) ячейку с формулой(С2), выделяем все ячейки столбца

С

до конца данных и вставляем(

Ctrl

+

V

).

Теперь разберем поподробнее саму функцию, её аргументы и некоторые особенности.
ВПР ищет заданное нами значение(аргумент искомое_значение) в первом столбце указанного диапазона(аргумент таблица). Поиск значения всегда происходит сверху вниз(собственно, поэтому функция и называется ВПР: Вертикальный ПРосмотр). Как только функция находит заданное значение — поиск прекращается, ВПР берет строку с найденным значением и смотрит на аргумент номер_столбца. Именно из этого столбца берётся значение, которое мы и видим как итог работы функции. Т.е. в нашем конкретном случае, для ячейки С2 второй таблицы, функция берет фамилию «Петров С.А.»(ячейка $A2 второй таблицы) и ищет её в первом столбце указанной таблицы(Лист1!$A$1:$C$4), т.е. в столбце А. Как только находит(это ячейка А3)

ВПР может вернуть только одно значений — первое, подходящее под критерий. Если искомое значение не найдено(отсутствует в таблице), то результатом функции будет ошибка #Н/Д(#N/A). Не надо этого бояться — это даже полезно. Вы точно будете знать, каких записей нет и таким образом можете сравнивать две таблицы друг с другом. Иногда получается так, что Вы видите: данные есть в обеих таблицах, но ВПР выдает #Н/Д. Значит данные в Ваших таблицах не идентичны. В какой-то из них есть лишние неприметные пробелы(обычно перед значением или после), либо знаки кириллицы перемешаны со знаками латиницы. Так же #Н/Д будет, если критерии числа и в искомой таблице они записаны как текст(как правило в левом верхнем углу такой ячейки появляется зеленый треугольничек), а в итоговой — как числа. Или наоборот.


Описание аргументов ВПР

  • Искомое_значение($A2) — это то значение из одной таблицы, которые мы ищем в другой таблице. Т.е. для первой записи второй таблицы это будет Петров С.А.. Здесь можно указать либо непосредственно текст критерия(в этом случае он должен быть в кавычках — =ВПР(«Петров С.А»;Лист1!$A$1:$C$4;3;0), либо ссылку на ячейку, с данным текстом(как в примере функции). Есть небольшой нюанс: так же можно применять символы подстановки: «*» и «?». Это очень удобно, если необходимо найти значения лишь по части строки. Например, можно не вводить полностью «Петров С.А», а ввести лишь фамилию и знак звездочки — «Петров*». Тогда будет выведена любая запись, которая начинается на «Петров». Если же надо найти запись, в которой в любом месте строки встречается фамилия «Петров», то можно указать так: «*петров*». Если хотите найти фамилию Петров и неважно какие инициалы будут у имени-отчества(если ФИО записаны в виде Иванов И.И.), то здесь в самый раз такой вид: «Иванов ?.?.».
    Часто необходимо для каждой строки указать свое значение(в столбце А Фамилии и надо их все найти). В таком случае всегда указываются ссылки на ячейки столбца А. Например, в ячейке A2 записано: Иванов. Так же известно, что Иванов есть в другой таблице, но после фамилии могут быть записаны и имя и отчество(или еще что-то). Но нам нужно найти только строку, которая начинается на фамилию. Тогда необходимо записать следующим образом: A2&»*». Эта запись будет равнозначна «Иванов*». В A2 записано Иванов, амперсанд(&) используется для объединения в одну строку двух текстовых значений. Звездочка в кавычках (как и положено быть тексту внутри формулы). Таким образом и получаем:
    A2&»*» =>
    «Иванов»&»*» =>
    «Иванов*»
    А полная формула в итоге будет выглядеть так: =ВПР(A2&»*»;Лист1!$A$1:$C$4;3;0)
    Очень удобно, если значений для поиска много.
    Если надо определить есть ли хоть где-то слово в строке, то звездочки ставим с обеих сторон: «*»&A1&»*»
  • Таблица(Лист1!$A$1:$C$4) — указывается диапазон ячеек, в первом столбце которых будет просматриваться аргумент Искомое_значение. Диапазон должен содержать данные от первой ячейки с данными до самой последней. Это не обязательно должен быть указанный в примере диапазон. Если строк 100, то Лист1!$A$2:$C$100. Диапазон в аргументе таблица всегда должен быть «закреплен», т.е. содержать знаки доллара($) перед названием столбцов и перед номерами строк(Лист1!$A$1:$C$4).
  • Номер_столбца(3) — указывается номер столбца в аргументе Таблица, значения из которого нам необходимо записать в итоговую ячейку в качестве результата. В примере это Дата принятия — т.е. столбец №3. Если бы нужен был отдел, то необходимо было бы указать номер столбца 2, а если бы нам понадобилось просто сравнить есть ли фамилии одной таблицы в другой, то можно было бы указать и 1. Номер столбца всегда указывается числом и не должен быть больше числа столбцов в аргументе Таблица.

    если аргумент Таблица имеет слишком большое кол-во столбцов и необходимо вернуть результат из последнего столбца, то совсем необязательно высчитывать их количество. Можно использовать формулу, которая подсчитывает количество столбцов в указанном диапазоне:  =ВПР($A2;Лист1!$A$1:$C$4;ЧИСЛСТОЛБ(Лист1!$A$1:$C$4);0). К слову в данном случае Лист1! тоже можно убрать, т.к. функция ЧИСЛОСТОЛБ просто подсчитывает количество столбцов в переданном ей диапазоне и неважно на каком он листе: =ВПР($A2;Лист1!$A$1:$C$4;ЧИСЛСТОЛБ($A$1:$C$4);0).

  • Интервальный_просмотр(0) — очень интересный аргумент. Может быть равен либо ИСТИНА либо ЛОЖЬ. Так же допускается указать 1 или 0. 1 = ИСТИНА, 0 = ЛОЖЬ. Если в ВПР указать данный параметр равный 0 или ЛОЖЬ, то будет происходить поиск точного соответствия заданному Искомому_значению. Это не имеет никакого отношения к знакам подстановки(«*» и «?»). Если же использовать 1 или ИСТИНА, то…Совсем в двух словах не объяснить. Если вкратце — ВПР будет искать наиболее похожее значение, подходящее под Искомомое_значение. Иногда очень полезно. Правда, если использовать данный параметр, то необходимо, чтобы список в аргументе Таблица был отсортирован по возрастанию. Обращаю внимание на то, что сортировка необходима только в том случае, если аргумент Интервальный_просмотр равен ИСТИНА или 1. Если же 0 или ЛОЖЬ — сортировка не нужна. Этот аргумент необходимо использовать осторожно — не стоит указывать 1 или ИСТИНА, если нужно найти точное соответствие и уж тем более не стоит использовать, если не понимаете принцип его работы.
    Подробнее про работу ВПР с интервальным просмотром, равным 1 или ИСТИНА можно ознакомиться в статье ВПР и интервальный просмотр(range_lookup)

При работе с ВПР всегда важно помнить три вещи:
  • Таблица всегда должна начинаться с того столбца, в котором ищем Искомое_значение. Т.е. ВПР не умеет искать значение во втором столбце таблицы, а значение возвращать из первого. В лучшем случае ничего найдено не будет и получим ошибку #Н/Д(#N/A), а в худшем результат будет совсем не тот, который должен быть
  • аргумент Таблица должен быть «закреплен», т.е. содержать знаки доллара($) перед названием столбцов и перед номерами строк(Лист1!$A$1:$C$4). Это и есть закрепление(если точнее, то это называется абсолютной ссылкой на диапазон). Как это делается. Выделяете текст ссылки и жмете клавишу F4 до тех пор, пока не увидите, что и перед обозначением имени столбца и перед номером строки не появились доллары. Если этого не сделать, то при копировании формулы из одной ячейки в остальные аргумент Таблица будет «съезжать» и результат может быть совсем не таким, какой ожидался(в лучшем случае получите ошибку #Н/Д(#N/A)
  • номер_столбца не должен превышать общее кол-во столбцов в аргументе таблица, а сама Таблица соответственно должна содержать столбцы от первого(в котором ищем) до последнего(из которого необходимо возвращать значения). В примере указана Лист1!$A$1:$C$4 — всего 3 столбца(A, B, C). Значит не получится вернуть значение из столбца D(4), т.к. в таблице только три столбца. Т.е. если мы запишем формулу так: =ВПР($A2;Лист1!$A$1:$C$4;4;0) — мы получим ошибку #ССЫЛКА!(#REF!).
    Если аргументом Таблица указан диапазон $B$1:$C$4 и необходимо вернуть данные из столбца С, то правильно будет указать номер столбца 2. Т.к. аргумент Таблица($B$1:$C$4) содержит только два столбца — В и С. Если же попытаться указать номер столбца 3(каким по счету он является на листе), то получим ошибку #ССЫЛКА!(#REF!), т.к. третьего столбца в указанном диапазоне просто нет.

Многие наверняка заметили, что на картинке у меня попутаны отделы для ФИО(в обеих таблицах ФИО относятся к разным отделам). Это не ошибка записи. В прилагаемом к статье примере показано, как можно одной формулой подставить и отделы и даты, не меняя вручную аргумент Номер_столбца: =ВПР($A2;Лист1!$A$1:$C$4;СТОЛБЕЦ();0). Такой подход сработает, если в обеих таблицах одинаковый порядок столбцов.


Как избежать ошибки #Н/Д(#N/A) в ВПР?

 
Еще частая проблема — многие не хотят видеть #Н/Д результатом, если совпадение не найдено. Это можно обойти при помощи специальных функций.
Для пользователей Excel 2003 и старше:

=ЕСЛИ(ЕНД(ВПР($A2;Лист1!$A$1:$C$4;3;0));»»;ВПР($A2;Лист1!$A$1:$C$4;3;0))
=IF(ISNA(VLOOKUP($A2,Лист1!$A$1:$C$4,3,0)),»»,VLOOKUP($A2,Лист1!$A$1:$C$4,3,0))

Теперь если ВПР не найдет совпадения, то ячейка будет пустой.
А пользователям версий Excel 2007 и выше будет удобнее использовать функцию

ЕСЛИОШИБКА(IFERROR)

:

=ЕСЛИОШИБКА(ВПР($A2;Лист1!$A$1:$C$4;3;0);»»)
=IFERROR(VLOOKUP($A2,Лист1!$A$1:$C$4,3,0);»»)

Подробнее про различие между использованием ЕСЛИ(ЕНД и ЕСЛИОШИБКА я разбирал в статье: Как в ячейке с формулой вместо ошибки показать 0
Но я бы не рекомендовал использовать

ЕСЛИОШИБКА(IFERROR)

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

  • искомое значение состоит более чем из 255 символов(решение этой проблемы приведено ниже в этой статье: Работа с критериями длиннее 255 символов)
  • искомое значение является числом с большим кол-вом знаков после запятой. Excel не может правильно воспринимать такие числа и в итоге ВПР может вернуть ошибку. Правильным решением здесь будет округлить искомое значение хотя бы до 4-х или 5-ти знаков после запятой(конечно, если это допустимо):
    =ВПР(ОКРУГЛ($A2;5);Лист1!$A$1:$C$4;3;0)
    =VLOOKUP(ROUND($A2,2),Лист1!$A$1:$C$4,3,0)
  • искомое значение содержит специальные или непечатаемые символы.
    В этом случае придется либо избавиться от непечатаемых символов в искомом аргументе:
    =ВПР(ПЕЧСИМВ($A2);Лист1!$A$1:$C$4;3;0)
    =VLOOKUP(CLEAN($A2),Лист1!$A$1:$C$4,3,0)
    либо добавить перед всеми специальными символами(такими как звездочка или вопр.знак) знак тильды(~), чтобы сделать эти знаки просто знаками, а не знаками специального значения(так же работа со специальными(служебными) символами описывалась в статье: Как заменить/удалить/найти звездочку). Добавить символ перед знаком той же тильды можно при помощи функции ПОДСТАВИТЬ(SUBSTITUTE):
    =ВПР(ПОДСТАВИТЬ($A2;»~»;»~~»);Лист1!$A$1:$C$4;3;0)
    =VLOOKUP(SUBSTITUTE(A2,»~»,»~~»),Лист1!$A$1:$C$4,3,0)
    Если необходимо добавить тильду сразу перед несколькими знаками, то делает это обычно так(на примере подстановки одновременно для тильды и звездочки):
    =ВПР(ПОДСТАВИТЬ(ПОДСТАВИТЬ($A2;»~»;»~~»);»*»;»~*»);Лист1!$A$1:$C$4;3;0)
    =VLOOKUP(SUBSTITUTE(SUBSTITUTE(A2,»~»,»~~»),»*»,»~*»),Лист1!$A$1:$C$4,3,0)

Как при помощи ВПР искать значение по строке, а не столбцу?

 
На самом деле ответ будет коротким — ВПР всегда ищет сверху вниз. Слева направо она не умеет. Но зато слева направо умеет искать её сестра ГПР(HLookup) — Горизонтальный

ПР

осмотр.
ГПР ищет заданное значение(аргумент

искомое_значение

) в первой строке указанного диапазона(аргумент

таблица

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

#Н/Д(#N/A)

.
Если надо найти значение «Иванов» в строке 2 и вернуть значение из строки 5 в таблице

A2:H10

, то формула будет выглядеть так:

=ГПР(«Иванов»;$A$2:$H$10;5;0)
=HLOOKUP(«Иванов»,$A$2:$H$10,5,0)

Все правила и синтаксис функции точно такие же, как у ВПР:
-в искомом значении можно применять символы астерикса(*) и вопр.знака(?) — «Иванов*»;
-таблица должна быть закреплена —

$A$2:$H$10

;
-интервальный просмотр работает по тому же принципу(0 или ЛОЖЬ точный просмотр слева-направо, 1 или ИСТИНА — интервальный).


Решение при помощи ПОИСКПОЗ

 
Общий принцип работы

ПОИСКПОЗ(MATCH)

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

Искомое_значение

в аргументе

Просматриваемый_массив

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

Просматриваемом_массиве

. Именно номер позиции, а не само значение. Если бы мы хотели применить её для таблицы выше, то она была бы такой:

=ПОИСКПОЗ($A2;Лист1!$A$1:$A$4;0)
=MATCH($A2,Лист1!$A$1:$A$4,0)

  • Искомое_значение($A2) — непосредственно значение или ссылка на ячейку с искомым значением. Если опираться на пример выше — то это ФИО. Здесь все ровно так же, как и с ВПР. Так же допустимы символы подстановки * и ? и ровно в таком же исполнении.
  • Просматриваемый_массив(Лист1!$A$1:$A$4) — указывается ссылка на столбец, в котором необходимо найти искомое значение. В отличии от той же ВПР, где указывается целая таблица, это должен быть именно один столбец, в котором мы собираемся искать Искомое_значение. Если попытаться указать более одного столбца, то функция вернет ошибку.Справедливости ради надо отметить, что можно указать либо столбец, либо строку
  • Тип_сопоставления(0) — то же самое, что и Интервальный_просмотр в ВПР. С теми же особенностями. Отличается разве что возможностью поиска наименьшего от искомого или наибольшего.

С основным разобрались. Но ведь нам надо вернуть не номер позиции, а само значение. Значит ПОИСКПОЗ в чистом виде нам не подходит. По крайней мере одна, сама по себе. Но если её использовать вместе с функцией ИНДЕКС(INDEX)(которая возвращает из указанного диапазона значение на пересечении заданных строки и столбца) — то это то, что нам нужно и даже больше.
=ИНДЕКС(Лист1!$A$1:$C$4;ПОИСКПОЗ($A2;Лист1!$A$1:$A$4;0);2)
Такая формула результатом вернет то же, что и ВПР.

Аргументы функции ИНДЕКС
Массив(Лист1!$A$2:$C$4). В качестве этого аргумента мы указываем диапазон, из которого хотим получить значения. Может быть как один столбец, так и несколько. В случае, если столбец один, то последний аргумент функции указывать не обязательно или он всегда будет равен 1(столбец-то всего один). К слову — данный аргумент может совершенно не совпадать с тем, который мы указываем в аргументе Просматриваемый_массив функции ПОИСКПОЗ.

Далее идут Номер_строки и Номер_столбца. Именно в качестве Номера_строки мы и подставляем ПОИСКПОЗ, которая возвращает нам номер позиции в массиве. На этом все и строится. ИНДЕКС возвращает значение из Массива, которое находится в указанной строке(Номер_строки) Массива и указанном столбце(Номер_столбца), если столбцов более одного. Важно знать, что в данной связке кол-во строк в аргументе Массив функции ИНДЕКС и кол-во строк в аргументе Просматриваемый_массив функции ПОИСКПОЗ должно совпадать. И начинаться с одной и той же строки. Это в обычных случаях, если не преследуются иные цели.
Так же как и в случае с ВПР, ИНДЕКС в случае не нахождения искомого значения возвращает #Н/Д. И обойти подобные ошибки можно так же:
Для всех версий Excel(включая 2003 и раньше):
=ЕСЛИ(ЕНД(ПОИСКПОЗ($A2;Лист1!$A$1:$A$4;0));»»;ИНДЕКС(Лист1!$A$1:$C$4;ПОИСКПОЗ($A2;Лист1!$A$2:$A$4;0);2))
Для версий 2007 и выше:
=ЕСЛИОШИБКА(ИНДЕКС(Лист1!$A$1:$C$4;ПОИСКПОЗ($A2;Лист1!$A$1:$A$4;0);2);»»)


Работа с критериями длиннее 255 символов

 
Есть у ИНДЕКС-ПОИСКПОЗ и еще одно преимущество перед ВПР. Дело в том, что ВПР не может искать значения, длина строки которых содержит более 255 символов. Это случается редко, но случается. Можно, конечно, обмануть ВПР и урезать критерий:

=ВПР(ПСТР($A2;1;255);ПСТР(Лист1!$A$1:$C$4;1;255);3;0)

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

Поэтому лучше использовать такую хитрую формулу:
=ИНДЕКС(Лист1!$A$1:$C$4;СУММПРОИЗВ(ПОИСКПОЗ(ИСТИНА;Лист1!$A$1:$A$4=$A2;0));2)
Здесь я в формулах использовал одинаковые диапазоны для удобочитаемости, но в примере для скачивания они различаются от указанных здесь.
Сама формула построена на возможности функции СУММПРОИЗВ преобразовывать в массивные вычисления некоторых функций внутри неё. В данном случае ПОИСКПОЗ ищет позицию строки, в которой критерий равен значению в строке. Подстановочные символы здесь применить уже не получится.


Ну и все же я рекомендовал бы Вам прочитать подробнее про данные функции в справке.

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

Скачать пример

  Tips_All_VLookUp.xls (26,0 KiB, 17 435 скачиваний)

Так же см.:
ВПР и интервальный просмотр(range_lookup)
ВПР по двум и более критериям
ВПР с возвратом всех значений
ВПР с поиском по нескольким листам
ВПР_МН
ВПР_ВСЕ_КНИГИ
Как заменить/удалить/найти звездочку?


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Поиск документа Excel по содержимому текста.

​Смотрите также​​ Excel-файл, то там​ ​ условии, что Excel​​Юрий М​​ макросы или дополнения,​​ If searchdepth% =​ coll.Count ‘ перебираем​ в которых имеется​
​ сентября — table_export_06KAsep.xls​
​: Я на планете​ ​ — (D5) вписано​
​ поиска настроен, жмем​«Искать»​ регистра.​ внутри слова. Например,​ разберемся, как он​ мы работали. Ищем​Рассмотрим,​ ячейки есть, но​ корректно определит разделитель,​
​: Я так понимаю,​ или нужно самому​ 0 Then searchdepth%​ все элементы коллекции,​ различные статьи и​Реально Буду рад​ дал древний файл​ слово.​ на кнопку​вы переведете в​
​К тому же, в​​ релевантным запросу в​ работает, и как​
​ среди них. Если​
​как найти документ​ в ТЕКСТОВОМ (csv)​ макрос укажет на​ что тему можно​
​ писать макрос?​ = 999 Set​ содержащей пути к​ основной файл, в​ любой помощи.​ кажется от Павла,​В одной папке​«OK»​ позицию​ выдачу может попасть​ этом случае будет​ им пользоваться.​ документ давно не​Excel по содержимому текста​
​ — их быть​ ячейку, как будто​ удалить?​Guest​ coll = FilenamesCollection(FolderPath$,​ файлам НомерФайла =​
​ которм выполняется поиск.​
​Иначе искать в​ ​ который делает чуть​ с Главным файлом​​.​
​«В книге»​ не только содержимое​ считаться слово «Направо».​Скачать последнюю версию​ открывали и его​,​ не может.​ он открывал Excel-файл.​
​abricos29​ ​: Комбинированный способ:​
​ searchmask$, searchdepth%) Application.ScreenUpdating​ i ПутьКФайлу =​ ​В основном файле​
​ ручную очень долго,​ больше — там​ — лежит несколько​Бывают случаи, когда нужно​, то поиск будет​ конкретной ячейки, но​ Если вы зададите​ Excel​
​ нет в списке,​таблицы​Скорее всего, Вы​Возможно, я не​: Я подобного не​Перебор файлов в​ = False For​ coll(i) ИмяФайла =​ вводится запрос для​ по причине того​ просто нужно лишнее​ подпапок с документами​​ произвести поиск не​ производиться по всем​ и адрес элемента,​ в поисковике цифру​Поисковая функция в программе​ то нажимаем на​, например, когда не​ говорите про csv-файл,​ прав, но мне​ нашёл на форуме,​ ​ папке — избитая​
​ i = 1​ Dir(ПутьКФайлу) ДатаСоздания =​ поиска по остальным​ что таких таблиц​ повыкидывать, и вывод​ экселя.​ по конкретному словосочетанию,​ листам открытого файла.​ на который она​ «1», то в​ Microsoft Excel предлагает​ кнопку «Компьютер».​ помним название файла,​ открытый в Excel​ так показалось.​ очень лаконичный и​ тема. Можно найти​ To coll.Count filenumber​ FileDateTime(ПутьКФайлу) РазмерФайла =​
​ файлам, и выдается​ на каждый регион​ подкорректировать.​Пытался сам написать​ а найти ячейки,​В параметре​
​ ссылается. Например, в​ ответ попадут ячейки,​ возможность найти нужные​Затем, нажимаем на кнопку​ документа, папки, т.д.​ )​AB1​ удобный макрос! Думаю​ кучу готовых кодов.​ = i pathtothefile​ FileLen(ПутьКФайлу) РазмерФайла =​ информация следующего характера​ (то есть их​А этот код​ макрос, но что-то​
​ в которых находятся​«Просматривать»​ ячейке E2 содержится​ которые содержат, например,​ текстовые или числовые​ «Обзор». В появившемся​Первый вариант.​AB1​: Добавил второй цикл:​ много кому может​В коде только​ = coll(i) Filename​ FileOrFolderSize(РазмерФайла) Workbooks.Open Filename:=ПутьКФайлу​В каком файле​ много)​ явно рождён был​ не работает -​

excel-office.ru

Поиск в программе Microsoft Excel

Поиск в Microsoft Excel

​ поисковые слова в​можно изменить направление​ формула, которая представляет​ число «516».​ значения через окно​ диалоговом окне в​Поиск документа​: Разумеется, мы же​Sub ПОИСК() Dim​ понадобиться, имхо.​ поменять исполняемую часть​ = Dir(pathtothefile) creationdate​ Workbooks(ПутьКФайлу).Activate Worksheets(Sheets(1)).Activate With​ найдено совпадение, 2-3​Basil​ не в Экселе​ выдает ошибку.​

​ любом порядке, даже,​ поиска. По умолчанию,​

Поисковая функция в Excel

​ собой сумму ячеек​Для того, чтобы перейти​ «Найти и заменить».​ строке поиска пишем​Excel по названию папки.​ рассуждаем не абстрактно,​ folder_$, file_$, s$​AB1​Guest​

Способ 1: простой поиск

​ = FileDateTime(pathtothefile) filesize​ ThisWorkbook.Worksheets(Sheets(1)) ‘ работаем​ предложения в котором​:​ — потому и​Подскажите, как макросом​ если их разделяют​ как уже говорилось​ A4 и C3.​

  1. ​ к следующему результату,​​ Кроме того, в​​ поисковую фразу или​​Нажимаем кнопку «Пуск»,​​ а в рамках​ Dim rw& Dim​: Спасибо за полезный​​: Sub test() Dim​​ = FileLen(pathtothefile) filesize​ 1 с листом​​ найдено совпадение.​​Не по теме:​ не работает. И​ осуществить поиск этого​ другие слова и​​ выше, поиск ведется​​ Эта сумма равна​

    Переход к поиску в Microsoft Excel

  2. ​ опять нажмите кнопку​ приложении имеется возможность​ слово. Мы написали​ расположенную в левом​ функционала данного макроса​ sh ‘————————— rw​​ макрос!​​ Folder As String​​ = FileOrFolderSize(filesize) Workbooks.Open​​ ПоследняяСтрокаБД = .Range(«a»​Заранее благодарен!​​Доброго дня.​​ в Экселе так​ слова в документах​ символы. Тогда данные​ по порядку построчно.​ 10, и именно​​«Найти далее»​​ расширенного поиска данных.​​ «визитка». Появится список​​ нижнем углу монитора.​

    Обычный поиск в Microsoft Excel

  3. ​abricos29​​ = 4 With​​abricos29​ Dim wb As​ Filename:=pathtothefile Workbooks(pathtothefile).Activate Worksheets(Sheets(1)).Activate​ & .Rows.Count).End(xlUp).Row ‘​sku144​

    ​Хочу сразу сказать​ по всем файлам​ экселя и вывести​ слова нужно выделить​ Переставив переключатель в​ это число отображается​.​Простой поиск данных в​ файлов Excel, имеющим​ В появившемся списке​: Еще этот макрос​

    ​ ThisWorkbook.Sheets(1) .UsedRange.Offset(3, 0).EntireRow.Delete​: Пожалуйста, один минус​ String Dim objWb​ With ThisWorkbook.Worksheets(Sheets(1)) lastline​ вычисляем номер последней​: Как вариант для​ — я вам​ поиск не пойдёт,​ в столбец G5:G16​ с обеих сторон​ позицию​ в ячейке E2.​Так можно продолжать до​ программе Excel позволяет​ в тексте слово​ нажимаем на кнопку​ ищет только в​ s = .Cells(2,​ всё же есть,​ As Workbook Dim​

    ​ = Cells(Rows.Count, 1).End(xlUp).Row​ строки Dim Диапазон_Ячеек_для_Поиска​ начала получить список​​ помочь не смогу.​​ если ранее вручную​

    Результат обычного поиска в Microsoft Excel

    ​ — названия тех​ знаком «*». Теперь​«По столбцам»​ Но, если мы​ тех, пор, пока​

  4. ​ найти все ячейки,​ «визитка».​ «Этот компьютер» (в​ папке, надо попробовать​​ 3).Value End With​​ я его попытался​ workWb As Workbook​ Dim rangeofcells As​ As Range, РезультатПоиска​ файлов где нужен​Понимаете, вас, как​ он так не​ файлов экселя, где​ в поисковой выдаче​, можно задать порядок​ зададим в поиске​ отображение результатов не​ в которых содержится​Внимание!​ Word 2013) или​ реализовать чтоб и​ If s =​ посадить на кнопку​ Dim i As​ Range, searchresults As​ As Range, АдресПервойНайденнойЯчейки​ поиск. Предположим, все​ я понял, интересуют​ остался настроенным, причём​

Найти всё в Microsoft Excel

Способ 2: поиск по указанному интервалу ячеек

​ это слово встречается​ будут отображены все​ формирования результатов выдачи,​ цифру «4», то​ начнется по новому​ введенный в поисковое​Внизу этого окна​ «Мой компьютер» (в​ в подпапках искал.​ «» Then MsgBox​ и вызываю в​ Integer Set workWb​ Range, addressfirstcell As​ As String Set​

  1. ​ файлы в одной​ продажи за период,​ синтаксис совсем другой.​

    Выделение интервала в Microsoft Excel

  2. ​ хотя бы один​ ячейки, в которых​​ начиная с первого​​ среди результатов выдачи​ кругу.​ окно набор символов​​ мы выбрали место​​ Word 2007).​ Будет совсем здорово.​ «Не заполненно поле​ качестве шаблона, естественно​ = ActiveWorkbook ‘Запоминаем​ String Set rangeofcells​ Диапазон_Ячеек_для_Поиска = .Range(.Cells(ПерваяСтрокаБД,​ папке с нашим​

Поиск по интервалу в Microsoft Excel

Способ 3: Расширенный поиск

​ а работаете вы​Т.е. этот код​ раз ?​ находятся данные слова​ столбца.​ будет все та​В случае, если при​ (буквы, цифры, слова,​ поиска «Все файлы​

​Откроется окно, в​Юрий М​ поиска!» Exit Sub​ шаблон лежит теперь​ активную книгу ‘Показываем​ = Sheets(1).Cells(lastline, 10)​ 1), .Cells(ПоследняяСтрокаБД, 2))​ запущенным. Тогда просто​ почему-то с отчетами​ проще переписать, чем​Kuzmich​ в любом порядке.​В графе​ же ячейка E2.​ запуске поисковой процедуры​ и т.д.) без​ Excel». Здесь мы​ правом верхнем углу​: Про .​ End If With​ в одном месте,​ диалог выбора папки​ Set searchresults =​ Set Диапазон_Ячеек_для_Поиска =​ определяем путь до​ о продажах за​ исправить.​: Может это поможет​Как только настройки поиска​«Область поиска»​

Результат поиска в Microsoft Excel

​ Как такое могло​ вы нажмете на​ учета регистра.​ можем выбрать другой​ которого, есть строка​abricos29​

  1. ​ Application With .FileDialog(msoFileDialogFolderPicker)​​ а файлы могут​​ With Application.FileDialog(msoFileDialogFolderPicker) .Title​ rangeofcells.Find(textsarch, , xlFormulas,​​ Диапазон_Ячеек_для_Поиска.EntireRow Set РезультатПоиска​​ нашего файла, затем​

    Переход в параметры поиска в Microsoft Excel

  2. ​ отдельный день.​RAN​http://www.planetaexcel.ru/techniques/12/45/​ установлены, следует нажать​определяется, среди каких​ получиться? Просто в​ кнопку​Находясь во вкладке​ вид файла. Например,​

    Параметры поиска по умолчанию в Microsoft Excel

    ​ поиска. В этой​​: Юрий спасибо за​​ If .Show =​​ где угодно. И​​ = «Выберите папку,​ xlPart) If Not​ = Диапазон_Ячеек_для_Поиска.Find(ТекстДляПоиска, LookAt:=xlPart)​ по этому пути​Не проще ли​: Подумаешь! Word тоже​http://excelvba.ru/code/FilenamesCollection​ на кнопку​ конкретно элементов производится​ ячейке E2 в​«Найти все»​«Главная»​ нам нужно найти​ строке пишем поисковую​ ссылку!​ False Then Exit​ гиперссылка не работает.​ файлы в которой​ searchresults Is Nothing​​ ‘ начинаем поиск​​ в массив собираем​ получить отчет о​ не без VBA!​SergVrn​«Найти всё»​ поиск. По умолчанию,​ качестве формулы содержится​, все результаты выдачи​, кликаем по кнопке​ текст в Excel’евском​

    Настройки поиска в Microsoft Excel

    ​ фразу, слова. Мы​abricos29​ Sub folder_ =​ Кто-нибудь может подсказать​​ нужно обработать» .ButtonName​​ Then addressfirstcell =​ If Not РезультатПоиска​​ все остальные файлы​​ продажах сразу за​adekarimov​: Kuzmich, зачем мне​

    Область поиска в Microsoft Excel

    ​или​​ это формулы, то​​ адрес на ячейку​ будут представлены в​«Найти и выделить»​ файле со словами​ написали «посчитать стаж».​: А вот с​ .SelectedItems(1) End With​​ какие изменения нужно​​ = «Выбрать» .AllowMultiSelect​ searchresults.address linenumber =​ Is Nothing Then​ где нужен будет​

    Содержимое поиска в Microsoft Excel

    ​ интересующий период? Чтобы​​: Доброго времени суток.​​ список файлов в​«Найти далее»​ есть те данные,​ A4, который как​ виде списка в​, которая расположена на​ визитка. Тогда мы​ Во время ввода​ поиском в подпапках​ folder_ = folder_​ внести в строку​ = False If​ searchresults.Row Range(«a» &​ ‘ если нашли​ поиск. Перебираем элементы​ была одна таблица,​Работаю в компании,​ папках, если я​, чтобы перейти к​ которые при клике​ раз включает в​ нижней части поискового​ ленте в блоке​ выберем функцию «Все​ поисковой фразы сразу​​ не осилил и​​ & IIf(Right(folder_, 1)​​ с добавлением гиперссылки,​​ .Show Then Folder​ Rows.Count).End(xlUp).Offset(1).Resize(, 5).Value =​ хоть одну подходящую​ массива в цикле​ а данные​​ которая занимается ежедневными​​ задавал вопрос -​

    Область поиска в программе Microsoft Excel

    ​ поисковой выдаче.​ по ячейке отображаются​ себя искомую цифру​​ окна. В этом​​ инструментов​

    Переход к формату поиска в Microsoft Excel

    ​ файлы». Появится список​ идет поиск.​ после прочтения статьи.​ = .PathSeparator, «»,​ чтобы она выдавала​ = .SelectedItems(1) Else​ _ Array(filenumber, Filename,​ ячейку АдресПервойНайденнойЯчейки =​ — каждый элемент​одной​ продажами. В процессе​ по поиску одного​Как видим, программа Excel​

    Формат поиска в Microsoft Excel

    ​ в строке формул.​ 4.​ списке находятся информация​«Редактирование»​ всех разных файлов​​Получился такой результат.​​ Кто-нибудь может подсказать​

    Переход к выбору ячейки для установки формата в Microsoft Excel

    ​ .PathSeparator) .ScreenUpdating =​ верный путь до​ Exit Sub End​ pathtothefile, creationdate, filesize,​ РезультатПоиска.Address ‘ запоминаем​ открываем, определяем количество​

    Выбор ячейки для установки формата в Microsoft Excel

    ​таблицы в любом​ создания отчета по​ СЛОВА.​​ представляет собой довольно​​ Это может быть​

    Установка формата поиска в Microsoft Excel

    ​Но, как отсечь такие,​ о содержимом ячеек​. В появившемся меню​ со словом «визитка»​Нажимаем на нужный документ,​ как интегрировать код​ False End With​ файла, ибо сейчас​ With ‘Начинаем читать​ searchresults) ActiveSheet.Hyperlinks.Add Range(«b»​ Адрес Первой Найденной​ вкладок и запускаем​ случае легче обрабатывать​ продожам сталкиваюсь с​buchlotnik​ простой, но вместе​ слово, число или​ и другие заведомо​

    Поиск по отдельным словам в Microsoft Excel

  3. ​ с данными, удовлетворяющими​ выбираем пункт​ — и текст​​ он откроется.​​ из статьи по​​ file_ = Dir(folder_​​ если макрос и​ файлы из папки​

Запуск расширенного поиска в Microsoft Excel

​ & Rows.Count).End(xlUp), pathtothefile,​ Ячейки НомерСтроки =​ вложенный цикл с​ (если это вообще​ необходимостью поиска Торгового​: не-а, в папках​ с тем очень​ ссылка на ячейку.​ неприемлемые результаты выдачи​ запросу поиска, указан​«Найти…»​ в Word, и​Внимание!​ ссылке выше в​ & «*.xls*») Do​ файл находятся в​ wb = Dir(Folder​ «», _ «Открыть​

​ РезультатПоиска.Row ‘ получаем​

lumpics.ru

Поиск текста в нескольких файлах Excel

​ перебором вкладок и​​ понадобится).​
​ представителя (ТП) и​и подпапках​ функциональный набор инструментов​
​ При этом, программа,​ поиска? Именно для​ их адрес расположения,​
​. Вместо этих действий​ файл Excel, и​Чем точнее укажем​
​ обсуждаемый макрос. Вероятно​ While file_ <>​
​ разных местах гиперссылка​

​ & Application.PathSeparator &​​ файл» & vbNewLine​ номер строки, в​
​ поиском на них​А вот такой​ его данные по​- вообще-то это​ поиска. Для того,​
​ выполняя поиск, видит​ этих целей существует​ а также лист​
​ можно просто набрать​ картинки с названием​ место хранения документа,​ ещё нужно будет​ «» DoEvents If​ выглядит так: Адрес​

​ «*.xls») While Len(wb)​ & Filename Do​

​ которой найдена подходящая​​ нужного. Если найдено,​

planetaexcel.ru

Поиск слова — по нескольким файлам экселя (Макросы/Sub)

​ подход, когда одному​​ продажам, который могут​
​ список тех файлов​ чтобы произвести простейший​
​ только ссылку, а​ расширенный поиск Excel.​ и книга, к​ на клавиатуре сочетание​
​ «визитка», т.д.​ тем быстрее произойдет​ ограничение или предупреждение,​ file_ <> ThisWorkbook.Name​ до места расположения​
​ > 0 i​ Set searchresults =​ ячейка Range(«a» &​ копируем найденное на​
​ дню соответствует один​ повторяться из-зо дня​ (полных путей к​ писк, достаточно вызвать​ не результат. Об​После открытия окна​ которым они относятся.​ клавиш​Как найти файл​ поиск документа.​

​ иначе нечаянно выделил​​ Then Workbooks.Open folder_​
​ макросаИмя файла.xls​
​ = i +​

​ rangeofcells.FindNext(searchresults) If Not​​ Rows.Count).End(xlUp).Offset(1).Resize(, 5).Value =​ главный документ.​ лист excel или,​ в день или​ ним), которые и​ поисковое окно, ввести​

​ этом эффекте велась​​«Найти и заменить»​​ Для того, чтобы​​Ctrl+F​ определенного типа, смотрите​Например, мы указали​ папку с 1000​ & file_ With​With ThisWorkbook.Sheets(1) .Cells(rw,​ 1 wb =​ searchresults Is Nothing​ _ Array(НомерФайла, ИмяФайла,​scofield-92​ еще хуже, одна​ же 1 раз​ нужно проверить -​

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

​.​​ в статье «Поиск​​ такой путь –​ ​ файлов и завис.​​ ActiveWorkbook For Each​​ 1) = ActiveWorkbook.Name​​ Folder & Application.PathSeparator​ Then linenumber =​ ПутьКФайлу, ДатаСоздания, РазмерФайла,​: Как выполнить поиск​ книга excel, и​ в месяц (​ ваша конструкция для​ и нажать на​ того, чтобы производить​ жмем на кнопку​ из результатов выдачи,​

​После того, как вы​​ документа Word по​
​ «Этот компьютер» -​Файлов порядка 100 штук​ sh In .Sheets​ .Hyperlinks.Add Anchor:=.Cells(rw, 1),​ & wb Set​ searchresults.Row Range(«a» &​ РезультатПоиска) ‘ если​ файлов понял, но​
​ при этом (!)​ по разным причинам,​
​ этого не годится​​ кнопку. Но, в​ поиск именно по​«Параметры»​ достаточно просто кликнуть​
​ перешли по соответствующим​ тексту» тут. Принцип​ «Документы» (мы помним,​

​ (содержание порядка 30000​​ Set c =​ Address:=ActiveWorkbook.Name, SubAddress:=c.Address End​ objWb = Workbooks.Open(wb)​ Rows.Count).End(xlUp).Offset(1).Resize(, 5).Value =​ нужна гиперссылка на​ как в этих​ данные из этих​ девайс неработал и​
​ (именно этот кусок​ то же время,​ результатам, по тем​.​ по нему левой​ пунктам на ленте,​ один.​ что документ находится​ строк в каждом)​ sh.Cells.Find(What:=s, After:=sh.Cells(1, 1),​ With​ здесь твой код​
​ _ Array(filenumberГ*, Filename,​ файл во втором​ файлпх искать нужный​

​ книг надо еще​​ тд). Хотелось бы​ кода не работает),​:D

excelworld.ru

Поиск значения в Таблицах в разных файлах Excel

​ существует возможность настройки​​ данным, которые отображаются​
​В окне появляется целый​ кнопкой мыши. После​ или нажали комбинацию​В Excel можно​ в папке «Документы»)​ нужен поиск по​ LookIn:=xlValues, LookAt:=xlPart) If​abricos29​ objWb.Close False wb​ pathtothefile, creationdate, filesize,​ столбце ActiveSheet.Hyperlinks.Add Range(«b»​ текст не могу​ и обрабатывать, мне​ автоматизировать поиск ТП​ а эти -​ индивидуального поиска с​ в ячейке, а​ ряд дополнительных инструментов​
​ этого курсор перейдет​
​ «горячих клавиш», откроется​ искать данные функциями,​ – «Excel» (в​
​ всем этим таблицам,​ Not c Is​: А вот, получилось,​ = Dir ‘читаем​ searchresults) ActiveSheet.Hyperlinks.Add Range(«b»​ & Rows.Count).End(xlUp), ПутьКФайлу,​​ разобрать(​​ представляется в корне​​ и его данные.​​ работают; или нужно​​ большим количеством различных​​ не в строке​ для управления поиском.​​ на ту ячейку​​ окно​ можно искать, выбирать,​ папке «Документы» есть​​ хотя бы с​​ Nothing Then With​ кому интересно, нужно​ следующий файл Wend​ & Rows.Count).End(xlUp), pathtothefile,​ «», _ «Открыть​sku144​ неверным.​Суть задачи​ до последнего бита​ параметров и дополнительных​​ формул, нужно переставить​​ По умолчанию все​​ Excel, по записи​​«Найти и заменить»​
​ переносить данные в​ две папки «Word»​ указанием файла, но​ ThisWorkbook.Sheets(1) .Cells(rw, 1)​ исправить кусок кода​ End Sub​ «», _ «Открыть​
​ файл» & vbNewLine​: Вот например http://www.planetaexcel.ru/forum/?PAGE_NAME=read&FID=1&TID=45516​
​kuklp​table_export_03KAsep.xls за 3​
​ разжёвывать?​ настроек.​ переключатель из позиции​ эти инструменты находятся​ которой пользователь сделал​во вкладке​ другое место, в​

​ и «Excel». Мы​​ в идеале с​

​ = folder_ &​

​ из макроса выше​
​abricos29​ файл» & vbNewLine​ & ИмяФайла Do​
​ там можно посмотреть​:​ сентября + table_export_04KAsep.xls​SergVrn​Автор: Максим Тютюшев​«Формулы»​ в состоянии, как​
​ щелчок.​«Найти»​ другую таблицу, бланк,​ помним, что документ,​ выводом данных во​ ActiveWorkbook.Name .Hyperlinks.Add Anchor:=.Cells(rw,​​ на этот, после​​: Всем привет, пытался​ & Filename End​ ‘ ищем следующую​ примеры​
​adekarimov​ за 4 сентября​: buchlotnik, приведенные примеры​olegh​в позицию​ при обычном поиске,​Если у вас довольно​. Она нам и​ т.д. формулами. Какими​ который мы ищем,​ всплывающем окне и​ 1), Address:=folder_ &​

​ этого гиперссылка работает​​ реализовать поиск одного​​ If Loop While​​ ячейку Set РезультатПоиска​scofield-92​, если нельзя средствами​ну и за​ — не ищут​: Добрый день!​

​«Значения»​ но при необходимости​ масштабная таблица, то​ нужна. В поле​ способами можно искать​ находится в конкретной​ т.д.​ ActiveWorkbook.Name, SubAddress:=c.Address End​ независимо от нахождения​ значения сразу в​

CyberForum.ru

Поиск значений в нескольких файлах! (Формулы/Formulas)

​ searchresults.address <> addressfirstcell​​ = Диапазон_Ячеек_для_Поиска.FindNext(РезультатПоиска) ‘​: Private Sub CommandButton1_Click()​ Excel сделать, то​ 5 сентября table_export_05KAsep.xls,​ заданного слова.​Не подскажите есть​. Кроме того, существует​ можно выполнить корректировку.​ в таком случае​«Найти»​
​ данные в Excel,​
​ папке «Excel»).​ctrl+f прошу не​ With rw =​ файлов:​ нескольких файлах с​

​ End If End​​ АдресПервойНайденнойЯчейки End If​

excelworld.ru

Поиск в файлах excel по содержимому

​ ТекстДляПоиска = «*Антон*»​​ можно попробовать сделать​
​ а при создании​buchlotnik​
​ ли такая функция​ возможность поиска по​По умолчанию, функции​ не всегда удобно​вводим слово, символы,​
​ смотрите в статье​Если документ находится​ предлагать. (весь файл​ rw + 1​With ThisWorkbook.Sheets(1) .Cells(rw,​
​ выводом результатов на​ With Range(«a» &​ ‘ отключение режима​ [c1] = «C:UsersАдминистраторDesktop»​
​ с помощью VBA​

​ такой же таблицы​​: ваши слова? вам​ в Excel?​ примечаниям. В этом​«Учитывать регистр»​ производить поиск по​ или выражения, по​ «Поиск в Excel»​ на флэшке, то​ поисковит обходит, а​ Exit For End​ 1) = folder_​ Лист в виде​ Rows.Count).End(xlUp).Offset(1).Resize(, 5).Value =​ пропуска ошибок End​ ‘ Ищем файлы​ (другими словами -​ на 6 сентября​подсказали​Например у меня​ случае, переключатель переставляем​и​ всему листу, ведь​ которым собираемся производить​ и в перечне​

​ указываем (выделяем) флэшку.​​ мне нужно искать​ If Next .Close​ & ActiveWorkbook.Name .Hyperlinks.Add​ гиперссылок. Наткнулся в​ _ Array(filenumber, Filename,​ With Range(«a» &​

​ в заданной папке​​ макросы).​ «​половину​

​ есть 20 файлов​​ в позицию​«Ячейки целиком»​ в поисковой выдаче​ поиск. Жмем на​ статей по этой​ Сначала, естественно, вставим​ допустим в одном​ False End With​ Anchor:=.Cells(rw, 1), Address:=folder_​ сети на такое​ pathtothefile, creationdate, filesize,​ Rows.Count).End(xlUp).Offset(1).Resize(, 5).Value =​ по заданной маске,​Как-то так. Все​Total MTD​решения — по​ Excel,​«Примечания»​отключены, но, если​ может оказаться огромное​ кнопку​ теме, расположенном в​ флэшку в ноутбук.​ столбце, что сокраило​ End If file_​ & ActiveWorkbook.Name, SubAddress:=c.Address​ решение, оно ищет​ searchresults, linenumber) DoEvents​ _ Array(НомерФайла, ИмяФайла,​ ‘ и выводим​ файлы д.б. в​» на ТП-​нескольким файлам​мне нужно быстро​.​ мы поставим галочки​ количество результатов, которые​«Найти далее»​ конце статьи.​ : )​ бы время запроса)​ = Dir Loop​ End With​ и находит корректно,​ ActiveWorkbook.Close False Next​ ПутьКФайлу, ДатаСоздания, РазмерФайла,​ на лист список​ одной папке. Кнопка​МАУСЫМБАЕВА ОЛЬГА​, вам же подавай​ найти в каком​Ещё более точно поиск​ около соответствующих пунктов,​ в конкретном случае​, или на кнопку​Поработали — пора​Второй вариант.​Пробовал прописывать в​ file_ = Dir(folder_​AB1​ но при переходе​ On Error GoTo​ РезультатПоиска, НомерСтроки) DoEvents​ их параметров. ‘​ Свод собирает данные​суммируется «​ либо всё готовое,​ файле​ можно задать, нажав​ то в таком​ не нужны. Существует​«Найти всё»​ отдохнуть. )) А​Поиск книги​ екселе функцией поиска,​ & «*.csv») Do​: Работает, спасибо!​ по гиперссылкам почти​ 0 Range(«a:e»).EntireColumn.AutoFit End​ ‘ временно передаём​ Просматриваются папки с​ со всех файлов,​Total PC​ либо вы начинаете​находится текст: «Отчет​ на кнопку​ случае, при формировании​ способ ограничить поисковое​.​ если серьёзно, то,​Excel по тексту в​ на 20-ти файлах​ While file_ <>​AB1​ на всё выдаёт​ SubПоправил, но как​ управление ОС ActiveWorkbook.Close​ заданной глубиной вложения.​ кнопка Итоги суммирует​» и предыдущий день​ в не сильно​ №3″.​«Формат»​ результата будет учитываться​ пространство только определенным​При нажатии на кнопку​ в Excel есть​ ней​ работает, если больше,​ «» DoEvents If​: Подскажите, пожалуйста, как​

​ ошибку «не удаётся​​ определить диапозон в​

​ False Next On​​ Dim coll As​ уникальные на другой​ «​ вежливой манере критиковать​Спасибо.​
​.​ введенный регистр, и​ диапазоном ячеек.​«Найти далее»​ много возможностей, кроме​.​ то сильно долго​ file_ <> ThisWorkbook.Name​ добавить в макрос​ открыть указанный файл»!​ котором производится поиск,​ Error GoTo 0​ Collection, ПутьКПапке$, МаскаПоиска$,​ лист. Можно было​Total MTD​ помогающих (это касается​Guest​При этом открывается окно​ точное совпадение. Если​Выделяем область ячеек, в​мы перемещаемся к​ стандартных функций Excel,​Нам нужно найти​ соображает…​ Then Workbooks.Open folder_​ второе расширение для​ В итоге я​ и запись в​ Range(«a:e»).EntireColumn.AutoFit ‘ автоподбор​ ГлубинаПоиска% On Error​ все делать одним​» , но так​ не только этой​: Как вариант, стандартными​ формата ячеек. Тут​ вы введете слово​ которой хотим произвести​ первой же ячейке,​ которые можно применить​ книгу Excel, в​Говорят, что без​ & file_ With​ поиска (например, «*.csv»)?​ создал новый файл​ нашк главную книгу,​ ширины столбцов End​ Resume Next ПутьКПапке$​ махом, но лень​ как в table_export_05KAsep.xls​ темы). Не хотите​ средствами windows.​ можно установить формат​ с маленькой буквы,​ поиск.​ где содержатся введенные​ в своей работе.​ которой есть слово​ загрузки в БД​ ActiveWorkbook For Each​AndreTM​ с именем «1.xlsx»​ а не в​ SubПодскажите что не​ = [c1] ‘​zickland​ ТП-​ список файлов -​открываем папку с​ ячеек, которые будут​ то в поисковую​Набираем на клавиатуре комбинацию​ группы символов. Сама​ Например, как можно​ «январь». Пишем это​ не обойтись….Кто может​ sh In .Sheets​: Как вы собираетесь​ и вписал в​

​ открытую​​ так в этой​ берём из ячейки​: Здравствуйте! Нужно из​МАУСЫМБАЕВА ОЛЬГА​
​ не надо, разбирайтесь​ 20 документами, нажимаем​ участвовать в поиске.​ выдачу, ячейки содержащие​ клавиш​ ячейка становится активной.​ использовать шрифт для​ слово в строке​ рассказать как это​
​ Set c =​

CyberForum.ru

Поиск и замена в нескольких XLS файлах

​ сделать гиперссылку на​​ него всего одно​

​sku144​ строке, при отладке​ c1 МаскаПоиска$ =​
​ определенного списка найти​отсутствует, тогда функция​ сами.​ ctrl+f->выбираем документы->далее дополнительные​ Можно устанавливать ограничения​

​ написание этого слова​​Ctrl+F​
​Поиск и выдача результатов​ построения графика в​ поиска (смотрите первый​ и с чем​
​ sh.Cells.Find(What:=s, After:=sh.Cells(1, 1),​ «ячейку CSV» ?​

​ слово для поиска​​: Если вам нужен​ он не находит​ «*.*xl*» ‘ берём​ и выделить или​ поиска должна перейти​RAN​ параметры поиска, в​ по числовому формату,​ с большой буквы,​, после чего запуститься​ производится построчно. Сначала​ ячейке, т.д. Такой​ вариант, который мы​ едят???​ LookIn:=xlValues, LookAt:=xlPart) If​Сделайте из текстовых​ — Тест, вот​ поиск по всем​ данные, хотя они​ из ячейки c2​ как-то обозначить значения​ на поиск в​: Легко.​ них:​ по выравниванию, шрифту,​ как это было​ знакомое нам уже​ обрабатываются все ячейки​ способ мы рассмотрели​ рассмотрели выше).​Разбирался всегда со​ Not c Is​ файлов книги Excel​ почему то по​ ячейкам, используйте «Cells»​ там есть​

planetaexcel.ru

Поиск одного значения в нескольких файлах

​ ГлубинаПоиска% = 2​​ из нескольких файлов?​ таблице table_export_04KAsep.xls за​Макрсом поочередно открыть​В пункте «Слово​ границе, заливке и​ бы по умолчанию,​ окно​ первой строки. Если​ на примере создания​Получится такой результат.​ всем сам, теперь​ Nothing Then With​ — затем как​ ссылке на этот​ вместо «Диапазон_Ячеек_для_Поиска»​sku144​ ‘ берём из​ Объединение файлов для​ 4 сентября и​ все документы, в​ или фраза в​ защите, по одному​ уже не попадут.​«Найти и заменить»​ данные отвечающие условию​ простой игры. Смотрите​Третий вариант.​ жду помощи в​ ThisWorkbook.Sheets(1) .Cells(rw, 1)​ обычно…​ файл пройти получается,​Set РезультатПоиска =​: охх, кириллические переменные​

​ ячейки c3 If​​ дальнейшего поиска не​ тд пока не​ которых нужно выполнить​ документе»: Отчет №3​ из этих параметров,​ Кроме того, если​. Дальнейшие действия точно​

​ найдены не были,​​ статью «Игра в​Как найти нужный документ​ этом не легком​

​ = folder_ &​​AB1​ но опять же​ Cells.Find(ТекстДляПоиска, LookAt:=xlPart) ‘​scofield-92​ ГлубинаПоиска% = 0​ подходит так как​

​ найдет совпадения с​​ поиск, в каждом​В пункте «Поиск​

​ или комбинируя их​​ включена функция​ такие же, что​ программа начинает искать​ Excel».​ из открытого документа​ вопросе.​ ActiveWorkbook.Name .Hyperlinks.Add Anchor:=.Cells(rw,​: Я использовал «*.csv»​ с глюком, при​ начинаем поиск …​: Ну это бралось​ Then ГлубинаПоиска% =​ файлов может быть​ ФИО Торгового Представителя​ из этих документов,​ в»: выбираем(если вдруг​ вместе.​«Ячейки целиком»​ и при предыдущем​ во второй строке,​В документах Microsoft Excel,​Excel.​Сергей каханский​ 1), Address:=folder_ &​
​ вместо «*.xls*» -​ переходе в файл​ Set РезультатПоиска =​ с различный сайтов,​ 999 ‘ без​

​ очень много!​​ (ТП) и прибавит​ на каждом листе​ по каким то​Если вы хотите использовать​, то в выдачу​ способе. Единственное отличие​ и так далее,​ которые состоят из​
​В открытом документе​: эту задачу можно​ ActiveWorkbook.Name, SubAddress:=c.Address End​ все работает как​ искомое слово исчезает!​ Cells.FindNext(РезультатПоиска)а вот первая​

​ не мое воплощение))​​ ограничения по глубине​

​Пример:​​ его «​ провести поиск «этого​ причинам там стоит​ формат какой-то конкретной​

​ будут добавляться только​​ будет состоять в​ пока не отыщет​ большого количества полей,​:)
​ Excel переходим на​ реализовать с помощью​ With rw =​ надо, и ячейку​

​ Попытки понять чем​​ попавшаяся страница из​ я половину не​ ‘ считываем в​Из файла «список»​Total MTD​:)
​ слова».​ не текущая) папку​ ячейки, то в​

​ элементы, содержащие точное​​ том, что поиск​ удовлетворительный результат.​

​ часто требуется найти​​ закладку «Файл» (в​ макроса, который будет​ rw + 1​ определяет корректно​ другие файлы отличаются​ гугла как копировать​ понимаю как работает​ колекцию coll нужные​
​ нужно найти в​» к «​Если нашли -​

​ с 20 документами.​​ нижней части окна​
​ наименование. Например, если​ выполняется только в​Поисковые символы не обязательно​ определенные данные, наименование​ Excel 2013) или​ последовательно открывать каждый​ Exit For End​Хотя, мне достаточно​ от вновьсозданного не​ данные с книги​Private Sub CommandButton1_Click()​ имена файлов Set​ файлах «Для сопоставления​Total PC​ вывести имя файла​Это действительно простейший​ нажмите на кнопку​ вы зададите поисковый​ указанном интервале ячеек.​ должны быть самостоятельными​ строки, и т.д.​ нажимаем на кнопку​ файл, производить необходимые​ If Next .Close​ имени файла, в​ увенчались успехом.​ на книгу​ textsarch = «*антон*»​ coll = FilenamesCollection(ПутьКПапке$,​ 1, 2, 3″​».​Цитата​ вариант.​«Использовать формат этой ячейки…»​ запрос «Николаев», то​Как уже говорилось выше,​ элементами. Так, если​ Очень неудобно, когда​ «Office» в левом​ действия и закрывать​ False End With​ котором найден текст.​abricos29​http://sirexcel.ru/makrosi_vba/kak_s…igi_v_druguyu/​ [c1] = «C:Users»​ МаскаПоиска$, ГлубинаПоиска%) Application.ScreenUpdating​ одинаковые значения?​Во первых проблема​SergVrn, 01.12.2017 в​olegh​.​ ячейки, содержащие текст​ при обычном поиске​ в качестве запроса​ приходится просматривать огромное​ верхнем углу (в​ его. Только опишите​ End If file_​Юрий М​: Извиняюсь, затупил, файл​dimatel2013​ Dim coll As​ = False ‘​zickland​ создания такой функции​ 17:59, в сообщении​: да, спасибо​После этого, появляется инструмент​ «Николаев А. Д.»,​ в результаты выдачи​ будет задано выражение​ количество строк, чтобы​ Excel 2007).​ на примере одного​ = Dir Loop​: В .csv НЕТ​ с макросом и​: Добрый день!​

​ Collection, FolderPath$, searchmask$,​​ отключаем обновление экрана​: Еще файлы!​ поиска в разных​ № 1 ()​SergVrn​ в виде пипетки.​
​ в выдачу уже​ попадают абсолютно все​ «прав», то в​ найти нужное слово​

​В появившемся диалоговом​​ файла, что и​ Application.ScreenUpdating = True​ ячеек.​ файлы в которых​:)

​Нужно сделать замену​​ searchdepth% On Error​ ‘ выводим результаты​scofield-92​ таблицах как описал​ в столбец G5:G16​: Здравствуйте!​

​ С помощью него​​ добавлены не будут.​

​ ячейки, содержащие последовательный​​ выдаче будут представлены​ или выражение. Сэкономить​

​ окне нажимаем на​​ как должно быть​ Beep MsgBox «Готово!»​AB1​ ищем должны быть​ в нескольких .xls​ Resume Next FolderPath$​ (список файлов, и​: Добрый день.​ выше а также​Если не нашли,​Ищу ответ на​ можно выделить ту​По умолчанию, поиск производится​ набор поисковых символов​

planetaexcel.ru

Как произвести поиск по нескольким Excel файлам?

​ все ячейки, которые​ время и нервы​ функцию «Открыть». Появится​ организовано, что ищем​ End Sub​: Если данный макрос​ на одном уровне,​ файлах.​ = [c1] searchmask$​ их характеристик) на​Подскажите, пожалуйста, как​
​ такие таблици будут​ выводить имя файла​ непростой вопрос.​ ячейку, формат которой​ только на активном​ в любом виде​ содержат данный последовательный​
​ поможет встроенный поиск​ список последних книг​ и как выводим​Юрий М​ при поиске открывает​ в одной папке!​

​Подскажите, какие есть​ = «*.*xl*» ‘​ лист For i​ реализовать следующую задачу:​ добавляться ежедневно.​ не нужно.​
​В файле «ГЛАВНЫЙ​ вы собираетесь использовать.​ листе Excel. Но,​ не зависимо от​ набор символов даже​

​ Microsoft Excel. Давайте​​ Excel, с которыми​ результаты поиска.​: Если Вы про​ файлы, то при​ Макрос работает отлично.​ варианты — готовые​ searchdepth% = 1​ = 1 To​Имеются файлы excel,,​Таблица за 6​Hugo​ ФАЙЛ.xls» в ячейку​После того, как формат​

​ если параметр​

Да, ошибся. Меньший файл 15 000 строк, а не 5000. Больший 30 000 строк.
Вот выкладываю несколько строк так, как они лежат в excel. (всего 3 столбца)

Меньший файл выглядит так:

20100114   192000   7482
20100114   192100   7483
20100114   192200   7483,5
20100114   192500   7484
20100114   192800   7480
20100114   193300   7480
20100114   194000   7480
20100114   195200   7475
20100114   195900   7473
20100114   200800   7490
20100114   202200   7485
20100114   202300   7485
20100114   202500   7489,5
20100114   202700   7481
20100114   202800   7481
20100114   202900   7482
20100114   203000   7490

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

Чтобы понять суть моего вопроса, нужно посмотреть на строки другого (большего по размеру) файла со следующими строками:

20100114   192100   8761,25
20100114   192200   8772
20100114   192300   8772,5
20100114   192400   8774
20100114   192500   8773
20100114   192600   8772,25
20100114   192700   8770,75
20100114   192800   8767,75
20100114   192900   8768,5
20100114   193000   8771,25
20100114   193100   8774,25
20100114   193200   8773,5
20100114   193300   8771
20100114   193400   8771,25
20100114   193500   8772
20100114   193600   8771
20100114   193700   8766,75
20100114   193800   8766,5
20100114   193900   8768,5
20100114   194000   8765,5
20100114   194100   8762,75
20100114   194200   8761,5
20100114   194300   8762
20100114   194400   8765,75
20100114   194500   8766,75
20100114   194600   8765,5
20100114   194700   8766
20100114   194800   8766
20100114   194900   8765,5
20100114   195100   8765,5
20100114   195200   8766,5
20100114   195400   8767
20100114   195600   8766,5
20100114   195700   8767
20100114   195800   8765,5
20100114   195900   8765
20100114   200000   8765
20100114   200100   8765,5
20100114   200200   8767,5
20100114   200300   8767
20100114   200400   8768
20100114   200500   8768
20100114   200600   8770
20100114   200700   8771,75
20100114   200800   8770,75
20100114   200900   8768,5
20100114   201000   8770
20100114   201100   8770,5
20100114   201200   8769,5
20100114   201300   8769
20100114   201400   8769,5
20100114   201500   8770,5
20100114   201600   8771
20100114   201700   8771,25
20100114   201900   8772
20100114   202000   8773,5
20100114   202100   8769
20100114   202200   8767,5
20100114   202300   8768
20100114   202600   8766,5
20100114   202700   8766,25
20100114   202800   8768
20100114   202900   8769,5
20100114   203000   8771

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

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

Т.е. к примеру есть строка в меньшем файле —
20100114   192500   7484
Под таким же номером должна быть и строка в большем файле и она есть —
20100114   192500   8773

но дальше, в меньшем файле идет строка —
20100114   192800   7480
(пропуск трех минут)

а в большем файле идет строка —
20100114   192600   8772,25

что не соответствует по времени со строкой в меньшем файле, а раз несоответствует, нужно ее просто удалить и сделать так, что следующей строкой в большем файле была строка, совпадающая по времени с меньшим файлом, т. е вот такая —
20100114   192800   8767,75

Вот такая ситуация.

Поиск в excel в нескольких файлах

поиск сразу в нескольких документах *.xls

Пример: надо найти текст «45454» сразу в нескольких *.xls документах в разных папках.

Что посоветуете?! Нужно очень срочно!

Я так и искал, но толку ноль. Ищет только в имени файла.

Вот, ****!! Сел за другой комп — стал искать!!

Странно, прежде чем тебе написать проверил у себя 3 раза,
первый раз искал «xls» и слово «свою фамилию»
второй раз искал «xls» и слово «.»
третий раз искал «xls» и слово «а.»

По каждому запросу выдавал мне кучу файлов.

Ferrum_78RUS добавил 15.05.2007 в 17:19
Тогда делай так
-в exel
-файл
-поиск файлов
-раширенный поиск файлов
-настраивай параметры поиска
-несколько минут ожидания и готово.

Одновременный поиск в нескольких таблицах Excel

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

Одновременный поиск по нескольким диапазонам

Для наглядного примера создадим три простые отдельные таблицы расположенных в несмежных диапазонах одного листа:

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

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

Среднестатистический пользователь Excel искал бы решение с помощью формул основанных таких функциях как ВПР. И выполнял бы поиск в 3 этапа (отдельно для каждой таблицы). Оказывается, можно получить сразу готовый результат выполнив поиск только в 1 этап с помощью специальной формулы. Для этого:

  1. В ячейке E6 введите значение 20, которое является условием для поискового запроса.
  2. В ячейке E7 введите следующую формулу:

Производственная себестоимость для 20 шт. определенного товара.

Как работает формула с ВПР в нескольких таблицах:

Принцип действия данной формулы основан на поочередном поиске всех аргументов для главной функции ВПР (первой). Сначала третья функция ВПР ищет по первой таблице количество времени необходимое для производства 20 штук продукта указанного в качестве значения для ячейки E6 (которое потом можно изменять при необходимости). Потом вторая функция ВПР ищет значение для первого аргумента главной функции.

В результате поиска третьей функции мы получаем значение 125, которое является первым аргументом для второй функции. Получив все параметры, вторая функция ищет во второй таблице количество требуемых работников для производства. В результате возвращено значение 5, которое дальше будет использовано главной функцией. На основе всех полученных данных формула возвращает финальный результат вычисления. А именно сумму 1750$ необходимую для производства 20 штук определенного товара.

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

Поиск в excel в нескольких файлах

Полезные программы для офиса: пакетная работа с файлами

Twins File Merger 3.65
Это удобный инструмент для объединения нескольких файлов в один большой. Программа позволяет объединять файлы разных форматов, поэтому с ее помощью можно создать как огромный текстовый файл, так и CD с музыкой в режиме нон-стоп. Twins File Merger имеет удобные инструменты для управления списком файлов и настраиваемый интерфейс.
сайт 1,7 Mб

Text Magician 1.0
Бесплатная программа для редактирования большого количества текстовых файлов одновременно. Она позволяет объединять или, наоборот, разрезать файлы, удалять или заменять заданный текст, изменять регистр букв, начинать каждое слово в новой строке с большой буквы, добавлять текст в начало или конец строк, удалять ненужные пробелы, строки, участки текста.
сайт 280 Кб

ZipScan 2.2
Небольшая утилита для поиска файлов в архивах, в том числе в самораспаковывающихся. Программа понимает форматы ZIP, CAB, RAR, JAR, ACE, TAR и GZ. Вы можете искать текстовые фрагменты или файлы заданного размера. Когда программа найдет файлы, их можно просмотреть или сразу же извлечь из архивов.
сайт 700 Кб

Replace Tool 1.71
Удобная утилита для автоматической замены одного или нескольких символов в большом количестве файлов одновременно. Программа работает с текстовыми и HTML-файлами. При помощи окна Replace Tool можно добавлять в список файлы, которые находятся в разных папках, после чего программе можно давать задания. Программа имеет простой интерфейс и может запоминать очередность заданий. Replace Tool также имеет функцию отката, которая позволяет восстановить данные в файлах в случае необходимости.
сайт 996 Kб

InfoRapid Search & Replace 3.1
Система поиска файлов, которая предлагается пользователям Windows, зачастую не может быстро и корректно найти результат ввиду своих ограниченных возможностей. В этом случае имеет смысл использовать альтернативный софт. Одна из таких утилит — InfoRapid Search & Replace. Ее мощная система поиска позволяет точно и быстро определять запрашиваемую информацию, которая соответствует заданным критериям. Благодаря встроенным текстовым конвертерам эта утилита подходит для поиска и просмотра содержания HTML- и RTF-документов. В обычных текстовых файлах можно заменять определенный текст на новый, указанный в настройках программы. Кроме этого, InfoRapid Search & Replace поддерживает функцию поиска в документах WinWord, Excel, Lotus.
сайт 991 Кб

Actual Search and Replace 2.6.3
При работе с текстовыми документами иногда приходится вносить изменения одновременно в несколько документов (например, если требуется в нескольких документах исправить написание определенной фамилии). В такой ситуации может помочь программа Actual Search & Replace — инструмент для поиска и замены слов или фраз в массиве текстовых файлов. Поиск и замена осуществляется в указанной вами папке по заданной маске. Найденные результаты будут выведены на экран так, как это делается поисковым сервером в Интернете, в виде серии результатов. Результат поиска может быть записан и сохранен в отдельный файл. Для изменения файлов используется встроенный редактор.
сайт 770 Кб

A.F.9 1.2
Эта бесплатная программа с загадочным названием позволяет редактировать файлы, заменяя любые символы. При этом программа имеет несколько отличий от привычной функции замены, присутствующей во многих текстовых редакторах. Во-первых, с ее помощью можно редактировать большое количество файлов одновременно, а также заменять сразу несколько фраз. Программа поддерживает редактирование файлов любого формата и размера.
сайт 992 Кб

WordPipe 4.1
Программа для поиска и замены символов в нескольких документах MS Word одновременно. Программа поддерживает все стандартные функции замены «Ворда», в том числе подстановочные знаки, формы слов, «слово целиком» и пр. В программу также входит дополнительный модуль TextPipe Pro, позволяющий изменять документы по выбранному фильтру: удаление нескольких пробелов, идущих подряд, исправление знаков пунктуации и пр. сайт 1,03 Mб

FindReplaceExcel 2.15
Программа для поиска и замены различных данных в файлах Excel. Она поможет найти текст, значения и комментарии и заменить их, даже не требуя от вас открытия рабочих книг. Программа может искать диапазоны в рабочих листах или только на определенных листах в книге, производить поиск по нескольким дискам. Она также поддерживает поиск данных, которые не полностью совпадают с запросом, и поиск с учетом регистра. Чтобы в результате работы программы не произошло потери данных, перед внесением в документы изменений она автоматически создает копию.
сайт 2,2 Мб

Drag Drop and Replace 1.0
Программа для быстрого поиска и замены текста. Пригодится в первую очередь тем, кому нужно время от времени изменять данные в большом количестве файлов — например, веб-мастерам. Drag Drop and Replace справляется с файлами размером до 4 Гб, позволяет просмотреть текст перед заменой, а также поддерживает выполнение нескольких заданий и операции с несколькими файлами одновременно.
сайт 340 Кб

Mass Text Replacer 1.0.0
Программа для поиска информации в большом количестве файлов одновременно и их замены. Mass Text Replacer позволяет выбирать файлы по одному или же указывать целые директории. Она будет особенно полезна веб-мастерам, которым часто приходится вносить одни и те же изменения в большое количество файлов. Mass Text Replacer также пригодится программистам и писателям. Программа позволяет вставлять в файлы участки текста любой величины или же элементы веб-страниц (например, таблицы).
сайт 2,92 Mб

FindersKeepers 2.02
Программа, предназначенная для поиска текста в файлах, его замены и выполнения других операций с найденными файлами. В частности, Finders Keepers позволяет просматривать или запускать все найденные файлы, архивировать их, редактировать текстовые файлы. При этом исходные копии всех файлов, в которые вносятся изменения, будут сохранены. Поиск осуществляется несколькими способами, причем движок поиска настолько совершенен, что позволяет найти слова даже если в них допущены орфографические ошибки.
сайт 2,2 Mб

Criline Search and Replace 3.3
Criline Replacer — это программа для быстрого поиска определенного текста в нескольких файлах одновременно и замены его другим. Поддерживается большое количество типов файлов, имеется очень быстрый алгоритм поиска и, кроме того, программа очень проста в использовании. Criline Replacer может сэкономить массу времени программистам и веб-мастерам.
сайт 1,1 Mб

SearchMaestro 1.0
Программа для поиска файлов и просмотра их содержимого. SearchMaestro позволяет сохранять и впоследствии загружать заданные настройки, экспортировать результаты поиска в файлы *.csv или *.xml. Вы сможете не только просматривать содержимое файлов, но и автоматически заменять выбранные символы другими. SearchMaestro также предоставляет возможность создания файлов VBScript и JavaScript для многоразового использования. сайт 2,7 Mб

Verbs 1.01
Механизм поиска файлов операционной системы Windows несовершенен и имеет ряд упущений. Программа Verbs восполнит этот пробел. Эта утилита предназначена для поиска документа, содержащего ключевое слово. Принцип работы Verbs очень прост. После того, как программа получит запрос на поиск ключевого слова, она обращается к базе данных в виде созданного заранее каталога всех документов. Найденный файл откроется в ассоциируемом приложении. Программа учитывает изменения, которым подвергаются файлы в процессе работы пользователя, и периодически обновляет каталог — базу данных.
сайт 1,8 Mб

FileEngineer 2.01
Простая утилита для работы с файлами. С ее помощью можно выполнять несколько основных операций: искать текст в файлах, заменять одни участки текста другими и переименовывать несколько файлов одновременно. При выполнении последней операции файлам даются одинаковые названия, которые отличаются лишь числами. Хотя программу нельзя назвать многофункциональной, со своей задачей она справляется хорошо и быстро.
сайт 2 Mб

Advanced Excel Find & Replace 2.4
Программа, которая расширяет стандартные возможности одной из утилит пакета Microsoft Office — Excel. Интегрируясь в оболочку популярной программы для работы с таблицами, данная утилита позволяет усовершенствовать механизм поиска в программе. Advanced Excel Find совместима с версями Excel 2000, 2002 и 2003. С ее помощью можно искать данные по нескольким листам и рабочим книгам. Вы можете одновременно задать поиск в формулах, значениях и комментариях.
сайт 985 Кб

ExcelExplorer 1.01
Программа для удобного и быстрого управления файлами Excel. Используя ExcelExplorer, вы сможете просматривать, перемещать, удалять или переименовывать файлы, даже если Excel не установлен у вас на компьютере. Интерфейс программы представлен двумя панелями. С левой стороны располагается список файлов в виде древовидной структуры, в правой — содержимое выбранного файла. Редактировать файл можно тут же.
сайт 1,9 Мб

Поиск текста в нескольких файлах Excel

Я использую Microsoft Office 2007. Как я могу искать в нескольких файлах Excel?

В папке, в которой хранятся файлы, нажмите Ctrl + f, чтобы использовать окно поиска в папке. Затем выполните поиск

для поиска этой строки в файлах в текущем каталоге.

Используйте IceTeaReplacer . Это бесплатная программа.

Поиск & Замените файлы .docx, .xlsx и .xls

IceTeaReplacer — простой, но мощный инструмент для поиска внутри несколько Microsoft Office Word 2007 (docx), Excel 2007 (xlsx) и Файлы Excel 2003 (xls) в каталоге (и это подкаталоги) и заменить предоставленную фразу. Поддерживает UTF-8.

>

Существует также более мощная альтернатива с различными функциями, но она является коммерческой: ExcelPipe .

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

Обратите внимание, что он был протестирован только в Excel 2010, но он должен работать в 2007 году и более ранних версиях. Если нет, не стесняйтесь изменять код, как вы считаете нужным.

Электронная таблица использует пользовательскую форму и использует код VBA (который вы можете использовать для любых целей). Естественно, макросы и т. Д. Должны быть включены, чтобы это работало, и форма появляется при открытии электронной таблицы (вы можете получить доступ к коду, нажав Alt + F11, перейдя к пользовательской форме и дважды щелкнув кнопку «Начать поиск» в окна дизайна).

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

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

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

Пользовательская форма должна быть относительно понятной, однако readme для нее на Github очень подробно описывает, как ее использовать. Опять же, свободный для использования, это с открытым исходным кодом.

В Excel 2003 у вас была опция дополнительного поиска в меню файла, где вы могли искать файлы. Я больше не могу найти этот вариант в 2007 году, поэтому я думаю, что он ушел.

Если у вас есть Vista или Windows 7, вы сможете использовать встроенный поиск окна. В более старых версиях вы можете установить поисковое приложение, например Поиск рабочего стола Windows , Google Desktop Search , Copernic , . они могут свободно использовать.

Получение списка файлов в папке

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

2. *.xl* – все файлы Excel (xls, xlsx, xlsm, xlsb и т.д.);

3. *.exe – все исполняемые файлы (программы);

4. *.docx (doc, docm) – все документы Word. Добавив ключевое слово Рок*.docx в список войдут все названия файлов, начинающиеся со слова «Рок».

Дальше нажатием Ctrl+F3 или на вкладке «Формулы» — «Диспетчер имён», в открывшемся окне создадим новое имя Список_файлов и введём в строку Диапазон следующую формулу =ФАЙЛЫ(Лист1!$A$1) где «Лист1» – это название листа, а «А1» – ячейка с адресом

Теперь в созданном нами названии «Список_файлов» уже содержатся нужные имена файлов, осталось их оттуда извлечь. Для этого используем в ячейке А3 следующую формулу и протянем её вниз: =ЕСЛИОШИБКА(ИНДЕКС(Список_файлов;СТРОКА()-2);””)

Функция ЕСЛИОШИБКА нужна, чтобы спрятать ошибку #ССЫЛКА, которая возникает, когда мы протягиваем формулу «с запасом», т.е. на больший по размеру диапазон, чем количество имеющихся у нас файлов.

Функция ИНДЕКС извлекает из массива элемент по номеру, например, формула =ИНДЕКС(Список_файлов; 5) выдаст имя пятого по счету файла в папке.

Функция СТРОКА, выдает порядковый номер текущей строки, из которого мы вычитаем 2, т.к. первая ячейка, куда выводится имя, в нашем случае А3.

`ls /path/to/dir | grep -e ‘regex’`

Это смотря для чего.

У меня описанное ТС-ом работает в макросе сбора данных из текстовых файлов генерируемых CMM машиной.

Файл с макросом копируется в папку с выбранной горой текстовых отчетов и макрос делает из кучи барахла удобокопируемые данные.

Если бы делал для себя- может и морочился бы с текстовым файлом и батниками. Но задача была сделать файл для работы необученого ничему оператора. Чтобы нажал кнопку и всё получилось.

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

P.S. Конкретно в вашем случае я бы складывал это все в какую-нибудь СУБД, после чего эти данные можно удобно обработать и проанализировать, скорее всего гораздо быстрее, чем в экселе, если данных ДЕЙСТВИТЕЛЬНО много (гигабайты и больше). Я бы смотрел в сторону Clickhouse.

В моем случае это был статистический контроль.

Данные доступны были или в ПДФ-ках, из каждой надо было скопировать 10-20 числовых значений и вставить в ексель. Таких ПДФ-ок приходилось в день открывать сотруднику порядка 50-100 штук. И создание отчета занимало несколько дней (ведь была еще и другая работа). И отследить ошибки вообще было нереально. И еще оборудование генерило текстовые файлы. Вот из них и кромсал данные макрос.

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

Выделить дубликаты значений в двух файлах.

Gremina

Дата: Среда, 01.04.2015, 09:25 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 18


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Всем доброго дня! Обращаюсь к вам, умные люди, за помощью. В силу работы, мне ежедневно приходится отсматривать большие объемы информации. В целях облегчения, у меня появилась идея, но вот с ее реализацией, к сожалению проблема. Вобщем кратко — суть: Есть ли возможность написать такую формулу, чтобы в двух открытых файлах ексель отсмотрел два столбца. Цель: найти одинаковые номера из одного файла и выделить их в другом файле если таковые имеются в указанном столбце. Не уверена что понятно объяснила… в указанном столбце располагается номер закупки (работа связана с госзакупками) — значок номера и 9 цифр. Ежедневно я скачиваю обновленную базу, и за какое — либо число этих номеров может увеличиться. К примеру вчера на эту дату было 352 строки (отслеживаю именно по строкам чтобы увидеть изменения в числе), а сегодня на эту же дату — 388 строк. и чтобы вычислить эти добавленные 30 с лишним строк, мне необходимо просмотреть их все. А хотелось бы — чтобы супер формула сказала мне — добавлены вот эти. я их отсмотрела и пошла дальше смотреть другие. Возможно так????

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

 

Ответить

Nic70y

Дата: Среда, 01.04.2015, 09:37 |
Сообщение № 2

Группа: Друзья

Ранг: Экселист

Сообщений: 8132


Репутация:

1998

±

Замечаний:
0% ±


Excel 2010


ЮMoney 41001841029809

 

Ответить

Pelena

Дата: Среда, 01.04.2015, 09:41 |
Сообщение № 3

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Цель: найти одинаковые номера

вычислить эти добавленные

Так всё-таки что надо найти, одинаковые или добавленные?
Что должно получиться в вашем примере?


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

Gremina

Дата: Среда, 01.04.2015, 09:56 |
Сообщение № 4

Группа: Пользователи

Ранг: Новичок

Сообщений: 18


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

цель — найти номера, которых не было в файле предыдущей даты. и каким -нибудь образом их выделить. Чтобы не приходилось дважды отсматривать одно и то же. Или наоборот — выделить те, которые есть и в одном файле и в другом, и тогда смотреть только те, что не выделены.

 

Ответить

Gremina

Дата: Среда, 01.04.2015, 10:00 |
Сообщение № 5

Группа: Пользователи

Ранг: Новичок

Сообщений: 18


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Уважаемый Nic70y!
Спасибо за помощь, непременно попробую.

 

Ответить

Pelena

Дата: Среда, 01.04.2015, 10:06 |
Сообщение № 6

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Можно в доп. столбец формулу

Код

=СЧЁТЕСЛИ(‘[19-03.xls]Headway Company’!$B$2:$B$51;B2)

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


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

Gremina

Дата: Среда, 01.04.2015, 10:12 |
Сообщение № 7

Группа: Пользователи

Ранг: Новичок

Сообщений: 18


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Спасибо, Pelena!
сейчас попробую. В моем примере вполне возможно что и не найдете, потому что я файлы сократила до необходимого размера.
Попробовала, не получается. Может потому что у меня рабочие файлы в формате документ xml? Может нужно перевести в формат Эксель?

 

Ответить

Gremina

Дата: Среда, 01.04.2015, 10:18 |
Сообщение № 8

Группа: Пользователи

Ранг: Новичок

Сообщений: 18


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Эту формулу нужно ставить в каком файле? предыдущем или более свежем? и я ставлю формулу, ставит мне 0, но тут же открывает — мол выберите какой файл открыть. Выбыираю один или другой — и тут же ошибку — ЗНАЧ

 

Ответить

Pelena

Дата: Среда, 01.04.2015, 10:22 |
Сообщение № 9

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Формулу пишем в более свежем файле, имя предыдущего файла в формуле, естественно, должно быть реальным. Файлы должны быть оба открыты


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

Gremina

Дата: Среда, 01.04.2015, 10:26 |
Сообщение № 10

Группа: Пользователи

Ранг: Новичок

Сообщений: 18


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Попробовала программу. тоже не вышло. Пишет что то про макросы — мол либо отключены, либо удалены. Может тоже дело в XML?. Сейчас попробую в экселе.

 

Ответить

Gremina

Дата: Среда, 01.04.2015, 10:27 |
Сообщение № 11

Группа: Пользователи

Ранг: Новичок

Сообщений: 18


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

тоже не вышло. Хоть плачь!!! :( :( :( :( :(

 

Ответить

Pelena

Дата: Среда, 01.04.2015, 10:27 |
Сообщение № 12

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Формула

Код

=ЕНД(ПОИСКПОЗ(B2;'[19-03.xls]Headway Company’!$B$2:$B$51;0))

может работать и с закрытым файлом

К сообщению приложен файл:

Excel.rar
(20.1 Kb)


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

Gremina

Дата: Среда, 01.04.2015, 10:49 |
Сообщение № 13

Группа: Пользователи

Ранг: Новичок

Сообщений: 18


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Уважаемая Pelena!
попробовала вашу новую формулу. Указала новые номер ячеек начала анализа и конца, изменила наименование файла, но если я правильно понимаю этот процесс — при проверке каждой строки меня программа просила открыть файл. И так много раз. Пробовала при закрытом и при открытом файле, не вышло — все равно просила указать файл видимо сравнения. Но результат мучений тем не менее — неудовлетворительный. По количеству добавленных строк — разница в три штуки, а по формуле ложь/истина — 11 истин, остальное ложь. Может я что то не так делаю? Или может я неправильно изложила суть своей просьбы…

 

Ответить

Gremina

Дата: Среда, 01.04.2015, 10:50 |
Сообщение № 14

Группа: Пользователи

Ранг: Новичок

Сообщений: 18


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

В экселе та же самая ошибка — программа не работает у меня….. %) :(

 

Ответить

Gremina

Дата: Среда, 01.04.2015, 10:55 |
Сообщение № 15

Группа: Пользователи

Ранг: Новичок

Сообщений: 18


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Уважаемая Pelena!
приношу свои извинения, сама тупанула немного — неверно указала номера начала поиска во втором файле и конца. Номера строк отличаются. Если научите как сделать так, чтобы он не просил на каждое сравнение открывать файл, то моя проблема будет решена!!!

 

Ответить

Pelena

Дата: Среда, 01.04.2015, 11:23 |
Сообщение № 16

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

У меня не запрашивает. Проверяйте имя файла и листа, обратите внимание на апострофы (‘). Всё на месте?


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

Gremina

Дата: Среда, 01.04.2015, 11:33 |
Сообщение № 17

Группа: Пользователи

Ранг: Новичок

Сообщений: 18


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

=ЕНД(ПОИСКПОЗ(B23;'[30-03.xls]Headway Company’!$B$600:$B$1381;0))

У меня применяя вашу формулу получилась вот такая . Все апострофы вроде на месте.старалась менять только переменные значения….. не понимаю почему у меня просит…
И еще, скажите, с файлами XML работать не будет?

 

Ответить

Pelena

Дата: Среда, 01.04.2015, 11:41 |
Сообщение № 18

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

А в той паре файлов, что я приложила в архиве, тоже запрашивает?

Насчёт xml не могу сказать, не знаю


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

Gremina

Дата: Среда, 01.04.2015, 11:54 |
Сообщение № 19

Группа: Пользователи

Ранг: Новичок

Сообщений: 18


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Странно, но в файлах из вашей папки действительно не просит открытия файла. Так же вставила в первую ячейку и протянула… Хотя я свои сравниваемые файлы тоже поместила в одну папку и перевела в ексель. даже не знаю в чем может быть проблема. %) %) %) %)

 

Ответить

Pelena

Дата: Среда, 01.04.2015, 11:56 |
Сообщение № 20

Группа: Админы

Ранг: Местный житель

Сообщений: 18797


Репутация:

4284

±

Замечаний:
±


Excel 2016 & Mac Excel

Может, у Вас где-то ещё ссылки на файлы, помимо этой формулы?


«Черт возьми, Холмс! Но как??!!»
Ю-money 41001765434816

 

Ответить

Содержание

  1. Функция ВПР в Экселе – быстрый перенос данных
  2. Видео — «Быстрый перенос данных с помощью функции ВПР в Экселе»
  3. Функция ВПР в Экселе: пошаговая инструкция
  4. Особенности использования формулы ВПР в Excel
  5. Интервальный просмотр в функции ВПР
  6. Синтаксис и описание функции ВПР в Excel
  7. Как использовать именованный диапазон или таблицу в формулах ВПР
  8. Функция ВПР в Excel – Присвоение имени диапазону
  9. Функция ВПР в Excel – Пример функции ВПР с именем диапазона
  10. Функция ВПР в Excel – Пример функции ВПР с именем таблицы
  11. Постановка задачи
  12. Ошибки #Н/Д и их подавление
  13. Аргументы функции
  14. Как пользоваться функцией ВПР в Excel
  15. Быстрое сравнение двух таблиц с помощью ВПР
  16. Как работает функция ВПР в Excel: несколько примеров для «чайников».
  17. Использование точного и приблизительного поиска.
  18. Использование нескольких условий.
  19. Заключение

Функция ВПР в Экселе – быстрый перенос данных

Самое простое применение функция ВПР это быстрый перенос данных из одной таблицы в другую.

Например, у вас есть большой прайс на 500 позиций и запрос от покупателя, скажем на 50 позиций (в реальности и прайс и запрос могут быть гораздо больше, но принцип от этого не меняется).

Вам нужно быстро найти цены на эти 50 позиций. Разумеется, можно отдельно искать каждую позицию в большом прайсе и потратить на это 30 – 60 минут, а можно сделать это менее чем за минуту при помощи функции ВПР.

Итак, у нас в прайсе 500 позиций. Позиции обозначаются следующим образом, буквами обозначается вид позиции, а цифрами модификация.

Например, «Стул_1» и «Стул_21» это два совершенно разных стула.

Цены в прайсе указаны для примера и вряд ли имеют отношение к реальным ценам.

Обозначим задачу.

В ООО «ЫкэА» пришел запрос от «Петровича».

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

Однако это нас не страшит, во-первых, у нас есть ВПР, во-вторых мы и не такое видали.

Петрович требует, чтобы мы очень быстро проставили цены в его запросе. Ждать он намерен максимум 5 минут. Ведь другие поставщики уже завалили его предложениями.

Нам не хочется терять такого клиента и мы практически мгновенно открываем прайс:

Получается у нас должно быть открыто два файла (две книги в Эксель). Запрос от Петровича и Прайс.

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

Для этого перейдем в таблицу запроса и в первой ячейке столбца «Цены» (D4) введем «=впр» и два раза кликнем на значок функции:

Сразу же после этого, в строке формулы нужно поставить курсор внутри надписи ВПР и нажать Fx, перед вами появится окно с аргументами функции ВПР:

В аргументах функции вы говорите Экселю что и где нужно искать:

Искомое значение — это значение (в данном случае наименование), цену которого вы хотите найти в прайсе. Соответственно кликайте на первую ячейку столбца «Наименование».

Далее, сразу переходите в «Прайс»:

Теперь в аргументах функции заполните следующие поля:

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

Так работает функция ВПР — ищет искомые значения в крайнем левом столбце (для ВПР это столбец №1). Когда ВПР находит искомое значение он начинает смотреть правее, в тот столбец, который вы указали в «Номере столбца».

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

Интервальный просмотр — ставьте 0. Ноль обозначает точное соответствие.

После заполнения аргументов функции нажимайте «Ок» и если всё сделано верно, то в столбце «Цена» (файл «Запрос от Петровича»), появится цена.

Вам нужно протянуть цены на оставшиеся ячейки:

Коллеги, вот и всё, вы овладели функцией ВПР.

Очень важное замечание!

Обратите внимание на то, что сейчас мы работали в двух разных файлах (книгах).

Когда работа идёт в двух разных книгах, Эксель автоматически закрепляет таблицу в функции ВПР:

Делает это он при помощи значка $, который проставляет перед столбцами и строками таблицы.

Это позволяет не съезжать формуле когда вы протягиваете её вниз. Это очень актуально когда вы работаете в рамках одного листа или одной книги (в этом случае Эксель автоматически Не закрепляет ячейки).

Давайте посмотрим что получиться если протянуть формулу «без закрепления»:

Обратите внимание, что для первой ячейки всё в порядке и диапазон B3:C502 точно соответствует той таблице, которую мы выделили для поиска данных, однако (без закрепления) так будет не всегда, по мере «протягивания» формулы ВПР вниз, будет смещаться и таблица, пока однажды, мы не увидим вот такую странную надпись #Н/Д:

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

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

Очень важное замечание №2

Как вы заметили, формулы ссылаются на определённые ячейки, другими словами между формулами и исходными данными есть связь. Стоит изменить исходные данные и значения в формулах сразу изменятся.

Особенно остро это чувствуется в ВПР. Если вы вдруг забудетесь и в исходной табличке добавите лишний столбец в «неположенном месте», то в формула ВПР выдаст совсем неожиданные значения.

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

Для этого нужно выделить столбец с формулами, нажать Ctrl+C и в левом верхнем углу выбрать «Вставить» — «Вставить значения».

Для тех кто не любит изучать картинки, я записал небольшое видео в котором показываю всё то, что мы проговорили выше (кроме вставки значений):

Видео — «Быстрый перенос данных с помощью функции ВПР в Экселе»

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

Это очень актуально для тех кто работает в закупках и отправляет заказы поставщику.

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

Всё ли есть в счёте, в нужном ли количестве, по правильным ли ценам и т.д.

Функция ВПР в Экселе: пошаговая инструкция

Представим, что перед нами стоит задача определить стоимость проданных товаров. Стоимость рассчитывается, как произведение количества и цены. Сделать это очень легко, если количество и цены находятся в соседних колонках. Однако данные могут быть представлены не в столь удобном виде. Исходная информация может находиться в совершенно разных таблицах и в другом порядке. В первой таблице указаны количества проданных товаров:

Во второй – цены:

Если перечень товаров в обеих таблицах совпадает, то, зная магическое сочетание Ctrl+C и Ctrl+V, данные о ценах можно легко подставить к данным о количестве. Однако очередность позиций в обеих таблицах не совпадает. Тупо скопировать цены и подставить к количеству не получится.

Поэтому мы не можем прописать формулу умножения и «протянуть» вниз на все позиции.

Что делать? Надо как-то цены из второй таблицы подставить к соответствующему количеству в первой, т.е. цену товара А к количеству товара А, цену Б к количеству Б и т.д.

Вот так.

Функция ВПР в Эксель легко справится с задачей.

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

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

Кликаем по надписи «ВПР». Открывается следующее диалоговое окно.

Теперь нужно заполнить предлагаемые поля. В первом окошке «Искомое_значение» нужно указать критерий для ячейки, в которую мы вписываем формулу. В нашем случае это ячейка с наименованием товара «А».

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

Следующее поле «Номер_столбца» — это число, на которое столбец с искомыми данными (ценами) отстоит от столбца с критерием (наименованием товара) включительно. То есть отсчет идет, начиная с самого столбца с критерием. Если у нас во второй таблице оба столбца находятся рядом, то нужно указать число 2 (первый – критерий, второй — цены). Часто бывает, что данные отстоят от критерия на 10 или 20 столбцов. Это не важно, Excel все сосчитает.

Последнее поле «Интервальный_просмотр», где указывается тип поиска: точное (0) или приблизительное (1) совпадение критерия. Пока ставим 0 (или ЛОЖЬ). Второй вариант рассмотрен ниже.

Нажимаем ОК. Если все правильно и значение критерия есть в обеих таблицах, то на месте только что введенной формулы появится некоторое значение. Остается только протянуть (или просто скопировать) формулу вниз до последней строки таблицы.

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

Формулу ВПР можно прописать вручную, набирая аргументы по порядку, и разделяя точкой с запятой (см. видеоурок ниже).

Функция ВПР имеет свои особенности, о которых следует знать.

1. Первую особенность можно считать общей для функций, которые используются для многих ячеек путем прописывания формулы в одной из них и дальнейшим копированием в остальные. Здесь нужно обращать внимание на относительность и абсолютность ссылок. Конкретно в ВПР критерий (первое поле) должно иметь относительную ссылку (без знаков $), так как у каждой ячейки свой собственный критерий. А вот поле «Таблица» должно иметь абсолютную ссылку (адрес диапазона прописывается через $). Если этого не сделать, то при копировании формулы диапазон «поедет» вниз и многие значения просто не найдутся, так как искать будет негде.

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

3. Функция ВПР из диапазона с искомыми данными выдает первое сверху значение. Это значит, что, если во второй таблице, откуда мы пытаемся «подтянуть» некоторые данные, присутствуют несколько ячеек с одинаковым критерием, то в рамках выделенного диапазона ВПР захватит первое сверху значение. Об этом следует помнить. К примеру, если мы хотим к цене товара подтянуть количество из другой таблицы, а там этот товар встречается несколько раз (в нескольких строках), то к цене подтянется первое сверху количество.

4. Последний параметр формулы, который 0 (нуль), ставить нужно обязательно. Иначе формула может криво работать.

5. После использования ВПР саму формулу лучше сразу удалить, оставив только полученные значения. Делается это очень просто. Выделяем диапазон с полученными значениями, нажимаем «копировать» и на это же место с помощью специальной вставки вставляем значения. Если таблицы находятся в разных книгах Excel, то очень удобно разорвать внешние связи (оставив вместо них только значения) с помощью специальной команды, которая находится по пути Данные → Изменить связи.

После вызова функции разрывания внешних связей появится диалоговое окно, где нужно нажать кнопку «Разорвать связь» и затем «Закрыть».

Это позволит удалить сразу все внешние ссылки.

Интервальный просмотр в функции ВПР

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

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

Проще понять на примере. По результатам выполнения плана продаж каждому торговому агенту нужно выдать заслуженную премию (в процентах от оклада). Если план выполнен менее, чем на 100%, премия не положена, если план выполнен от 100% до 110% (110% не входит) – премия 20%, от 110% до 120% (120% не входит) – 40%, 120% и более – премия 60%. Данные находятся в следующем виде.

Требуется подставить премию на основании выполнения планов продаж. Для решения задачи в первой ячейке пропишем следующую формулу:

=ВПР(B2;$E$2:$F$5;2;1)

и скопируем вниз.

На рисунке ниже изображена схема, как работает интервальный просмотр функции ВПР.

Джеки Чан выполнил план на 124%. Значит ВПР в качестве критерия ищет во второй таблице ближайшее меньшее значение. Это 120%. Затем отсчитывает 2 столбца и возвращает премию 60%. Брюс Ли план не выполнил, поэтому его ближайший меньший критерий – 0%.

Синтаксис и описание функции ВПР в Excel

Итак, так как второе название этой статьи «Функция ВПР в Excel для чайников», начнем с того что узнаем, что же такое функция ВПР и что она делает? Функция ВПР на английском VLOOKUP, ищет указанное значение и возвращает соответствующее значение из другого столбца.

Как работает функция ВПР? Функция ВПР в Excel выполняет поиск по вашим спискам данных на основе уникального идентификатора и предоставляет вам часть информации, связанную с этим уникальным идентификатором.

Буква «В» в ВПР означает «вертикальный». Она используется для дифференциации функции ВПР и ГПР, которая ищет значение в верхней строке массива («Г» обозначает «горизонтальный»).

Функция ВПР доступна во всех версиях Excel 2016, Excel 2013, Excel 2010, Excel 2007, Excel 2003.

Синтаксис функции ВПР выглядит следующим образом:

ВПР(искомое_значение;таблица;номер_столбца;[интервальный_просмотр])

Как видите, функция ВПР имеет 4 параметра или аргумента. Первые три параметра обязательные, последний – необязательный.

  1. искомое_значение – это значение для поиска.

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

  • Поиск числа: =ВПР(40; A2:B15; 2) – формула будет искать число 40.
  • Поиск текста: =ВПР(«яблоки»; A2:B15; 2) – формула будет искать текст «яблоки». Обратите внимание, что вы всегда включаете текстовые значения в «двойные кавычки».
  • Поиск значения из другой ячейки: =ВПР(C2; A2:B15; 2) – формула будет искать значение в ячейке C2.
  1. таблица – это два или более столбца данных.

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

Итак, наша формула =ВПР(40; A2:B15; 2) будет искать «40» в ячейках от A2 до A15, потому что A – это первый столбец таблицы A2: B15.

  1. номер_столбцаномер столбца в таблице, из которой должно быть возвращено значение в соответствующей строке.

Самый левый столбец в указанной таблице равен 1, второй столбец – 2, третий – 3 и т. д.

Итак, теперь вы можете прочитать всю формулу =ВПР(40; A2:B15; 2). Формула ищет «40» в ячейках от A2 до A15 и возвращает соответствующее значение из столбца B (потому что B является вторым столбцом в указанной таблице A2:B15).

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

Как использовать именованный диапазон или таблицу в формулах ВПР

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

Чтобы создать именованный диапазон, просто выберите ячейки и введите любое имя в поле «Имя», слева от панели «Формула».

Функция ВПР в Excel – Присвоение имени диапазону

Теперь вы можете написать следующую формулу ВПР, чтобы получить цену Продукта 1:

=ВПР(«Продукт 1»;Продукты;2)

Функция ВПР в Excel – Пример функции ВПР с именем диапазона

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

Если вы преобразовали диапазон ячеек в полнофункциональную таблицу Excel (вкладка «Вставка» –> «Таблица»), вы можете выбрать диапазон поиска с помощью мыши, а Microsoft Excel автоматически добавит имена колонок или имя таблицы в формулу:

Функция ВПР в Excel – Пример функции ВПР с именем таблицы

Полная формула может выглядеть примерно так:

=ВПР(“Продукт 1”;Таблица6[[Продукт]:[Цена]];2)

или даже =ВПР(“Продукт 1”;Таблица6;2).

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

Постановка задачи

Итак, имеем две таблицы – таблицу заказов и прайс-лист:

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

Ошибки #Н/Д и их подавление

Функция ВПР (VLOOKUP) возвращает ошибку #Н/Д (#N/A) если:

  • Включен точный поиск (аргумент Интервальный просмотр=0) и искомого наименования нет в Таблице.
  • Включен приблизительный поиск (Интервальный просмотр=1), но Таблица, в которой происходит поиск не отсортирована по возрастанию наименований.
  • Формат ячейки, откуда берется искомое значение наименования (например B3 в нашем случае) и формат ячеек первого столбца (F3:F19) таблицы отличаются (например, числовой и текстовый). Этот случай особенно характерен при использовании вместо текстовых наименований числовых кодов (номера счетов, идентификаторы, даты и т.п.) В этом случае можно использовать функции Ч и ТЕКСТ для преобразования форматов данных. Выглядеть это будет примерно так:
    =ВПР(ТЕКСТ(B3);прайс;0)
  • Функция не может найти нужного значения, потому что в коде присутствуют пробелы или невидимые непечатаемые знаки (перенос строки и т.п.). В этом случае можно использовать текстовые функции СЖПРОБЕЛЫ (TRIM) и ПЕЧСИМВ (CLEAN) для их удаления:
    =ВПР(СЖПРОБЕЛЫ(ПЕЧСИМВ(B3));прайс;0)
    =VLOOKUP(TRIM(CLEAN(B3));прайс;0)

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

=ЕСЛИОШИБКА(ВПР(B3;прайс;2;0);0)

=IFERROR(VLOOKUP(B3;прайс;2;0);0)

Аргументы функции

  • lookup_value (искомое_значение) – это величина для поиска, из крайнего левого столбца таблицы. Это может быть значение, ссылка на ячейку или текстовая строка. В примере со студентами это их фамилии;
  • table_array (таблица) – это диапазон данных, в котором будет осуществлен поиск. Это может быть ссылка на диапазон ячеек или именованный диапазон. В примере с таблицей со студентами, это будет вся таблица, которая содержит оценку и фамилии студентов;
  • col_index (номер_столбца) – это порядковый номер столбца в диапазоне с данными, из которого будет получена искомая величина;
  • [range lookup] ([интервальный_просмотр]) – этот аргумент указывает на точность совпадения данных при поиске. Укажите “0” – если точное, “1” – если приблизительное совпадение.

Как пользоваться функцией ВПР в Excel

Допустим, на склад предприятия по производству тары и упаковки поступили материалы в определенном количестве.

Стоимость материалов – в прайс-листе. Это отдельная таблица.

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

Алгоритм действий:

  1. Приведем первую таблицу в нужный нам вид. Добавим столбцы «Цена» и «Стоимость/Сумма». Установим денежный формат для новых ячеек.
  2. Выделяем первую ячейку в столбце «Цена». В нашем примере – D2. Вызываем «Мастер функций» с помощью кнопки «fx» (в начале строки формул) или нажав комбинацию горячих клавиш SHIFT+F3. В категории «Ссылки и массивы» находим функцию ВПР и жмем ОК. Данную функцию можно вызвать перейдя по закладке «Формулы» и выбрать из выпадающего списка «Ссылки и массивы».
  3. Откроется окно с аргументами функции. В поле «Искомое значение» – диапазон данных первого столбца из таблицы с количеством поступивших материалов. Это те значения, которые Excel должен найти во второй таблице.
  4. Следующий аргумент – «Таблица». Это наш прайс-лист. Ставим курсор в поле аргумента. Переходим на лист с ценами. Выделяем диапазон с наименованием материалов и ценами. Показываем, какие значения функция должна сопоставить.
  5. Чтобы Excel ссылался непосредственно на эти данные, ссылку нужно зафиксировать. Выделяем значение поля «Таблица» и нажимаем F4. Появляется значок $.
  6. В поле аргумента «Номер столбца» ставим цифру «2». Здесь находятся данные, которые нужно «подтянуть» в первую таблицу. «Интервальный просмотр» – ЛОЖЬ. Т.к. нам нужны точные, а не приблизительные значения.

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

Теперь найти стоимость материалов не составит труда: количество * цену.

Функция ВПР связала две таблицы. Если поменяется прайс, то и изменится стоимость поступивших на склад материалов (сегодня поступивших). Чтобы этого избежать, воспользуйтесь «Специальной вставкой».

  1. Выделяем столбец со вставленными ценами.
  2. Правая кнопка мыши – «Копировать».
  3. Не снимая выделения, правая кнопка мыши – «Специальная вставка».
  4. Поставить галочку напротив «Значения». ОК.

Формула в ячейках исчезнет. Останутся только значения.

Быстрое сравнение двух таблиц с помощью ВПР

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

  1. В старом прайсе делаем столбец «Новая цена».
  2. Выделяем первую ячейку и выбираем функцию ВПР. Задаем аргументы (см. выше). Для нашего примера: . Это значит, что нужно взять наименование материала из диапазона А2:А15, посмотреть его в «Новом прайсе» в столбце А. Затем взять данные из второго столбца нового прайса (новую цену) и подставить их в ячейку С2.

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

Как работает функция ВПР в Excel: несколько примеров для «чайников».

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

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

Использование точного и приблизительного поиска.

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

Обратите внимание, что четвертый параметр равен 1.

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

Поиск цены на египетские бананы закончился на первой же позиции, так как во второй записаны сливы. А это слово по правилам алфавита стоит ниже, чем «Бананы Египет». Значит, дальше искать не нужно. Получили 145. И не важно, что это цена абрикосов. Поиск цены на сливы происходил до тех пор, пока в D15 не встретилось слово, которое по алфавиту стоит ниже: яблоки. Остановились и взяли цену из предыдущей строки.

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

Вы спросите: «А зачем тогда этот неточный просмотр, если с ним столько проблем?»

Он отлично подходит для выбора значений из определенных интервалов.

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

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

Использование нескольких условий.

Еще один простой пример для «чайников» – как использовать при выборе нужного значения несколько условий?

Предположим, у нас есть список имен и фамилий. Нам нужно найти нужного человека и вывести сумму его дохода.

В F2 используем следующую формулу:

=ВПР(D2&” “&E2;$A$2:$B$21;2;0)

Разберем пошагово, как в этом случае работает ВПР.

В начале мы формируем условие. Для этого при помощи оператора & «склеиваем» вместе имя и фамилию, а между ними вставляем пробел.

Не забываем при этом пробел заключить в кавычки, иначе Excel не воспримет его как текст.

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

Дальше все происходит по уже отработанной схеме.

Можно попробовать подстраховаться на тот случай, если между именем и фамилией введено несколько пробелов. Знак пробела в формуле заменяем на знак подстановки «*».

Приметно так – D2&”*”&E2

Заключение

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

Источники

  • https://pavel-istomin.ru/funkciya-vpr-v-eksele/
  • https://statanaliz.info/excel/funktsii-i-formuly/funktsiya-excel-vpr-vlookup-i-gpr-hlookup/
  • https://naprimerax.org/funktciia-vpr-v-excel
  • https://www.planetaexcel.ru/techniques/2/106/
  • https://excelhack.ru/funkciya-vlookup-vpr-v-excel/
  • https://exceltable.com/funkcii-excel/funkciya-vpr-v-excel
  • https://mister-office.ru/funktsii-excel/vlookup-excel-5-example.html
  • https://MicroExcel.ru/funkcziya-vpr/

Jojojojo

0 / 0 / 0

Регистрация: 17.03.2015

Сообщений: 68

1

03.12.2016, 21:32. Показов 19415. Ответов 6

Метки нет (Все метки)


Студворк — интернет-сервис помощи студентам

Доброго всем вечера.
Возникла такая ситуация, необходимо в большой таблице (12 тысяч записей), найти совпадения строк со 2 таблицей(100-1000 записей), и пометить одинаковые строчки каким либо цветом в большом документе.
Просто такую манипуляцию надо провести примерно 60 раз, и вручную это было бы нереально.
Таблицы выглядят следующим образом:

C++
1
|Фамилия|Имя|Отчество|ДатаРождения

Очень давно был опыт работы с макросами, но размышляя над этой задачей даже не знаю как это правильно сделать.
В голову приходит идея что нужно самому сначала перекинуть таблицу со 2 документа на время выполнения макроса на 2 страницу книги с основным документом для работы в 1 книге, сделать сортировку даты по возрастанию в обеих таблицах, а уже после силами макроса проходить по датам какой-то из таблиц, и при совпадении дат уже сравнивать Фамилию|Имя|Отчество и при совпадении выделять.
Очень жду советов и помощи в этой ситуации.



0



15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

03.12.2016, 21:50

2

Jojojojo, во второй таблице в свободном столбце (F, судя по описанию) формулу

В свободном столбце большой таблицы формулу

Код

=ЕЧИСЛО(ПОИСКПОЗ(B1&C1&D1&E1;[ИмяВторогоФайла.xls]ИмяЛиста!F:F;0))

Отфильтровать по ИСТИНА, покрасить видимые.



1



0 / 0 / 0

Регистрация: 17.03.2015

Сообщений: 68

03.12.2016, 22:57

 [ТС]

3

Казанский, Большое спасибо, но в процессе тестов выявилась проблема опечатков в некоторых ячейках. 1 список вручную отрабатывал в течении 2-3 часов, было 130 совпадений, а при данном методе прошло только 119, 11 из-за ошибок в написании.
Например в одном месте было не «Евгеньевна», а «Евгеьевна». И соответственно такая запись не уходит в ЛОЖЬ.
Можно ли как то модернизировать формулу чтоб она действовала следующим образом:
Дата всегда обязательно равна, а потом уже совпадают ли какая либо из связок: фамилия+имя, имя+отчество, фамилия+отчество.



0



15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

04.12.2016, 17:02

4

Jojojojo, файл-пример приложите (или 2 файла в архиве).
Формула массива (вводится Ctrl+Shift+Enter, отображается в фигурных скобках) для большого файла

Код

=ИЛИ(ЕСЛИ(E2=Лист2!$E$2:$E$3;(B2=Лист2!$B$2:$B$3)*(C2=Лист2!$C$2:$C$3)+(C2=Лист2!$C$2:$C$3)*(D2=Лист2!$D$2:$D$3)+(B2=Лист2!$B$2:$B$3)*(D2=Лист2!$D$2:$D$3)))

Здесь Лист2 — лист, в котором ищутся совпадения. Вместо «3» везде должен быть номер последней строки (мне хватило фантазии на 2 строки данных).



1



0 / 0 / 0

Регистрация: 17.03.2015

Сообщений: 68

04.12.2016, 20:01

 [ТС]

5

Казанский, Выслал архив в личку



0



Jojojojo

0 / 0 / 0

Регистрация: 17.03.2015

Сообщений: 68

08.12.2016, 10:32

 [ТС]

6

Так и не дождавшись ответа работа дошла до момента, когда нужно в одном документе сравнивать значения на Лист1 А1 с массивом значений Лист2 столбец А, и если есть совпадения то на листе 1 в столбце I ставить заранее вводимое число.
Пробовал так же как предлагалось ранее сделать вот в таком виде:

C++
1
=ЕЧИСЛО(ПОИСКПОЗ(A1;Лист2!A:A;0))

но он даже не пытается рассматривать это как формулу



0



6875 / 2807 / 533

Регистрация: 19.10.2012

Сообщений: 8,562

08.12.2016, 10:54

7

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



1



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

08.12.2016, 10:54

Помогаю со студенческими работами здесь

Объединение строк в разных таблицах по условию
Есть 2 таблицы Sql:
1. CheckList (ID, ID_Item, ID_Rate, Amt, Price_In, Summ_Line, ID_Check)
2….

Объединение строк в разных таблицах по условию
Есть 2 таблицы Sql:
1. CheckList (ID, ID_Item, ID_Rate, Amt, Price_In, Summ_Line, ID_Check)
2….

SQL- запрос. Поиск одинаковых значений полей в таблицах
Добрый день!

Есть 3 таблицы: 1.проданные товары, 2.продавец, 3.покупатель:
Продавцы….

Поиск совпадений в разных таблицах sql
Привет, друзья!

Подскажите, пожалуйста, решение.

Есть 2 таблицы А и В. Количество полей…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

7

Самый быстрый ВПР

Если в ваших таблицах всего лишь несколько десятков строк, то, скорее всего, эта статья не будет для вас актуальной. На таких небольших объемах данных любой способ будет работать достаточно шустро, чтобы вы этого не замечали. Если же число строк в ваших списках измеряется тысячами, да и самих таблиц не одна-две, то время мучительного ожидания на пересчете формул в 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, который тоже может решить нашу задачу. Кто-то скажет, что некорректно сравнивать пересчёт формул с механизмом обновления запроса, но мне, откровенно говоря, просто самому было интересно — кто быстрее?

  1. Превращаем обе наши таблицы в «умные» с помощью команды Форматировать как таблицу на вкладке Главная (Home — Format as Table) или с помощью сочетания клавиш Ctrl + T .
  2. По очереди загружаем таблицы в Power Query с помощью команды Данные — Из таблицы / диапазона (Data — From Table/Range) .
  3. После загрузки в Power Query возвращаемся обратно в Excel, оставляя загруженные данные как подключение. Для этого в окне Power Query выбираем Главная — Закрыть и загрузить — Закрыть и загрузить в. — Только создать подключение (Home — Close&Load — Close&Load to. — Only create connection) .
  4. После того, как обе исходные таблицы будут загружены как подключения, создадим ещё один, третий запрос, который будет объединять их между собой, подставляя цены из прайса в отгрузки. Для этого на вкладке Данные выберем Получить данные / Создать запрос — Объединить запросы — Объединить (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)

Для товара не должно быть повторов дат, иначе цены будут суммироваться (если повторяется последняя дата).

Понравилась статья? Поделить с друзьями:

А вот еще интересные статьи:

  • Excel как найти ссылку на другую книгу
  • Excel как найти ссылки на другие файлы
  • Excel как найти ссылки на внешние файлы связи
  • Excel как найти среднее значение функции
  • Excel как найти среднее время

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии