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?

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.


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.