Смещение от агрегатной функции - PullRequest
0 голосов
/ 10 ноября 2018

Мне нужно сместить 1 столбец влево от общей формулы. В настоящее время формула возвращает наименьшее K-е значение, если выполняется условие.

=AGGREGATE(15,6,$B$2:$C$1000/($A$2:$A$1000=$G$9),ROW(1:1))

По существу, если условие выполняется, оно делится на 1, в результате чего получается исходное значение, найденное Агрегатом. Я хочу получить значение из 1 столбца, хотя и не знаю, как это сделать.

Просто используя:

=OFFSET(AGGREGATE(15,6,$B$2:$C$1000/($A$2:$A$1000=$G$9),ROW(1:1)),0,-1)

Не работает.

1 Ответ

0 голосов
/ 10 ноября 2018

OFFSET работает в диапазоне, а не в функции. Вам нужно обернуть OFFSET вокруг параметров диапазона вашей агрегатной функции.

Из вашего вопроса не ясно, какие диапазоны вы хотите сместить на один столбец. Примером смещения параметра $G$9 на один столбец будет

=AGGREGATE(15,6,$B$2:$C$1000/($A$2:$A$1000=offset($G$9,0,-1)),ROW(1:1))

Обратите внимание, как Смещение применяется к диапазону, а не к функции.

Но если вы используете относительные ссылки на ячейки для G9, вы можете просто скопировать формулу в ячейку слева для достижения того же результата.

Например, если эта формула находится в ячейке Z1 ...

=AGGREGATE(15,6,$B$2:$C$1000/($A$2:$A$1000=G9),ROW(1:1))

(обратите внимание, что ссылка на G9 не имеет знаков $ и, следовательно, является относительной, поэтому она изменяется при копировании формулы в другую ячейку)

... тогда вы можете получить результат изменения со смещением, если скопируете формулу в ячейку Y1.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...