Кратчайший метод для ссылки на одну строку / столбец именованного диапазона в Excel?

8

У меня есть именованный range ( NamedRange1), и мне нужно сослаться на первую строку и первый столбец этого диапазона в формуле. Я придумал следующее:

  • Первый ряд:

    INDIRECT("R" & ROW(UnpivotSource) & "C" & COLUMN(UnpivotSource) & ":R"& ROWS(UnpivotSource) +ROW(UnpivotSource) -1 & "C" & COLUMN(UnpivotSource),0)

  • Первый столбец:

    INDIRECT("R" & ROW(UnpivotSource) & "C" & COLUMN(UnpivotSource) & ":R"& ROW(UnpivotSource) & "C" & COLUMNS(UnpivotSource) + COLUMN(UnpivotSource) -1,0)

Это кажется громоздким, тем более что объектная модель Excel выставляется Rowsи Columnsв VBA. Есть ли более краткий способ выразить это?

technomalogical
источник

Ответы:

15

Строка:

INDEX(UnpivotSource,1,0)

Колонка:

INDEX(UnpivotSource,0,1)

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

Ланс Робертс
источник
Красиво, прекрасно работает и намного короче. Спасибо!
техно-логическое
Как вы думаете, если я использую эту технику, скажем Макс, под капотом xl, она будет более эффективной, например, Max("A:A")по сравнению с Max(index(myNmdRang,0,1))?
Whytheq
@whytheq, я думаю, что для больших столбцов Max("A:A")будет наиболее эффективным. Время и тестирование вы можете посмотреть здесь: stackoverflow.com/questions/198409/… .
Ланс Робертс
@LanceRoberts Я добавил более подробный вопрос о SO здесь: stackoverflow.com/questions/36197157/… Возможно, вы захотите ответить, так как текущий ответ недостаточно хорош.
Whytheq