Je ferai de mon mieux pour expliquer. Disons que j'ai une feuille qui ressemble à ceci (dans cet exemple artificiel, disons que j'envoie des e-mails marketing à diverses personnes, je connais leur âge et leurs codes postaux, et je veux suivre les taux de clics dans ces e-mails):
A | B | C
1 Age | zip code | click?
2 26 | 11111 | true
3 27 | 11112 | true
4 28 | 11111 | false
5 27 | 22222 | false
6 28 | 11112 | false
7 26 | 22222 | true
Maintenant, je veux suivre diverses statistiques. Dans ce cas, je souhaite suivre le taux de clics par âge et par code postal. J'ai donc une table comme celle-ci:
E F G
1 Age | # sent | # clicked
2 26 |
3 26 |
4 27 |
5 28 |
Donc en gros dans la colonne "# envoyé", je peux mettre (en F2 par exemple):
=COUNTIF(A:A, E2)
Et cela entraînerait un 2 dans la cellule F2, car il y avait deux occurrences de "26" dans la colonne A.
Mais maintenant, que faire si je veux savoir combien de clics? Je veux dire quelque chose comme:
=COUNTIF(A:A == E2 AND C:C == True, for the same row where A:A matched E2)
Je sais que je peux ajouter une autre colonne D avec une formule comme
=IF(C2, A2, "")
Ce qui ne sera que l'âge dans la colonne D si la colonne C est vraie. Mais je peux avoir potentiellement de nombreux critères et il ne semble pas que je devrais ajouter une autre "fausse" colonne pour chaque colonne de critères que j'ai.
Y a-t-il un moyen de faire cela? Sinon dans Google Docs, dans Excel?
Réponses:
Utiliser une combinaison des opérations ARRAYFORMULA, SUM et arithmetic
Voici la fonction pour compter tous les clics d'un jeune de 26 ans:
Cette opération comporte 3 parties.
Essentiellement, true est converti en 1 et false est converti en 0. La logique booléenne est effectuée à l'aide d'opérations arithmétiques.
Une opération AND utilise la multiplication:
Une opération OU utilise une combinaison de la fonction * SIGN et de l'addition:
Remarque: La fonction de signe est nécessaire en raison de la façon dont l'addition booléenne fonctionne différemment de l'addition arithmétique. Fondamentalement, dans l'addition booléenne 1 + 1 = 1, dans l'addition arithmétique 1 + 1 = 2. Évidemment, l'addition arithmétique gâchera le décompte, vous devez donc exécuter les résultats des opérations d'addition via une fonction de signe. La fonction de signe renvoie 1 si la valeur est positive, 0 si la valeur est 0 et -1 si la valeur est négative.
Supposons que vous vouliez compter les clics pour tous les utilisateurs âgés de 20 à 25 ans:
la source
both
20 et 23, par exemple, donc l'addition ne vous donnera jamais une valeur> 1 dans ce cas. SIGN n'est requis que si les conditions ne s'excluent pas mutuellement. Ne serait-il pas plus facile de faire entre 20 et 25 plus facilement avec cette version?=arrayformula(sum((A:A>=20)*(A:A<=25)*(C:C=TRUE)))
À l'heure actuelle, la nouvelle feuille de calcul Google prend en charge COUNTIFS, qui peut gérer directement le travail requis.
=COUNTIFS(A:A, E2, C:C, "true")
Liste toutes les plages et la comparaison à faire séparées par des virgules.
la source
Dans Excel, j'utiliserais SUMPRODUCT dans Excel 2003 ou COUNTIFS (avec un "S") dans Excel 2007 ou version ultérieure ....... mais dans Google Docs essayez ceci
=arrayformula(sum((A:A=E2)*(C:C=TRUE)))
la source
C'était pour deux colonnes - je l'utilise pour ma liste d'invités de mariage - dans ce cas, tabuler "Oui" lors de l'envoi d'une sauvegarde de la date et "USA" pour l'emplacement, afin que je puisse calculer les frais de port plus tard. Il peut y avoir une formule plus courte, mais cela semble fonctionner, donc je ne joue pas avec elle!
Comptage heureux.
la source
Dans Excel, j'oublierais les formules et utiliserais des tableaux croisés dynamiques.
Vous devrez peut-être ajouter une colonne "compteur", qui pourrait être utilisée à plusieurs reprises comme variable que vous additionnez pour obtenir des résultats.
la source
Vous pouvez ajouter le tableau que vous souhaitez tester dans {}.
Dans l'exemple ci-dessous:
la source