Usando o Excel, como posso contar o número de células em uma coluna que contém o texto "verdadeiro" ou "falso"?

10

Eu tenho uma planilha que tem uma coluna de células onde cada célula contém uma única palavra. Eu gostaria de contar as ocorrências de algumas palavras. Eu posso usar a função COUNTIF para a maioria das palavras, mas se a palavra for "true" ou "false", recebo 0.

        A         B 
1     maçãs 2
 2     verdadeiro 0
 3     falso 0
 4     laranjas 1
 5     maçãs

Na tabela da planilha acima, eu tenho essas fórmulas nas células B1, B2, B3 e B4:

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

Como você pode ver, posso contar maçãs e laranjas, mas não verdadeiras ou falsas. Eu também tentei isso:

=COUNTIF(A1:A5,TRUE)

Mas isso também não funciona.

Nota - Estou usando o Excel 2007.

Jay Elston
fonte
3
Pelo que vale a pena, mudei de idéia sobre isso. Eu acho que as fórmulas do Excel podem ser consideradas um tipo de linguagem de programação declarativa. Eu não acho que seja Turing completo sem o uso do VBA, mas também não são expressões regulares - que são consideradas aceitáveis ​​pela comunidade SO!
Martin Smith
11
Fique com a solução curinga. =COUNTIF(A1:A5,"<truf")-COUNTIF(A1:A5,"<=trud")conta todas as sequências que começam com "true" ou "trudge", como "trudge".
29313 Scott
11
Jay, essa velha pergunta apareceu novamente por causa de um novo post. A incorporação de uma resposta no tipo de pergunta mexe com a estrutura pretendida do site. Você pode mover a parte da resposta para uma resposta?
Fixer1234 #

Respostas:

5

Isso deve funcionar:

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

embora contará uma célula se tiver algum texto antes de true também. Mas pode ser uma solução grosseira para você.

Sux2Lose
fonte
11
Boa sugestão - eu não tinha pensado em curingas. Um segundo COUNTIF pode ser usado para filtrar as palavras que terminam com "true". Esta fórmula funciona: = COUNTIF (A1: A5, " true") - COUNTIF (A1: A5, " ? True") Gostaria de aprovar esta resposta, mas sou novato apenas com 11 representantes até o momento. (Não consigo transferir nenhum do stackoverflow :-(
Jay Elston
11
Aqui está uma outra variação: =COUNTIFS(A1:A5, "tru?", A1:A5, "*e").
31313 Scott
7

O segundo argumento para a fórmula COUNTIF é interpretado pelo Excel como um teste a ser executado (por exemplo, podemos inserir "> 3" etc.). Nesse caso, parece que o Excel está convertendo as seqüências "true" e "false" em 1 e 0. Isso não corresponde ao texto original.

A única solução que conheço para esse problema é escrever código VBA para fazer a contagem.

Se a alteração dos dados de entrada for aceitável, substitua "true" por "T" e "false" por "F" e altere para COUNTIF(A1:A5,"T").

Quando tropecei nisso, desisti da batalha e mudei os dados de entrada.

PS: Usando o Excel 2003 - mesmo problema

Christian Garbin
fonte
Minha solução temporária foi algo assim: inseri outra coluna e usei a fórmula: IF (A1 = "true", "T", IF (A1 = "false", "F", "")) para preencher as células .
Hmm, eu posso ver a frustração. COUNTIF(A2,">=trud")e COUNTIF(A2,"<=truf")ambos trabalham. COUNTIF(A2,A2)e qualquer variante concebível não!
Martin Smith
Parece que =COUNTIF(G1,">=true")e =COUNTIF(G1,"<=true") sempre retorne 0 para qualquer entrada possível de CHAR(1)para, CHAR(255)para o que estiver sendo convertido parece completamente incomparável. Parece estar agindo como uma comparação NULL em um banco de dados.
Martin Smith
3

Parece que o Excel trata "true / TRUE" e "false / FALSE" como strings mágicas quando aparecem em fórmulas - elas são tratadas como funções: TRUE () e FALSE () em vez de strings.

Se você precisar contar verdadeiro e falso em uma coluna, não receberá uma contagem se usar "true" ou "= true" como critério. Existem algumas abordagens que você pode usar para contar verdadeiro e falso como palavras.

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

Agradecemos ao Sux2Lose pela ideia de curinga e a Martin Smith pela idéia de usar comparações com as seqüências imediatamente maiores e menores que verdadeiras ou falsas.

Jay Elston
fonte
0

Consegui usar as seguintes fórmulas:

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

Leia a ajuda interna para COUNTIF. Eles descrevem a capacidade de usar operadores na condição com mais detalhes.

technomalogical
fonte
11
Não funciona para mim. Retorna 0.
Martin Smith
11
Isso também não funciona para mim.
Jay Elston
0

Eu tive um problema semelhante com uma fórmula SUMPRODUCT. Ao remover as aspas ao redor do termo FALSE, a fórmula produziu o resultado correto, usando o MS EXCEL 2003.

Rohan
fonte
11
Mencionei na pergunta que tentei = COUNTIF (A1: A5, TRUE) e que estava usando a versão 2007 do Excel.
Jay Elston
0

Consegui resolver o problema usando a seguinte fórmula:

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

"T*" substitui "True" se as entradas na coluna estiverem limitadas a apenas uma palavra "T".

Rocky Ellens
fonte