J'ai une feuille Google avec un nombre variable de lignes de données. J'aimerais résumer les trois valeurs les plus élevées d'une certaine colonne, mais elles ne figureront pas nécessairement dans les trois premières cellules. Une cellule vide doit être traitée comme zéro, s'il n'y a qu'une ou deux lignes contenant des données jusqu'à présent.
Comment puis-je atteindre cet objectif? La chose la plus proche que je puisse penser est MAX(A1:A2000)
, mais elle n’obtient que la valeur la plus élevée, sans compter les deuxième et troisième plus hautes valeurs.
=ArrayFormula(SUM(IFERROR(LARGE(A1:A2000,{1,2,3}),0)))
Vous voulez probablement regarder LARGE () .
Renvoie le nième élément le plus grand d'un ensemble de données, où n est défini par l'utilisateur.
La solution la plus simple, mais pas la plus élégante, que j'ai est la suivante:
=if(iserror(large({data},1)),0,large({data},1))+
if(iserror(large({data},2)),0,large({data},2))+
if(iserror(large({data},3)),0,large({data},3))
(retours chariot ajoutés pour plus de lisibilité)
Les if
et iserror
sont là pour renvoyer un 0 si la fonction génère une erreur. (Par exemple, s'il n'y a que deux valeurs dans vos données.)
Bien entendu, large({data},1)
est fonctionnellement équivalent à max({data})
, mais je l’ai laissé ainsi pour des raisons de cohérence.