2 votes

Excel, moyenne pour une colonne spécifique dans un tableau

J'essaie de calculer une moyenne pour une seule colonne dans un tableau de valeurs.

C'est comme ça :

Hi   Hello  Hey
1  |  2   | 3
1  |  2   | 3
1  |  2   | 3

Et j'essaie d'obtenir la moyenne pour une de ces colonnes, mais laquelle dépend d'une autre cellule qui me dira soit Hi, Hello ou Hey. Disons que cette cellule est K5

J'ai donc pensé à quelque chose comme averageif(A1:C1 ;"="&K5;A2:C4). K5 étant Hi, la formule renvoie la valeur 1. Mais lorsque j'ai changé une valeur dans la colonne Hi, ayant alors :

Hi   Hello  Hey
1  |  2   | 3
7  |  2   | 3
1  |  2   | 3

La formule m'indique toujours 1 (qui devrait être 3), elle ne prend donc en compte que la deuxième ligne.

Comment pourrais-je lui faire calculer la moyenne de A2:A4 si K5 est Hi, B2:B4 si K5 est Hello ou C2:C4 si K5 est Hey ?

Merci.

2voto

databyte Points 708

AverageIf n'est pas conçu pour évaluer une table entière et ne retourner qu'une seule colonne. Pour obtenir le résultat que vous avez décrit, vous pourriez utiliser quelque chose comme

=AVERAGE(IF(A1:C1=K5,A2:C4,""))

Il s'agit d'une formule de tableau et elle doit être confirmée avec Ctrl + Shift + Enter .

2voto

Sruly Points 918

Je vais vous donner les deux premières façons qui me viennent à l'esprit.

=average(offset(A2:C2,0,match(K5,A1:C1,0)-1))

décale votre plage, match trouvera K5 dans les cellules A1:C1 et retournera quelle cellule il s'agit (1,2,3) en soustrayant un pour que la ligne soit correcte.

Alternativement, si les données sont stockées dans un tableau, cette fonction trouvera la moyenne de toute colonne portant le nom de l'en-tête dans K5.

=average(INDIRECT("Table1["&K5&"]"))

L'indirecte vous permet essentiellement d'utiliser des variables pour définir les références des cellules.

2voto

Gerard Bosch Points 101

Si vous utilisez la fonction tableau dans Excel pour rendre les données souhaitées sous forme de tableau
( Mettez tout en surbrillance et appuyez sur CTRL + T ) alors vous pouvez calculer la moyenne en utilisant :

=AVERAGE([Hi]) 

En supposant que l'en-tête de votre table s'appelle Hi .

Vous pouvez l'utiliser dans une fonction plus large telle que

=100 - ([@hi]) / ( MAX([hi]) + AVERAGE([hi]) ) 

ou plus si vous voulez développer davantage.

En =([@hi]) donnerait le courant hi pour cette ligne. Le reste est assez explicite.

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