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?

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.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.