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