Страницы: 1
RSS
Расчет доли покупки по каждому магазину, упростить функцию Индекс (поискпоз) для увеличения быстродействия
 
Просьба помочь. Имеется несколько довольно больших таблиц на разных листах в одном excell файле:  
В первой таблице построчно вручную диспетчером вносится общая сумма покупки за каждый день (суммарная покупка во всех магазинах) (горизонтально это дни месяца, вертикально большое количество артикулов).
В другой таблице, исходя из ранее загруженных в нее плановых показателей, рассчитывается доля покупки по каждому магазину (та общая сумма которую вносит диспетчер состоит из покупок в нескольких магазинах)  (магазинов ограниченное количество - 7 ).
Далее происходит автоматическое перемножение внесенной диспетчером общей суммы покупки на долю покупки в каждом магазине и все это за каждый день месяца по каждому артикулу, по следующей формуле:
Код
=ЕСЛИОШИБКА(СУММЕСЛИ($C$1:$AG$1;AM$8;$C24:$AG24)*(ИНДЕКС(ПЛАН!$AL$15:$AS$428;ПОИСКПОЗ('
   Учет газа'!$A24;ПЛАН!$A$15:$A$428;0);ПОИСКПОЗ('Учет газа'!AM$6;ПЛАН!$AL$13:$AS$13;0)));"")

Проблема в том, что эта формула очень сильно затормаживает обычный поиск по excell файлу. Можно ли ее упростить/заменить на что-то более скоростное?  
(любые сортировки по файлу не применимы)
 
roller06, ДД, файл-пример в формате ексель покажите с исходными данными и желаемым результатом и объясните что нужно посчитать  и как это определяется на словах.
у меня в рабочем файле 1600 строк и  350 столбцов и использую примерно такие же формулы но не тормозит...
Изменено: Mershik - 24.05.2020 10:20:22
Не бойтесь совершенства. Вам его не достичь.
 
roller06, скорее всего, вам нужно ОДИН раз получить ПОИСКПОЗ (для каждой строки) и все столбцы тянуть ИНДЕКСом по полученной позиции, но, как вам уже сказал Mershik, тут нужен файл-пример
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
пример прилагаю. Исходные данные: Доля каждого магазина в общей сумме покупок (таблица 1) и вводимая вручную общая сумма покупки за сутки (таблица 2).  Необходимым результатом будет дробление общей суммы (введенной руками - таблица 2 примера) на суммы покупок в разных магазинах исходя из их доли, определенной в таблице 1 (Таблица 3 - с формулами - красная заливка).
 
Если все так как показано, за исключением ненужной процедуры пересчета активной ячейки при selection_change, все должно работать нормально, но как правильно замечено , смыл искать каждый раз маказин , если можно вывести отдельной строкой индекс и его использовать. тоже по артикулам.
да даже и без этого, если не использованы для оиска диапазоны всего столбца или строки, то тормозить не должно. Тем более при поиске.
По вопросам из тем форума, личку не читаю.
 
roller06, отсортируйте первую таблицу и формулы станут намного проще и быстрее
В том виде, как вы храните данные, быстрый подсчёт при отсутствии сортировки я не представляю - я бы все таблицы переделал в "плоские умные", тогда (при правильной логике связей) можно считать довольно большие объёмы и при отсутствии сортировки
Изменено: Jack Famous - 24.05.2020 11:49:29
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх