Najkrótsza metoda odniesienia do pojedynczego wiersza / kolumny o nazwanym zakresie w programie Excel?

8

Mam nazwany zakres ( NamedRange1) i muszę odwoływać się do pierwszego wiersza i pierwszej kolumny tego zakresu w formule. Wymyśliłem następujące:

  • Pierwszy rząd:

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

  • Pierwsza kolumna:

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

To wydaje się kłopotliwe, zwłaszcza, że model obiektowy expose Excel Rowsi ColumnsVBA. Czy istnieje bardziej zwięzły sposób na wyrażenie tego?

technomalogiczny
źródło

Odpowiedzi:

15

Rząd:

INDEX(UnpivotSource,1,0)

Kolumna:

INDEX(UnpivotSource,0,1)

Zauważ, że będzie to działać tylko dla ciągłych nazwanych zakresów, istnieje funkcja indeksu dla obszarów zakresu, ale może być trudne, jeśli chcesz czegoś innego niż pierwszy wiersz lub kolumna.

Lance Roberts
źródło
Piękny, działa świetnie i jest o wiele krótszy. Dzięki!
technomalogiczny
Czy pod maską XL myślisz, że jeśli użyję tej techniki, powiedzmy Max, będzie ona wydajniejsza np. W Max("A:A")porównaniu do Max(index(myNmdRang,0,1))?
whytheq
@whytheq, Domyślam się, że dla dużych kolumn Max("A:A")byłoby najbardziej wydajne. Można czasu i testy, zobacz tutaj: stackoverflow.com/questions/198409/... .
Lance Roberts,
@LanceRoberts Tutaj dodałem bardziej szczegółowe pytanie na SO: stackoverflow.com/questions/36197157/... Możesz chcieć odpowiedzieć, ponieważ obecna odpowiedź nie jest wystarczająco dobra.
whytheq