1

У меня есть формула ниже, которую я хотел бы перетащить по горизонтали, но при этом строка (1:1) меняется вертикально, например, становится строкой (2:2) и т. Д .:

=IF(ISERROR(INDEX($B$1:$C$800,SMALL(IF($C$1:$C$800=S$2,ROW($C$1:$C$800)),ROW(1:1)),1)),"",INDEX($B$1:$C$800,SMALL(IF($C$1:$C$800=S$2,ROW($C$1:$C$800)),ROW(1:1)),1))

Как я могу это сделать?

2 ответа2

2

То, о чем ты просишь, невозможно.  Но вы просите не ту вещь.  Если вы хотите, чтобы термин в формуле увеличивался при перетаскивании его вправо, используйте COLUMN(A:A) (или COLUMN(An) , где n - любой допустимый номер строки).

0

Чтобы ответить на ваш актуальный вопрос, лучшее, что вы можете сделать, это заменить 1:1 на OFFSET(1:1,COLUMN()+0,) . 1:1 фактически не изменится, но результат будет таким же, как если бы он изменился.

=IF(ISERROR(INDEX($B$1:$C$800,SMALL(IF($C$1:$C$800=S$2,ROW($C$1:$C$800)),ROW(OFFSET(1:1,COLUMN()+0,))),1)),"",INDEX($B$1:$C$800,SMALL(IF($C$1:$C$800=S$2,ROW($C$1:$C$800)),ROW(OFFSET(1:1,COLUMN()+0,))),1))

В зависимости от того, как вы используете формулу, лучшим решением будет заменить ROW(1:1) на COLUMN():

=IF(ISERROR(INDEX($B$1:$C$800,SMALL(IF($C$1:$C$800=S$2,ROW($C$1:$C$800)),COLUMN()),1)),"",INDEX($B$1:$C$800,SMALL(IF($C$1:$C$800=S$2,ROW($C$1:$C$800)),COLUMN()),1))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .