Здравствуйте господа! Проблема: есть 350 e-mail адресов покупателей, которым нужно вручить призы (см. список на первом листе). Нужно найти в общей базе данных всех покупателей (кусочек, как пример, на листе 2) , все строки относящиеся к этим пользователям, т.е. найти все строки содержащие любой один из 350 e-mail адресов Насколько я понимаю тут применимы и варианты с фильтрами, и с формулами. Но сам так и не смог написать. Помогите пожалуйста и объясните по возможности как работает чуть подробнее, чтобы дальше смог сам.
Заранее спасибо
Здравствуйте господа! Проблема: есть 350 e-mail адресов покупателей, которым нужно вручить призы (см. список на первом листе). Нужно найти в общей базе данных всех покупателей (кусочек, как пример, на листе 2) , все строки относящиеся к этим пользователям, т.е. найти все строки содержащие любой один из 350 e-mail адресов Насколько я понимаю тут применимы и варианты с фильтрами, и с формулами. Но сам так и не смог написать. Помогите пожалуйста и объясните по возможности как работает чуть подробнее, чтобы дальше смог сам.
TimSha, да, я не стал всю базу загружать по понятным причинам. А как вы настроили расширенный фильтр, чтобы он фильтровал "любое из значений" из списка "кого ищем"?
_Boroda_, спасибо большое, но я так и не понял как работает((. Вы же не сделали из списка "кого ищем" именованный диапазон? Или он тут не нужен? Пожалуйста можно краткий разбор формулы по функциям операторов. И зачем два минуса перед формулой? И почему то по всей базе формула не взлетела (нашел всего 18 строк, причем разных пользователей, хотя должен был найти не меньше 1500, в том числе повторные) ((
TimSha, да, я не стал всю базу загружать по понятным причинам. А как вы настроили расширенный фильтр, чтобы он фильтровал "любое из значений" из списка "кого ищем"?
_Boroda_, спасибо большое, но я так и не понял как работает((. Вы же не сделали из списка "кого ищем" именованный диапазон? Или он тут не нужен? Пожалуйста можно краткий разбор формулы по функциям операторов. И зачем два минуса перед формулой? И почему то по всей базе формула не взлетела (нашел всего 18 строк, причем разных пользователей, хотя должен был найти не меньше 1500, в том числе повторные) ((Zver001
Сообщение отредактировал Zver001 - Суббота, 28.11.2015, 19:52
1. кусок ИНДЕКС('Кого ищем'!A:A;СЧЁТЗ('Кого ищем'!A:A)+2-СЧЁТЗ('Кого ищем'!A$1:A$2)) функция ИНДЕКС (согласно справке, правда, там немного запутали, но на самом деле при любой форме ИНДЕКС дает ссылку) дает нам не значение ячейки, а ссылку на ячейку. Этим и воспользуемся - в столбце А с помощью СЧЁТЗ ищем кол-во значений, получаем 325 штук, прибавляем 2 (кол-во строк выше первого значения), получаем 327 - это номер последней заполненной строки столбца А. А затем рассмотрим ситуацию, когда Вы вдруг решите, что в ячейки А1:А2 нужно еще что-то написать (например, как у меня в файле - в ячейке А2 написано "Шапка"). Тогда СЧЁТЗ(А:А) даст нам уже не 325, а 325 + кол-во заполненных ячеек в диапазоне А1:А2, прибавляем к полученному 2, получаем 328 или 329. Перебор. Следовательно, для того, чтобы получить нужное нам значение 327, нам нужно вычесть СЧЁТЗ('Кого ищем'!A$1:A$2) из СЧЁТЗ('Кого ищем'!A:A)+2. В итоге мы получаем ссылку на ячейку А327. Если кол-во значений в столбце А изменится, то ИНДЕКС все равно даст нам ссылку на последнее значение (ВАЖНО - пропусков быть не должно). 2. 'Кого ищем'!A3:п.1 - даст нам диапазон А3:А327 3. ПОИСКПОЗ(A4;п.2;) можно переписать как ПОИСКПОЗ(A4;п.2;0) - даст нам или номер вхождения А4 в диапазон из п.2, или ошибку 4. ЕЧИСЛО(п.3) даст ИСТИНА (если число) или ЛОЖЬ (если ошибка) 5. --п.4 преобразует ИСТИНА в 1, ЛОЖЬ в 0 6. Нули скрыты галкой Файл - Параметры - Дополнительно - Для листа - Показывать нули. Можно скрыть условным форматированием или форматом ячейки. Для экономии памяти можно нули оставить.
1. кусок ИНДЕКС('Кого ищем'!A:A;СЧЁТЗ('Кого ищем'!A:A)+2-СЧЁТЗ('Кого ищем'!A$1:A$2)) функция ИНДЕКС (согласно справке, правда, там немного запутали, но на самом деле при любой форме ИНДЕКС дает ссылку) дает нам не значение ячейки, а ссылку на ячейку. Этим и воспользуемся - в столбце А с помощью СЧЁТЗ ищем кол-во значений, получаем 325 штук, прибавляем 2 (кол-во строк выше первого значения), получаем 327 - это номер последней заполненной строки столбца А. А затем рассмотрим ситуацию, когда Вы вдруг решите, что в ячейки А1:А2 нужно еще что-то написать (например, как у меня в файле - в ячейке А2 написано "Шапка"). Тогда СЧЁТЗ(А:А) даст нам уже не 325, а 325 + кол-во заполненных ячеек в диапазоне А1:А2, прибавляем к полученному 2, получаем 328 или 329. Перебор. Следовательно, для того, чтобы получить нужное нам значение 327, нам нужно вычесть СЧЁТЗ('Кого ищем'!A$1:A$2) из СЧЁТЗ('Кого ищем'!A:A)+2. В итоге мы получаем ссылку на ячейку А327. Если кол-во значений в столбце А изменится, то ИНДЕКС все равно даст нам ссылку на последнее значение (ВАЖНО - пропусков быть не должно). 2. 'Кого ищем'!A3:п.1 - даст нам диапазон А3:А327 3. ПОИСКПОЗ(A4;п.2;) можно переписать как ПОИСКПОЗ(A4;п.2;0) - даст нам или номер вхождения А4 в диапазон из п.2, или ошибку 4. ЕЧИСЛО(п.3) даст ИСТИНА (если число) или ЛОЖЬ (если ошибка) 5. --п.4 преобразует ИСТИНА в 1, ЛОЖЬ в 0 6. Нули скрыты галкой Файл - Параметры - Дополнительно - Для листа - Показывать нули. Можно скрыть условным форматированием или форматом ячейки. Для экономии памяти можно нули оставить._Boroda_
_Boroda_, спасибо большое за разъяснение, все не так просто (как для вас))), буду "курить" справочник функций по ИНДЕКСу)) должно еще пригодиться
_Boroda_, спасибо большое за разъяснение, все не так просто (как для вас))), буду "курить" справочник функций по ИНДЕКСу)) должно еще пригодитьсяZver001