3 votes

Définir une plage à l'aide d'une formule

Une version simplifiée de mon problème est que sur une autre feuille appelée Sheet2 J'ai des données dont je veux faire la moyenne :

=AVERAGE(Sheet2!$A$1:Sheet2!$A$100)

En fonction de l'endroit où le code ci-dessus est utilisé, je dois échanger la colonne A pour une autre lettre, par exemple colonne D . Pour ce faire, j'ai créé une fonction :

=MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)

qui produira D .

Mon problème est qu'au lieu d'avoir à écrire :

=AVERAGE(Sheet2!$D$1:Sheet2!$D$100)

Je veux utiliser :

=AVERAGE(Sheet2!$MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)$1:Sheet2!$MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)$100)

mais Excel ne l'accepte pas. Comment puis-je utiliser les fonctions à côté de Sheet2! ?

5voto

Scott Craner Points 20779

OFFSET et INDIRECT sont volatiles, nous pouvons utiliser INDEX.

=AVERAGE(INDEX(Sheet2!$A$1:$Z$100,0,4))

En 0 indique à l'INDEX de renvoyer toutes les lignes et à la fonction 4 est la 4ème colonne. Ainsi, la moyenne de toutes les lignes de 1 à 100 de la colonne 4 sera calculée.

Conformément à vos commentaires :

=AVERAGE(INDEX(Sheet2!$A$1:$Z$100,0,(COLUMN(A:A)-1)*3))

3voto

cybernetic.nomad Points 5157

Voici un moyen :

=AVERAGE(OFFSET(Sheet2!$A:$A,0,(COLUMN()-1)*3))

Notez que OFFSET est volatile et augmentera la charge de calcul dans votre classeur.

3voto

Máté Juhász Points 20291

Vous pouvez utiliser INDIRECT :

=AVERAGE(INDIRECT ("Sheet2!$" & MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)&"$1:Sheet2!$" & MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)&"$100"))

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X