Страницы: 1
RSS
Найти в ячейке любое слово из списка, Помогите укоротить формулу
 
Добрый день. Пишу на сайт впервые. Обычно все ответы находяться лехко на вашем сайте,
но имею простую задачу из десятков перепробованых решений ничего не подошло.
Нужно что то подобное-

=СУММПРОИЗВ(ПОИСК($A6:$P6;Q$2))

А правильный результат получаеться только из этого " ЧУДА" :oops:

=((СУММ(ЕСЛИОШИБКА((ЕСЛИ((ПОИСК($A6;R$2))>0;1;0));0);ЕСЛИОШИБКА((ЕСЛИ((ПОИСК($B6;R$2))>0;1;0));0);ЕСЛИОШИБКА((ЕСЛИ((ПОИСК($C6;R$2))>0;1;0));0);ЕСЛИОШИБКА((ЕСЛИ((ПОИСК($D6;R$2))>0;1;0));0);ЕСЛИОШИБКА((ЕСЛИ((ПОИСК($E6;R$2))>0;1;0));0);ЕСЛИОШИБКА((ЕСЛИ((ПОИСК($F6;R$2))>0;1;0));0);ЕСЛИОШИБКА((ЕСЛИ((ПОИСК($G6;R$2))>0;1;0));0);ЕСЛИОШИБКА((ЕСЛИ((ПОИСК($H6;R$2))>0;1;0));0);ЕСЛИОШИБКА((ЕСЛИ((ПОИСК($I6;R$2))>0;1;0));0);ЕСЛИОШИБКА((ЕСЛИ((ПОИСК($J6;R$2))>0;1;0));0);ЕСЛИОШИБКА((ЕСЛИ((ПОИСК($K6;R$2))>0;1;0));0);ЕСЛИОШИБКА((ЕСЛИ((ПОИСК($L6;R$2))>0;1;0));0);ЕСЛИОШИБКА((ЕСЛИ((ПОИСК($M6;R$2))>0;1;0));0);ЕСЛИОШИБКА((ЕСЛИ((ПОИСК($N6;R$2))>0;1;0));0);ЕСЛИОШИБКА((ЕСЛИ((ПОИСК($O6;R$2))>0;1;0));0);ЕСЛИОШИБКА((ЕСЛИ((ПОИСК($P6;R$2))>0;1;0));0))))

В  результате файл потяжелел с 5 MB до 480 MB.
Помогите укоротить  формулу.
Таблица имеет 62000 строк и 3000 столбцов. Формула счетесли, просмотр и формулы масива, решают проблему, но, грузят шесть ядер на 12 часов.
 
Вчера было СУММ(СЧЕТЕСЛИ(...))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
формула массива
Код
=СУММ(ЕСЛИ(ЕСЛИОШИБКА(ПОИСК($A$6:$P$6;$R$2);)<>0;1))
Изменено: MOTO - 24.07.2018 15:46:34
 
Спасибо.  Буду пробовать, но формулы масива в 62000* 3000 ячеек очень долго просчитывает.  с полной нагрузкой на ядра.  
 
Возможно ли предоставить решение на VBA ?)
C2-C4
 
да. чуть понимаю VBA
 
Прикрепил файл с макросом который сделал для подобной задачи, но работает ещо дольше, за два часа 15%
 
vior, гляньте
Вариант макрофункции
Изменено: Jack Famous - 24.07.2018 18:05:49
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, Hi Jack. ну вот на указанный объем 62000* 3000  я б с формулами не горячился, несмотря на свою к ним привязанность.
По вопросам из тем форума, личку не читаю.
 
БМВ, приветствую!
Цитата
БМВ написал:
на указанный объем
согласен - тут макрос пошустрее будет, чем функция. Ну ТС просил укоротить - вот я укоротил  :D тем более, что теперь из UDF сделать макрос совсем не сложно — пусть уточняет и спрашивает  ;)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Спасибо за подсказки но из-за большого файла сложно быстро оцените результат
 
Цитата
vior написал:
из-за большого файла сложно быстро оцените результат
да у вас и примеры ни о чём - сделайте то, не знаю что  :)
Ну есть у вас данные и список — ЧТО ДОЛЖЕН СДЕЛАТЬ МАКРОС ПРИ НАХОЖДЕНИИ СОВПАДЕНИЯ???
Вывести в конце текстовую строку с перечислением, выделить ячейку, проставить цифру, сформировать список на отдельном листе?

Сиди тут и гадай за него - вот чудак-человек  :D формулу вам укоротили, как в названии темы написано
Хотите решить проблему, а не формулы укорачивать - так и создайте соответствующую тему  ;)
Изменено: Jack Famous - 24.07.2018 18:36:22
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Извините что может не так сформулировал.  Я реально столкнулся с проблемой которая лехко решаеться на небольшом файле, но 18  000 000 формул.  которые нужно проверить ежедневно,. не простая задача... Возможно это надо решать PAWER BI или может другими прогр. Простите за мою некомпетентность,  
 
vior, Вы упускаете основной вопрос, это целостность задачи.
Цитата
Jack Famous написал:
да у вас и примеры ни о чём - сделайте то, не знаю что   Ну есть у вас данные и список — ЧТО ДОЛЖЕН СДЕЛАТЬ МАКРОС ПРИ НАХОЖДЕНИИ СОВПАДЕНИЯ???Вывести в конце текстовую строку с перечислением, выделить ячейку, проставить цифру, сформировать список на отдельном листе?
Не надо 60Кx3К таблицу, достаточно 6x3 что, от куда и куда.
По вопросам из тем форума, личку не читаю.
 
Я  в двух словах задачу. Есть компания с 62000 абонентов на которых есть ФИО, возраст, пол, .......всего 17 столбцов.
и есть ещо  компания у которой 3000 абонентов с даными без ФИО. от 10 до 12 слов
Задача найти максимальное совпадение данных для определения пересечения клиентов.
К сожалению сегодня не могу часть реального файла выслать.
Изменено: vior - 24.07.2018 21:11:26
 
По-моему что-то интересное, или опять решится обычной формулой? Ждём пример, далее подключусь по мере необходимости.
«Бритва Оккама» или «Принцип Калашникова»?
 
Начинает проявляться задача. Эти 10-12 слов должны быть все или частично? Есть ли вес у этих слов, ведь если будет найдено 8 из 12 это может быть и корректным, а значит надо учитывать процент совпадения. 17 и 12 столбиков, структурированы?  Есть ли смысл искать в столбце с названием города возраст?

Немного математики у вас 60000 строк и 3000 , это 3000 формул, а не 18 лимонов. Короче файла с реальной структурой данных и частью данных, не обойтись.
По вопросам из тем форума, личку не читаю.
 
Вы правы. Данные не имеют структуры. имеют разный вес (ранг) . но основная моя проблема что я не зная как решить это 3000 тыс. формул. вернее знаю но после проб 10-ти вариантов найденых на вашем форуме.  ни один не дал результатов. Ближе всех для решения тремя тысячями формул была такого типа
=ПРОСМОТР(2^15;ПОИСК($AA$2:$AA$162000;L5);$X$2:$X$165188) но просчет идет дольше 18 000 000
завтра загружу файл примера
Изменено: vior - 24.07.2018 21:44:38
 
Цитата
vior написал:
3000 тыс.
ПРОСТО 3000 или 3 тыс.  
По вопросам из тем форума, личку не читаю.
 
да опечатка, простите.
 
Настаиваю на предложении нового названия для темы, отражающего проблему, а не способ решения. Модераторы заругают и будут правы (заметил, что про сокращение формулы написано не в главном имени темы, так что продолжаем).
А пока мы ждём нормальный пример от вас, вот…
…улучшенная UDF
Изменено: Jack Famous - 25.07.2018 13:34:48
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 

Уважаемые знатоки. Хотел бы перевести тему на платную ветку Не совсем знаю как это сделать.

Мой адрес : [должен быть в профиле - читайте Правила]

Изменено: vior - 26.07.2018 00:45:52
 
Перенёс. Ознакомьтесь всё же с Правилами.
 
Написал в личку
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх