Получить содержимое ячейки с учетом номеров строк и столбцов
Я хочу получить содержимое ячейки, учитывая ее номер строки и столбца. Номер строки и столбца хранятся в ячейках (здесь B1,B2). Я знаю, что следующие решения работают, но они чувствуют себя немного хаки.
Соль 1
=CELL("contents",INDIRECT(ADDRESS(B1,B2)))
Соль 2
=CELL("contents",OFFSET($A, B1-1,B2-1))
есть ли не менее подробный метод? (например, =CellValue (row, col) или что-то еще)?
Изменение / Уточнение: Я просто хочу использовать формулы рабочего листа Excel. Нет VBA. Короче говоря, я в значительной степени ищу эквивалент метода VBA Cells () в виде формулы excel.
3 ответа:
вам не нужна ячейка () часть ваших формул:
=INDIRECT(ADDRESS(B1,B2))
или
=OFFSET($A, B1-1,B2-1)
будет работать. Обратите внимание, что оба
INDIRECT
иOFFSET
- это летучие функции. Волатильные функции могут замедлять вычисление, поскольку они вычисляются при каждом отдельном пересчете.
Try =индекс (массив, строка, столбец)
где: Массив: выберите весь лист Строка, столбец: ваши ссылки на строки и столбцы
Это должно быть легче понять тем, кто смотрит на Формулу.
это заняло у меня некоторое время, но вот как я сделал его динамичным. Это не зависит от отсортированной таблицы.
сначала я начал с столбца имен состояний (столбец A) и столбца самолетов в каждом состоянии (столбец B). (Строка 1-строка заголовка).
найти ячейку, которая содержит количество самолетов было:
=MATCH(MAX($B:$B),$B:$B,0)+MIN(ROW($B:$B))-1
Я положил это в ячейку, а затем дал этой ячейке имя, " StateRow" Затем, используя советы сверху, я закончил с это:
=INDIRECT(ADDRESS(StateRow,1))
это возвращает имя состояния из динамического значения в строке "StateRow", столбец 1
теперь, когда значения в столбце count меняются с течением времени по мере ввода дополнительных данных, я всегда знаю, в каком состоянии находится больше всего самолетов.