¿El método más corto para hacer referencia a una sola fila / columna de un rango con nombre en Excel?


8

Tengo un rango con nombre ( NamedRange1) y necesito hacer referencia a la primera fila y la primera columna de ese rango dentro de una fórmula. Se me ocurrió lo siguiente:

  • Primera fila:

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

  • Primera columna:

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

Esto parece engorroso, especialmente porque el modelo de objetos de Excel se expone Rowsy Columnsen VBA. ¿Hay una manera más concisa de expresar esto?

Respuestas:


15

Fila:

INDEX(UnpivotSource,1,0)

Columna:

INDEX(UnpivotSource,0,1)

Tenga en cuenta que esto solo funcionará para rangos con nombre contiguos, hay una función de índice para áreas de un rango, pero podría ser complicado si desea algo más que la primera fila o columna.


Hermoso, funciona muy bien y mucho más corto. ¡Gracias!
Technomalogical

Bajo el capó de xl, ¿crees que si uso esta técnica, por ejemplo, Max, será más eficiente, por ejemplo, en Max("A:A")comparación con Max(index(myNmdRang,0,1))?
whytheq

@whytheq, supongo que para columnas grandes Max("A:A")sería la más eficiente. Puede cronometrar y probar, ver aquí: stackoverflow.com/questions/198409/… .
Lance Roberts

@LanceRoberts Agregué una pregunta más detallada sobre SO aquí: stackoverflow.com/questions/36197157/… Es posible que desee responder ya que la respuesta actual no es lo suficientemente buena.
whytheq
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.