Utilizzando Excel, come posso contare il numero di celle in una colonna contenente il testo "vero" o "falso"?


10

Ho un foglio di calcolo che ha una colonna di celle in cui ogni cella contiene una sola parola. Vorrei contare le occorrenze di alcune parole. Posso usare la funzione COUNTIF per la maggior parte delle parole, ma se la parola è "vero" o "falso", ottengo 0.

        A         B 
1     mele 2
 2     true 0
 3     false 0
 4     arance 1
 5     mele

Nella tabella del foglio di calcolo sopra, ho queste formule nelle celle B1, B2, B3 e B4:

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

Come puoi vedere, posso contare mele e arance, ma non vero o falso. Ho anche provato questo:

=COUNTIF(A1:A5,TRUE)

Ma neanche questo funziona.

Nota: sto usando Excel 2007.


3
Per quello che vale, ho cambiato idea su questo. Immagino che le formule di Excel possano essere considerate una sorta di linguaggio di programmazione dichiarativo. Non penso che Turing sia completo senza l'uso di VBA, ma nemmeno le espressioni regolari sono ritenute accettabili dalla comunità SO!
Martin Smith,

1
Attenersi alla soluzione con caratteri jolly. =COUNTIF(A1:A5,"<truf")-COUNTIF(A1:A5,"<=trud")conta ogni stringa che inizia con "true" o "trud", come "trudge".
Scott,

1
Jay, questa vecchia domanda è spuntata di nuovo a causa di un nuovo post. Incorporare una risposta nella domanda tipo di casini con la struttura prevista del sito. Puoi spostare la parte di risposta in una risposta?
fixer1234,

Risposte:


5

Questo dovrebbe funzionare:

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

anche se conterà una cella se ha anche del testo prima di vero. Ma potrebbe essere una soluzione approssimativa per te.


1
Un buon suggerimento: non avevo pensato ai jolly. Un secondo COUNTIF può essere usato per filtrare le parole che finiscono con "true". Questa formula funziona: = COUNTIF (A1: A5, " vero") - COUNTIF (A1: A5, " ? Vero") Voterei questa risposta, ma io sono un principiante con solo 11 ripetizioni finora. (Non riesco a trasferire alcuno da StackOverflow :-(
Jay Elston,

1
Ecco un'altra variazione: =COUNTIFS(A1:A5, "tru?", A1:A5, "*e").
Scott

7

Il secondo argomento della formula COUNTIF è interpretato da Excel come un test da eseguire (ad es. Possiamo inserire "> 3", ecc.). In questo caso, sembra che Excel stia convertendo le stringhe "true" e "false" in 1 e 0. Ciò non corrisponderà al testo originale.

L'unica soluzione che conosco a questo problema è scrivere il codice VBA per eseguire il conteggio.

Se la modifica dei dati di input è accettabile, sostituire "true" con "T" e "false" con "F", quindi passare a COUNTIF(A1:A5,"T").

Quando ho inciampato su questo, ho rinunciato alla battaglia e ho cambiato i dati di input.

PS: utilizzando Excel 2003 - stesso problema


La mia soluzione temporanea è andata in questo modo: ho inserito un'altra colonna e ho usato la formula: IF (A1 = "vero", "T", IF (A1 = "falso", "F", "")) per popolare le celle .

Hmm posso vedere la frustrazione. COUNTIF(A2,">=trud")ed COUNTIF(A2,"<=truf")entrambi funzionano. COUNTIF(A2,A2)e nessuna variante immaginabile no!
Martin Smith,

Sembra che =COUNTIF(G1,">=true")e =COUNTIF(G1,"<=true") restituisca sempre 0 per ogni possibile input da CHAR(1)a, CHAR(255)quindi qualsiasi cosa venga convertita sembra completamente incomparabile. Sembra agire come un confronto NULL in un database.
Martin Smith,

3

Sembra che Excel tratti "vero / VERO" e "falso / FALSO" come stringhe magiche quando compaiono nelle formule: sono trattati come funzioni: VERO () e FALSO () anziché stringhe.

Se devi contare true e false in una colonna, non otterrai un conteggio se utilizzi "true" o "= true" come criteri. Ci sono alcuni approcci che puoi usare per contare vero e falso come parole.

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).

Grazie a Sux2Lose per l'idea del carattere jolly e Martin Smith per l'idea di utilizzare i confronti con le stringhe immediatamente più grandi e meno di vero o falso.


0

Sono stato in grado di utilizzare le seguenti formule:

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

Leggi la guida integrata per COUNTIF. Descrivono la capacità di utilizzare gli operatori sulla condizione in modo più dettagliato.


1
Non funziona per me. Restituisce 0.
Martin Smith,

1
Questo non funziona neanche per me.
Jay Elston,

0

Ho avuto un problema simile con una formula SUMPRODUCT. Rimuovendo le virgolette attorno al termine FALSO la formula ha prodotto il risultato corretto, utilizzando MS EXCEL 2003.


1
Ho menzionato nella domanda che ho provato = COUNTIF (A1: A5, TRUE) e che stavo usando la versione 2007 di Excel.
Jay Elston,

0

Sono stato in grado di risolvere il problema utilizzando la seguente formula:

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

"T*" sostituisce "Vero" se le voci nella colonna sono limitate a una sola parola "T".

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.