En utilisant Excel, comment puis-je compter le nombre de cellules dans une colonne contenant le texte «vrai» ou «faux»?

10

J'ai une feuille de calcul qui a une colonne de cellules où chaque cellule contient un seul mot. Je voudrais compter les occurrences de quelques mots. Je peux utiliser la fonction COUNTIF pour la plupart des mots, mais si le mot est "vrai" ou "faux", j'obtiens 0.

        A         B 
1     pommes 2
 2     vraies 0
 3     fausses 0
 4     oranges 1
 5     pommes

Dans le tableau ci-dessus, j'ai ces formules dans les cellules B1, B2, B3 et B4:

=COUNTIF(A1:A5,"apples")
=COUNTIF(A1:A5,"true")
=COUNTIF(A1:A5,"false")
=COUNTIF(A1:A5,"oranges)

Comme vous pouvez le voir, je peux compter les pommes et les oranges, mais pas vrai ou faux. J'ai également essayé ceci:

=COUNTIF(A1:A5,TRUE)

Mais cela ne fonctionne pas non plus.

Remarque - J'utilise Excel 2007.

Jay Elston
la source
3
Pour ce que ça vaut, j'ai changé d'avis à ce sujet. Je suppose que les formules Excel pourraient être considérées comme une sorte de langage de programmation déclaratif. Je ne pense pas que Turing soit complet sans l'utilisation de VBA, mais les expressions régulières ne sont pas non plus jugées acceptables par la communauté SO!
Martin Smith
1
Restez avec la solution générique. =COUNTIF(A1:A5,"<truf")-COUNTIF(A1:A5,"<=trud")compte chaque chaîne qui commence par «true» ou «trud», comme «trudge».
Scott
1
Jay, cette vieille question a refait surface à cause d'un nouveau message. L'incorporation d'une réponse dans la question dérange en quelque sorte la structure prévue du site. Pouvez-vous déplacer la partie réponse vers une réponse?
fixer1234

Réponses:

5

Cela devrait fonctionner:

=COUNTIF(A1:A5,"*true")

bien qu'il comptera une cellule s'il contient également du texte avant true. Mais cela peut être une solution de contournement grossière pour vous.

Sux2Lose
la source
1
Bonne suggestion - je n'avais pas pensé aux caractères génériques. Un deuxième COUNTIF peut être utilisé pour filtrer les mots qui se terminent par "vrai". Cette formule fonctionne: = COUNTIF (A1: A5, " vrai") - COUNTIF (A1: A5, " ? Vrai") Je voterais positivement pour cette réponse, mais je suis un novice qui n'aura que 11 répétitions jusqu'à présent. (Je ne peux pas en transférer de stackoverflow :-(
Jay Elston
1
Voici une autre variante: =COUNTIFS(A1:A5, "tru?", A1:A5, "*e").
Scott
7

Le deuxième argument de la formule COUNTIF est interprété par Excel comme un test à effectuer (par exemple, nous pouvons entrer "> 3", etc.). Dans ce cas, il semble qu'Excel convertit les chaînes "vrai" et "faux" en 1 et 0. Cela ne correspondra pas au texte d'origine.

La seule solution que je connais à ce problème est d'écrire du code VBA pour faire le comptage.

Si la modification des données d'entrée est acceptable, remplacez "true" par "T" et "false" par "F", puis passez à COUNTIF(A1:A5,"T").

Quand j'ai trébuché dessus, j'ai abandonné la bataille et changé les données d'entrée.

PS: Utilisation d'Excel 2003 - même problème

Christian Garbin
la source
Ma solution de contournement temporaire a quelque chose comme ça - j'ai inséré une autre colonne et utilisé la formule: IF (A1 = "true", "T", IF (A1 = "false", "F", "")) pour remplir les cellules .
Hmm je peux voir la frustration. COUNTIF(A2,">=trud")et les COUNTIF(A2,"<=truf")deux fonctionnent. COUNTIF(A2,A2)et aucune variante imaginable ne le fait!
Martin Smith
Il semble que =COUNTIF(G1,">=true")et =COUNTIF(G1,"<=true") toujours retourner 0 pour toute entrée possible de CHAR(1)à CHAR(255)donc tout ce qui est converti semble complètement incomparable. Il semble agir comme une comparaison NULL dans une base de données.
Martin Smith
3

Il semble qu'Excel traite "true / TRUE" et "false / FALSE" comme des chaînes magiques lorsqu'ils apparaissent dans des formules - ils sont traités comme des fonctions: TRUE () et FALSE () au lieu de chaînes.

Si vous devez compter vrai et faux dans une colonne, vous n'obtiendrez pas de compte si vous utilisez "vrai" ou "= vrai" comme critères. Il existe certaines approches que vous pouvez utiliser pour compter le vrai et le faux comme des mots.

Use a pair of COUNTIF functions. Either of the following works:

=COUNTIF(A1:A5,"*true")-COUNTIF(A1:A5,"*?true")

or

=COUNTIF(A1:A5,"<truf")-COUNTIF(A1:A5,"<=trud")

Create a new column with true converted to "T" and false converted to "F" using the formula:

=IF(A1="true","T",IF(A1="false","F",""))

Then trues and falses can be counted using:

=COUNTIF(A1:A5,"T")
=COUNTIF(A1:A5,"F")

Don't use "true" and "false" to begin with, use something else (such as T and F).

Merci à Sux2Lose pour l'idée générique et Martin Smith pour l'idée d'utiliser des comparaisons avec les chaînes immédiatement supérieures et inférieures à true ou false.

Jay Elston
la source
0

J'ai pu utiliser les formules suivantes:

=COUNTIF(A1:A5,"=apples")
=COUNTIF(A1:A5,"=true")
=COUNTIF(A1:A5,"=false")
=COUNTIF(A1:A5,"=oranges")

Lisez l'aide intégrée de COUNTIF. Ils décrivent la possibilité d'utiliser des opérateurs à condition plus en détail.

technomalogique
la source
1
Ça ne marche pas pour moi. Renvoie 0.
Martin Smith
1
Cela ne fonctionne pas non plus pour moi.
Jay Elston
0

J'ai eu un problème similaire avec une formule SUMPRODUCT. En supprimant les guillemets autour du terme FAUX, la formule a produit le résultat correct, en utilisant MS EXCEL 2003.

rohan
la source
1
J'ai mentionné dans la question que j'avais essayé = COUNTIF (A1: A5, TRUE) et que j'utilisais la version 2007 d'Excel.
Jay Elston
0

J'ai pu résoudre le problème à l'aide de la formule suivante:

= COUNTIF (A1: A5, "T *").

"T*" remplace "True" si les entrées de la colonne sont limitées à un seul mot "T".

Rocky Ellens
la source