У меня есть сложная функция массива, для вычисления которой требуется слишком много времени, поэтому я ищу способы сделать ее более эффективной. По сути, у меня есть лист транзакций, в котором я перечисляю все товары, продаваемые в разных магазинах. Формула, которую я написал, выбирает сумму последний в списке, где конкретный товар был продан в конкретном магазине . Индексное совпадение здесь не работает, так как у меня есть 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, который копирует всю таблицу, за исключением последних нескольких строк, и вставляет все как значения обратно в таблицу, чтобы избежать слишком большого количества формул массива в таблице, но я все еще могу наблюдать расширенные сокращения Властелина кольца, покаэто вычисления.
Я ценю любые идеи, я уверен, что есть способы сделать это немного быстрее;)