![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 16.04.2010
Сообщений: 695
|
![]()
Приветы Всем!
Хорошего дня и классного настроения! Сразу перейду к сути вопроса: есть простая формула: Код:
Пытаюсь формулу которая выше переделать чтобы она была меньше (и возможно быстрее работала, т.к. таких формул может быть примерно 15000) Код:
Единственный способ стать умнее, играть с более умным противником...
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Хм... Для 96:
Код:
Код:
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 14.03.2013 в 13:07. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 16.04.2010
Сообщений: 695
|
![]()
спасибо за ответ! немного я не учел, эти формулы будут в самой таблице где производится поиск, и получается тогда циклические ссылки, нужно что-то другое придумывать (((
Единственный способ стать умнее, играть с более умным противником...
|
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 16.04.2010
Сообщений: 695
|
![]()
как Вы думаете, если UDF написать, может быстрее работать или нет (чем СУММПРОИЗВ)?
Единственный способ стать умнее, играть с более умным противником...
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Я думаю всё зависит от задачи.
Например в примере - 4 раза просматривается диапазон (12 или 3 поддиапазона каждый раз, но это не важно). Если будет 15000 - значит будет 15000 раз просматривать эти диапазоны. Можно написать "массивную" UDF которая сделает всё дело за один проход по данным диапазона, и выгрузит результат в 15000 ячеек. Но конечно если ей для работы нужно 30000 параметров - то это реализовать будет трудновато... Хотя опять же зависит от задачи - может это тоже будут всего лишь 2 массива...
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 16.04.2010
Сообщений: 695
|
![]()
ну вот набросал вот такую функцию:
Код:
Функции из оригинально файла, для примера нужно немного переделать
Единственный способ стать умнее, играть с более умным противником...
Последний раз редактировалось staniiislav; 14.03.2013 в 15:13. |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 16.04.2010
Сообщений: 695
|
![]()
такая удф не катит ((( безумно долго работает (проверил на 1/10)
Единственный способ стать умнее, играть с более умным противником...
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
Я предлагаю принципиально другое - ОДНА UDF получает на вход диапазон поиска и 2 диапазона параметров, и формирует массив результатов 2х2. Вводить как формулу массива сразу в весь диапазон G4:P5.
Реализовывать конкретно лениво... т.к. непродуктивно, а код будет непростой. Но возможны ситуации, когда такое писать оправданно. Я делал ![]() Механизм может быть такой - сперва циклом по анализируемому диапазону собираем все суммы в словаре, затем циклом по массиву результатов из словаря заполняем его. Критерий - № &"|"& Код.
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 14.03.2013 в 15:41. |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 16.04.2010
Сообщений: 695
|
![]()
пока не пойму как это можно сделать
![]() ![]()
Единственный способ стать умнее, играть с более умным противником...
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,170
|
![]()
На примере - взяли диапазон в массив, пошли циклом сверху вниз и с шагом вправо - собираем суммы по всем встреченным парам номер|код в словаре.
Затем создали массив для результата (можно исходя из массивов параметров) и перебирая параметры (цикл в цикле) его заполняем из словаря. В конце функция=массив - получаем результат на листе.
webmoney: E265281470651 Z422237915069 R418926282008
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
=СУММПРОИЗВ | Slavatron1984 | Microsoft Office Excel | 16 | 01.02.2012 16:57 |
=СУММПРОИЗВ не осилил ее возможности | Slavatron1984 | Microsoft Office Excel | 3 | 22.12.2011 15:17 |
Функция Суммпроизв | liienna | Microsoft Office Excel | 5 | 03.07.2011 09:50 |
формула суммпроизв. запись в ячейку | gsg | Microsoft Office Excel | 3 | 18.11.2010 09:16 |
Формула СУММПРОИЗВ() с данными из другой книги | kipish_lp | Microsoft Office Excel | 7 | 03.06.2010 10:14 |