Рассмотрим следующий сценарий, иллюстрирующий данные, которые у меня есть, и данные, которые я хочу. Очень просто, у меня есть один столбец, который представляет поле 1, содержимое поля 1 и т.д. и более соответствующим образом отформатирован как пары строк в столбцах.

Я экспериментировал с функцией TRANSPOSE , но она для меня нова, и я не уверен, что это верное направление. На первый взгляд, это не соответствует моим потребностям. Но я могу ошибаться ...

Хотя было бы относительно просто настроить формулу "каждый второй ряд", я также должен учитывать ситуации, когда у меня может быть повторение foo с одним bar или наоборот, и вот где я застрял. Мне нужна функция "следующая неиспользуемая ячейка", или что-то, что может добавить X строк или Y столбцов к определенной ячейке.

Я могу представить формулу, которая может манипулировать меткой ячейки и решить мою проблему: =($A1+2rows) или что-то вроде =$(A+3)$(4+2) которая будет возвращать ячейку D6 .

Возможно ли что-то подобное?

1 ответ1

1

Для вашего сценария вы можете использовать три функции:

OFFSET

Используя =OFFSET($A$1,NumberOfRows,NumberOfCols) , вы можете сместить ссылку на ячейку A1 в любом направлении.
Плюсы: простота в использовании; также может использоваться для создания диапазона нескольких ячеек (например, в динамических именах), используя четвертый и пятый параметры
Минусы: изменчивый, то есть Excel будет пересчитывать формулу каждый раз

НЕПРЯМОЙ в сочетании с АДРЕС

=INDIRECT(ADDRESS(RowNum,ColNum,,,Sheetname)) позволит вам получить доступ к любой ячейке в Sheetname. (Если вы пропустите имя листа, оно будет работать с использованием текущего листа.
Pro: может обрабатывать несколько рабочих листов
Con: Volalite, не может обрабатывать другие книги, если не открыт

ИНДЕКС

=INDEX($A:$Z,RowNum,ColNum)
Pro: энергонезависимый, то есть не будет замедлять пересчет в больших моделях; очень универсальный (например, в сочетании с MATCH)
Минусы: массив должен быть указан заранее

Лично я всегда стараюсь использовать INDEX , только в тех случаях, когда используется INDIRECT(в основном, когда имя листа должно быть динамическим) - и почти никогда не OFFSET ...

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