Método mais curto para referenciar uma única linha / coluna de um intervalo nomeado no Excel?

8

Eu tenho um intervalo nomeado ( NamedRange1) e preciso fazer referência à primeira linha e primeira coluna desse intervalo dentro de uma fórmula. Eu vim com o seguinte:

  • Primeira linha:

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

  • Primeira coluna:

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

Isso parece complicado, principalmente porque o modelo de objeto do Excel expõe Rowse Columnsno VBA. Existe uma maneira mais concisa de expressar isso?

technomalogical
fonte

Respostas:

15

Linha:

INDEX(UnpivotSource,1,0)

Coluna:

INDEX(UnpivotSource,0,1)

Observe que isso funcionará apenas para intervalos nomeados contíguos; existe uma função de índice para áreas de um intervalo, mas pode ser complicado se você quiser algo diferente da primeira linha ou coluna.

Lance Roberts
fonte
Bonito, funciona muito bem e muito mais curto. Obrigado!
technomalogical
Sob o capô do xl você acha que se eu usar essa técnica, por exemplo, Max, será mais eficiente, por exemplo, em Max("A:A")comparação com Max(index(myNmdRang,0,1))?
whytheq
@whytheq, meu palpite seria que, para colunas grandes, Max("A:A")seria a mais eficiente. Você pode testar e testar, veja aqui: stackoverflow.com/questions/198409/… .
Lance Roberts
@LanceRoberts Adicionei uma pergunta mais detalhada sobre SO aqui: stackoverflow.com/questions/36197157/… Você pode responder porque a resposta atual não é boa o suficiente.
whytheq