Excelを使用して、「true」または「false」というテキストを含む列のセル数をカウントするにはどうすればよいですか?


10

各セルに1つの単語が含まれているセルの列があるスプレッドシートがあります。いくつかの単語の出現を数えたいのですが。ほとんどの単語でCOUNTIF関数を使用できますが、単語が「true」または「false」の場合、0になります。

        A         B 
1     リンゴ2
 2     真0
 3     偽0
 4     オレンジ1
 5     リンゴ

上記のスプレッドシートの表では、セルB1、B2、B3、およびB4に次の数式があります。

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

ご覧のとおり、私はリンゴとオレンジを数えることができますが、真か偽かは数えられません。私もこれを試しました:

=COUNTIF(A1:A5,TRUE)

しかし、それも機能しません。

注-Excel 2007を使用しています。


3
価値があることについて、私はこれについて考えを変えました。Excelの数式は一種の宣言型プログラミング言語と見なすことができると思います。VBAを使用せずに完全なチューリングだとは思いませんが、どちらも正規表現ではなく、SOコミュニティでは受け入れ可能と見なされています!
マーティン・スミス

1
ワイルドカードソリューションを使用します。 「trudge」など、「true」または「trud」で始まる=COUNTIF(A1:A5,"<truf")-COUNTIF(A1:A5,"<=trud")すべての文字列をカウントします
スコット

1
ジェイ、この古い質問が新しい投稿のために再びポップアップしました。サイトの意図された構造を使って、質問のような混乱に答えを埋め込む。回答部分を回答に移動できますか?
fixer1234

回答:


5

これはうまくいくはずです:

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

ただし、trueの前にテキストが含まれている場合もセルがカウントされます。しかし、それはあなたにとって粗雑な回避策かもしれません。


1
良い提案-ワイルドカードについては考えていませんでした。2番目のCOUNTIFを使用して、たまたま「true」で終わる単語を除外できます。この式は機能します。= COUNTIF(A1:A5、 " true")-COUNTIF(A1:A5、 "?true")私はこの回答に賛成票を投じますが、これまでのところ、初心者は11人しか担当していません。(stackoverflowからは転送できません:-(
Jay Elston、

1
次に、別のバリエーションを示します=COUNTIFS(A1:A5, "tru?", A1:A5, "*e")
スコット

7

COUNTIF式の2番目の引数は、Excelによって実行されるテストとして解釈されます(たとえば、「> 3」と入力できます)。この場合、Excelが「true」と「false」の文字列を1と0に変換しているようです。これは元のテキストとは一致しません。

この問題について私が知っている唯一の解決策は、カウントを行うVBAコードを記述することです。

入力データの変更が許容できる場合は、「true」を「T」に、「false」を「F」に置き換えてから、に変更しCOUNTIF(A1:A5,"T")ます。

これをつまむとバトルをあきらめて入力データを変更しました。

PS:Excel 2003の使用-同じ問題


私の一時的な回避策はそのようなものでした-私は別の列を挿入し、数式を使用しました:IF(A1 = "true"、 "T"、IF(A1 = "false"、 "F"、 ""))をセルに入力しました。

うーん欲求不満を見ることができます。COUNTIF(A2,">=trud")COUNTIF(A2,"<=truf")両方が動作します。COUNTIF(A2,A2)考えられるバリアントはありません!
マーティン・スミス

と思われる=COUNTIF(G1,">=true")=COUNTIF(G1,"<=true") の任意の可能な入力の場合は0を返す常にCHAR(1)するCHAR(255)ものは何でも、それは完全に比類のないと思われるに変換されるようにします。データベースでのNULL比較のように機能しているようです。
マーティン・スミス

3

Excelでは、 "true / TRUE"と "false / FALSE"が数式で使用されている場合、それらは魔法の文字列として扱われるようです。これらは関数として扱われます。文字列ではなくTRUE()とFALSE()です。

列でtrueおよびfalseをカウントする必要がある場合、「true」または「= true」を基準として使用してもカウントされません。真と偽を単語として数えるために使用できるいくつかのアプローチがあります。

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

ワイルドカードのアイデアについてはSux2Loseに、trueまたはfalseのすぐ前後の文字列との比較を使用するアイデアについては、Martin Smithに感謝します。


0

次の式を使用できました。

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

の組み込みヘルプを読みCOUNTIFます。それらは条件で演算子を使用する能力をより詳細に説明します。


1
私にはうまくいきません。0を返します
マーティン・スミス

1
これも私にはうまくいきません。
ジェイエルストン

0

SUMPRODUCTフォーミュラでも同様の問題がありました。用語FALSEの前後の引用符を削除することにより、式はMS EXCEL 2003を使用して正しい結果を生成しました。


1
質問では、= COUNTIF(A1:A5、TRUE)を試して、2007バージョンのExcelを使用していたと述べました。
Jay Elston、2012

0

次の式を使用して問題を解決できました。

= COUNTIF(A1:A5、 "T *")。

"T*" 列のエントリが1つの "T"ワードのみに制限されている場合、 "True"を置き換えます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.