セルの列があり、各セルに1つの単語が含まれているスプレッドシートがあります。いくつかの単語の出現を数えたいと思います。ほとんどの単語でCOUNTIF関数を使用できますが、単語が「true」または「false」の場合、0になります。
あB1 りんご2 2 真0 3 false 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)
しかし、それも機能しません。
注-私はExcel2007を使用しています。
これは機能するはずです:
=COUNTIF(A1:A5,"*true")
ただし、trueの前にテキストが含まれている場合もセルがカウントされます。しかし、それはあなたにとって大雑把な回避策かもしれません。
COUNTIF数式の2番目の引数は、Excelによって実行されるテストとして解釈されます(たとえば、「> 3」と入力できます)。この場合、Excelが「true」と「false」の文字列を1と0に変換しているようです。これは元のテキストとは一致しません。
この問題について私が知っている唯一の解決策は、カウントを行うVBAコードを記述することです。
入力データの変更が許容できる場合は、「true」を「T」に、「false」を「F」に置き換えてから、COUNTIF(A1:A5,"T")
に変更します。
これにつまずいたとき、戦いをあきらめて入力データを変更しました。
追伸:Excel2003の使用-同じ問題
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のすぐ上と下の文字列との比較を使用するアイデアを提供してくれたMartinSmithに感謝します。
次の式を使用できました。
=COUNTIF(A1:A5,"=apples")
=COUNTIF(A1:A5,"=true")
=COUNTIF(A1:A5,"=false")
=COUNTIF(A1:A5,"=oranges")
COUNTIF
の組み込みヘルプを読みます。それらは、条件で演算子を使用する機能をより詳細に説明します。
次の式を使用して問題を解決することができました。
= COUNTIF(A1:A5、 "T *")。
"T*"
列のエントリが1つの「T」ワードのみに制限されている場合、「True」を置き換えます。
SUMPRODUCT数式でも同様の問題が発生しました。 FALSEという用語の前後の引用符を削除することにより、MS Excel 2003を使用して、数式は正しい結果を生成しました。