Получить содержимое ячейки по номерам строк и столбцов

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

Соль 1

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

Соль 2

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

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

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

3 ответов


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

=INDIRECT(ADDRESS(B1,B2))

или

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

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


Try =index (массив, строка, столбец)

где: Массив: выберите весь лист Строка, столбец: ссылки на строки и столбцы

Это должно быть легче понять тем, кто смотрит на Формулу.


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

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

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

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

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

=INDIRECT(ADDRESS(StateRow,1))

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

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