Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Выборка или фильтрация строк 350 пользователей из общей базы - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Выборка или фильтрация строк 350 пользователей из общей базы
Zver001 Дата: Суббота, 28.11.2015, 17:47 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте господа! Проблема: есть 350 e-mail адресов покупателей, которым нужно вручить призы (см. список на первом листе). Нужно найти в общей базе данных всех покупателей (кусочек, как пример, на листе 2) , все строки относящиеся к этим пользователям, т.е. найти все строки содержащие любой один из 350 e-mail адресов
Насколько я понимаю тут применимы и варианты с фильтрами, и с формулами. Но сам так и не смог написать. Помогите пожалуйста и объясните по возможности как работает чуть подробнее, чтобы дальше смог сам.

Заранее спасибо
К сообщению приложен файл: ___.xlsx (20.0 Kb)


Сообщение отредактировал Zver001 - Суббота, 28.11.2015, 17:50
 
Ответить
СообщениеЗдравствуйте господа! Проблема: есть 350 e-mail адресов покупателей, которым нужно вручить призы (см. список на первом листе). Нужно найти в общей базе данных всех покупателей (кусочек, как пример, на листе 2) , все строки относящиеся к этим пользователям, т.е. найти все строки содержащие любой один из 350 e-mail адресов
Насколько я понимаю тут применимы и варианты с фильтрами, и с формулами. Но сам так и не смог написать. Помогите пожалуйста и объясните по возможности как работает чуть подробнее, чтобы дальше смог сам.

Заранее спасибо

Автор - Zver001
Дата добавления - 28.11.2015 в 17:47
gling Дата: Суббота, 28.11.2015, 18:41 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2643
Репутация: 739 ±
Замечаний: 0% ±

2010
Вариант формула и фильтр.
К сообщению приложен файл: 0316759.xlsx (21.5 Kb)


ЯД-41001506838083
 
Ответить
СообщениеВариант формула и фильтр.

Автор - gling
Дата добавления - 28.11.2015 в 18:41
_Boroda_ Дата: Суббота, 28.11.2015, 18:59 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16912
Репутация: 6616 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Тоже формула и фильтр
Код
=--ЕЧИСЛО(ПОИСКПОЗ(A4;'Кого ищем'!A3:ИНДЕКС('Кого ищем'!A:A;СЧЁТЗ('Кого ищем'!A:A)+2-СЧЁТЗ('Кого ищем'!A$1:A$2));))

Формула хоть и длиннее, но должна быть легче СЧЁТЕСЛИ, что на 150000 записей может отразиться на времени расчета.
К сообщению приложен файл: 0316759_1.xlsx (21.5 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТоже формула и фильтр
Код
=--ЕЧИСЛО(ПОИСКПОЗ(A4;'Кого ищем'!A3:ИНДЕКС('Кого ищем'!A:A;СЧЁТЗ('Кого ищем'!A:A)+2-СЧЁТЗ('Кого ищем'!A$1:A$2));))

Формула хоть и длиннее, но должна быть легче СЧЁТЕСЛИ, что на 150000 записей может отразиться на времени расчета.

Автор - _Boroda_
Дата добавления - 28.11.2015 в 18:59
TimSha Дата: Суббота, 28.11.2015, 19:14 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 94 ±
Замечаний: 0% ±

Excel 2013 Pro +
Расширенный фильтр - находит 3 из 325 запрашиваемых, однако... ;)


"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Ответить
СообщениеРасширенный фильтр - находит 3 из 325 запрашиваемых, однако... ;)

Автор - TimSha
Дата добавления - 28.11.2015 в 19:14
Zver001 Дата: Суббота, 28.11.2015, 19:37 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
TimSha, да, я не стал всю базу загружать по понятным причинам. А как вы настроили расширенный фильтр, чтобы он фильтровал "любое из значений" из списка "кого ищем"?

_Boroda_, спасибо большое, но я так и не понял как работает((. Вы же не сделали из списка "кого ищем" именованный диапазон? Или он тут не нужен? Пожалуйста можно краткий разбор формулы по функциям операторов. И зачем два минуса перед формулой?
И почему то по всей базе формула не взлетела (нашел всего 18 строк, причем разных пользователей, хотя должен был найти не меньше 1500, в том числе повторные) ((


Сообщение отредактировал Zver001 - Суббота, 28.11.2015, 19:52
 
Ответить
СообщениеTimSha, да, я не стал всю базу загружать по понятным причинам. А как вы настроили расширенный фильтр, чтобы он фильтровал "любое из значений" из списка "кого ищем"?

_Boroda_, спасибо большое, но я так и не понял как работает((. Вы же не сделали из списка "кого ищем" именованный диапазон? Или он тут не нужен? Пожалуйста можно краткий разбор формулы по функциям операторов. И зачем два минуса перед формулой?
И почему то по всей базе формула не взлетела (нашел всего 18 строк, причем разных пользователей, хотя должен был найти не меньше 1500, в том числе повторные) ((

Автор - Zver001
Дата добавления - 28.11.2015 в 19:37
_Boroda_ Дата: Суббота, 28.11.2015, 20:01 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16912
Репутация: 6616 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Да там все просто. Смотрите: формула
Код
=--ЕЧИСЛО(ПОИСКПОЗ(A4;'Кого ищем'!A3:ИНДЕКС('Кого ищем'!A:A;СЧЁТЗ('Кого ищем'!A:A)+2-СЧЁТЗ('Кого ищем'!A$1:A$2));))


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. Нули скрыты галкой Файл - Параметры - Дополнительно - Для листа - Показывать нули.
Можно скрыть условным форматированием или форматом ячейки. Для экономии памяти можно нули оставить.
К сообщению приложен файл: 0316759_2.xlsx (21.6 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеДа там все просто. Смотрите: формула
Код
=--ЕЧИСЛО(ПОИСКПОЗ(A4;'Кого ищем'!A3:ИНДЕКС('Кого ищем'!A:A;СЧЁТЗ('Кого ищем'!A:A)+2-СЧЁТЗ('Кого ищем'!A$1:A$2));))


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_
Дата добавления - 28.11.2015 в 20:01
Zver001 Дата: Суббота, 28.11.2015, 20:01 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
gling, Спасибо, ваш способ прост и работает!! И главное понятно.
 
Ответить
Сообщениеgling, Спасибо, ваш способ прост и работает!! И главное понятно.

Автор - Zver001
Дата добавления - 28.11.2015 в 20:01
Zver001 Дата: Суббота, 28.11.2015, 20:07 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, спасибо большое за разъяснение, все не так просто (как для вас))), буду "курить" справочник функций по ИНДЕКСу)) должно еще пригодиться
 
Ответить
Сообщение_Boroda_, спасибо большое за разъяснение, все не так просто (как для вас))), буду "курить" справочник функций по ИНДЕКСу)) должно еще пригодиться

Автор - Zver001
Дата добавления - 28.11.2015 в 20:07
TimSha Дата: Воскресенье, 29.11.2015, 10:24 | Сообщение № 9
Группа: Проверенные
Ранг: Ветеран
Сообщений: 627
Репутация: 94 ±
Замечаний: 0% ±

Excel 2013 Pro +
... А как...

См. файл и... справку по РФ... ;)
К сообщению приложен файл: PT_ZXC_.xlsx (63.3 Kb)


"Ctrl+S" - достойное завершение ваших гениальных мыслей!.. ;)
 
Ответить
Сообщение
... А как...

См. файл и... справку по РФ... ;)

Автор - TimSha
Дата добавления - 29.11.2015 в 10:24
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!