Как улучшить скорость работы с массивами в Excel? - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть сложная функция массива, для вычисления которой требуется слишком много времени, поэтому я ищу способы сделать ее более эффективной. По сути, у меня есть лист транзакций, в котором я перечисляю все товары, продаваемые в разных магазинах. Формула, которую я написал, выбирает сумму последний в списке, где конкретный товар был продан в конкретном магазине . Индексное совпадение здесь не работает, так как у меня есть 2 разных аргумента строки. Формула выглядит следующим образом:

{=INDEX($O$20:O57,MAX(IF($K$20:K57=K58,IF($D$20:D57=D58,ROW($O$20:O57)-MIN(ROW($O$20:O57))+1))),1)}

Для лучшего объяснения: в столбце O указан объем запасов после каждой транзакции в списке (из которых мне нужна последняя запись в списке). В столбце K указан код позиции. для конкретного товара В столбце D указано название филиала, в котором был продан товар

. С увеличением количества транзакций лист значительно увеличивается и становится уже с ~ 1000 строками трудоемким кошмаром. Я написал код vba, который копирует всю таблицу, за исключением последних нескольких строк, и вставляет все как значения обратно в таблицу, чтобы избежать слишком большого количества формул массива в таблице, но я все еще могу наблюдать расширенные сокращения Властелина кольца, покаэто вычисления.

Я ценю любые идеи, я уверен, что есть способы сделать это немного быстрее;)

...