Méthode la plus courte pour référencer une seule ligne / colonne d'une plage nommée dans Excel?

8

J'ai une plage nommée ( NamedRange1) et j'ai besoin de référencer la première ligne et la première colonne de cette plage dans une formule. J'ai trouvé ce qui suit:

  • Première rangée:

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

  • Première colonne:

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

Cela semble lourd, d'autant plus que le modèle d'objet Excel expose Rowset Columnsdans VBA. Existe-t-il une manière plus concise d'exprimer cela?

technomalogique
la source

Réponses:

15

Rangée:

INDEX(UnpivotSource,1,0)

Colonne:

INDEX(UnpivotSource,0,1)

Notez que cela ne fonctionnera que pour les plages nommées contiguës, il existe une fonction d'index pour les zones d'une plage, mais cela pourrait devenir difficile si vous vouliez autre chose que la première ligne ou colonne.

Lance Roberts
la source
Beau, fonctionne très bien et beaucoup plus court. Merci!
technomalogical
Sous le capot de xl pensez-vous que si j'utilise cette technique, par exemple Max, elle sera plus efficace par exemple Max("A:A")par rapport à Max(index(myNmdRang,0,1))?
whytheq
@whytheq, je suppose que pour les grandes colonnes, ce Max("A:A")serait le plus efficace. Vous pouvez chronométrer et tester, voir ici: stackoverflow.com/questions/198409/… .
Lance Roberts
@LanceRoberts J'ai ajouté une question plus détaillée sur SO ici: stackoverflow.com/questions/36197157/… Vous aimerez peut-être répondre car la réponse actuelle n'est pas assez bonne.
whytheq