Получить содержимое ячейки с учетом номеров строк и столбцов - PullRequest
94 голосов
/ 27 января 2011

Я хочу получить содержимое ячейки, учитывая ее номер строки и столбца. Номер строки и столбца хранятся в ячейках (здесь B1, B2). Я знаю, что следующие решения работают, но они чувствуют себя немного хакерами.

Соль 1

=CELL("contents",INDIRECT(ADDRESS(B1,B2)))

Соль 2

=CELL("contents",OFFSET($A$1, B1-1,B2-1))

Есть ли не менее многословный метод? (например, = CellValue (строка, столбец) или что-то еще)?

Редактировать / Уточнить: Я просто хочу использовать формулы листа Excel. Нет VBA. Короче говоря, я в значительной степени ищу эквивалент метода VBA Cells () как формулу Excel.

Ответы [ 3 ]

140 голосов
/ 27 января 2011

Вам не нужна часть CELL () ваших формул:

=INDIRECT(ADDRESS(B1,B2))

или

=OFFSET($A$1, B1-1,B2-1)

оба будут работать.Обратите внимание, что INDIRECT и OFFSET являются энергозависимыми функциями.Изменчивые функции могут замедлять вычисления, поскольку они рассчитываются при каждом повторном расчете.

29 голосов
/ 03 апреля 2013

Try = index (ARRAY, ROW, COLUMN)

где: Array: выбрать весь лист Row, Column: ссылки на строки и столбцы

Это должно быть легче понять темглядя на формулу.

2 голосов
/ 01 сентября 2015

Мне потребовалось некоторое время, но вот как я сделал это динамичным. Это не зависит от отсортированной таблицы.

Сначала я начал со столбца названий штатов (столбец A) и столбцов самолетов в каждом штате (столбец B). (Строка 1 является строкой заголовка).

Нахождение ячейки, содержащей количество самолетов, было:

=MATCH(MAX($B$2:$B$54),$B$2:$B$54,0)+MIN(ROW($B$2:$B$54))-1

Я поместил это в ячейку, а затем дал этой ячейке имя "StateRow" Затем, воспользовавшись советами сверху, я получил следующее:

=INDIRECT(ADDRESS(StateRow,1))

Возвращает имя состояния из динамического значения в строке «StateRow», столбец 1

Теперь, когда значения в столбце подсчета меняются с течением времени по мере ввода новых данных, я всегда знаю, в каком штате больше всего самолетов.

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