Fonction d'agrégation Excel sur les combinaisons arithmétiques sans colonne temporaire?


0

Je veux souvent faire des fonctions d'agrégation sur des combinaisons linéaires de colonnes sans avoir à créer une nouvelle colonne pour contenir la combinaison linéaire. Y a-t-il un moyen de faire cela?

Par exemple, si ma feuille a des données dans les colonnes A: B et que je veux le STDEV de la série A + B, je dois maintenant créer une nouvelle colonne C et remplir avec la formule C2 = A2 + B2. Alors je peux avoir =STDEV(C:C).

Dans cet exemple: existe-t-il une notation qui me permet d’ignorer la création de la colonne C et de faire quelque chose comme STDEV (A: A + B: B)?


Vous ne pouvez pas faire référence à la colonne entière, car les cellules vierges semblent être traitées comme des zéros. Mais vous pouvez utiliser quelque chose comme STDEV (A1: A50 + B1: B50). C'est une formule matricielle qui doit être entrée avec CTRL-Shift-Enter.
Bandersnatch

Cela fonctionne pour toutes les références de colonne en remplaçant les zéros par des blancs: =STDEV(IF(A:A+B:B<>0,A:A+B:B,"")).
Bandersnatch

@ Bandersnatch - ce sont deux bonnes réponses que vous devriez poster pour que je puisse accepter! Je déteste les formules matricielles et je pensais qu'il y avait un moyen de le faire sans elles, mais maintenant je me rappelle que la raison pour laquelle je déteste les formules matricielles est que c'est le seul moyen de le faire;)
feetwet

Fait, et merci. Pour traiter le problème de texte, cela fonctionne alors qu'ANDing ne fonctionnait pas. =AVERAGE(IF((A:A+B:B<>0)*NOT(ISTEXT(A:A+B:B)),A:A+B:B,""))
Bandersnatch

Réponses:


2

L'ajout de colonnes entières pose un problème, car après l'ajout, les cellules vides sont traitées comme des zéros. Cela ne se produit pas avec une seule référence de colonne, bien sûr, et j'appellerais cela un bug.

Vous pouvez contourner cela en utilisant un IF () pour remplacer les zéros par des blancs:

=AVERAGE(IF(A:A+B:B<>0,A:A+B:B,""))

=STDEV(IF(A:A+B:B<>0,A:A+B:B,""))

enter image description here

Les formules avec les sommes comme argument sont des formules matricielles et doivent être entrées avec CTRL Décalage Entrer plutôt que juste Entrer .

Notez également que tout texte dans les colonnes ajoutées (comme les en-têtes) entraînera #VALUE! Erreur. Modifier: Mais cette modification va gérer ça:

=AVERAGE(IF((A:A+B:B<>0)*NOT(ISTEXT(A:A+B:B)),A:A+B:B,""))

J'espère que ça aide. Bonne chance.

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.