2015-04-17 1 views
0

So background first, question second.Utilisation de la plage nommée en tant que références de cellule unique dans les formules acceptant les tableaux

J'ai récemment découvert une propriété intéressante de plages nommées que j'expérimente et ne pas trouver beaucoup d'aide. La propriété est la suivante: Si je nomme une plage (une colonne dans cet exemple), je peux utiliser la plage nommée comme référence dans les formules et elle se résoudra généralement comme une référence à la même position relative que la cellule actuelle dans la plage indiquée. Donc, si j'appelle A: un "Alphabet" et qu'il contient les lettres a à z, chacun dans sa propre rangée, je peux simplement taper =Alphabet dans la cellule b26 et il évaluera à "z" (c'est-à-dire A26 au lieu de: A). Cela semble simple, mais il semble assez puissant, car il y a essentiellement une fonction d'indexation intégrée. Très utile pour faire des formules bien rangées.

Sur la question: lorsque j'utilise cette même technique avec une plage qui accepte un argument tableau (c'est-à-dire MAX, EOMONTH, etc.), la référence est résolue de manière standard (Max (A: A)). Si j'enveloppe la référence dans VALUE(), alors elle se résout à la seule référence dans la plus grande plage (a26). La question est simplement de savoir si quelqu'un peut penser à un moyen d'éviter cela, ou au moins de rendre l'emballage aussi discret que possible?

Exemple dans le monde réel: J'ai une liste d'employés et je veux déterminer quelle date parmi trois plages nommées est plus grande. Donc, j'ai quelque chose comme ='DateSameRow1' > Max('DateSameRow2','DateSameRow3','DateSameColumn', et il se résout comme =a10 > Max(b:b,c:c,2:2). Notez le problème: La plage nommée en dehors de MAX a été résolue dans un sens, et dans MAX, elle en a résolu une autre. Bien sûr, je pourrais juste écrire = a10 > Max(b10,c10,d2) ou autre, mais c'est tellement plus lisible dans ce qui finira par être une énorme formule. En ce moment je dois écrire MAX(VALUE('DateSameRow2')) ou n'importe quoi pour obtenir le résultat que je veux et il est en train de vaincre le but.

Merci

+0

Si vous voulez ce genre de fonctionnalité pour les formules "propres", vous pouvez bénéficier d'un "Table" autour des données et des calculs. Dans un tableau, vous obtenez un comportement similaire avec les noms. Pour les valeurs de même ligne, vous pouvez utiliser '[@HEADEr]', pour toute la colonne '[HEADER]'. Des lignes entières (par exemple '2: 2') ne fonctionnent pas. Je vous recommande de ne pas créer de feuille de calcul en fonction de ce comportement. Il sera difficile de maintenir et d'expliquer aux autres. Il laisse également votre travail très vulnérable à la définition de la plage nommée et sa position w.r.t. vos calculs. –

Répondre

0

Vous pouvez utiliser --NAMED_RANGE en face de la plage nommée « offensant » et forcera un VALUE négatif puis annuler la négative. Pour mon commentaire, je vous recommande de ne pas créer de feuille de calcul sur cette fonctionnalité. Le -- est encore plus éloigné de VALUE en indiquant qu'une plage nommée est utilisée de cette manière.