COUNTIF は 2 件、画面には 4 件(見えない空白)
問題
問題文
A2:A6 では4人が East ですが、単純な COUNTIF では2人しか見つかりません。書き出しの際に末尾の空白が付き、1件は小文字になっています。実際の East の件数を East count セル D2 に入れてください。
地域の列は編集せず、式の中で整えてください。
問題のデータ
表でデータ全体を見る(選択・コピーできます)
| A | B | D | |
|---|---|---|---|
| 1 | Region | Rep | East count |
| 2 | East | Ada | |
| 3 | East | Ben | |
| 4 | West | Cleo | |
| 5 | East | Dan | |
| 6 | east | Eli |
ポイント解説
COUNTIF は文字列を完全一致で比べます(大文字小文字は区別しません)。ただし末尾に空白があると "East " は別の文字列です。SUMPRODUCT の中で TRIM してから比べれば正規化でき、= は大文字小文字を区別しません。COUNTIF のワイルドカード("east*")も短く書けますが、"Eastern" も数えてしまいます。
解き方のヒント
回答は D2 に入力します。送信時は 3 通りの入力で数式を再実行するので、数値を直接書くと必ず失敗します。数式はセルを参照してください。
- 対象セルは D2
- A2 を見ると East の後ろに空白がある
- 各セルを TRIM してから "East" と比べる
- 形:=SUMPRODUCT(--(TRIM(?) = ?))
模範解答
模範解答を表示(2 通り・まずは自分で試してみましょう)
方法1:TRIM して配列で比較
=SUMPRODUCT(--(TRIM($A$2:$A$6) = "East"))
TRIM が末尾の空白を除き、比較が TRUE/FALSE を作り、二重のマイナスが 1 に変えます。小文字の1件も含めて4行が一致します(= は大文字小文字を区別しないため)。
方法2:COUNTIF とワイルドカード
=COUNTIF($A$2:$A$6, "east*")
アスタリスクが "east" 以降を吸収するので、末尾の空白は問題になりません。短く書けますが、"Eastern" も数えてしまうため、そうした名前を含む地域リストでは危険です。
関数ガイド
よくある質問
見えている値なのに COUNTIF が 0 を返すのはなぜ?
保存されている文字列が見た目と違うためです。末尾の空白、非改行スペース、文字列になった数値がよくあります。TRIM するか、ワイルドカードで照合します。
Excel の文字列比較は大文字小文字を区別しますか?
しません。COUNTIF と = は区別しないため、"east" は "East" と一致します。区別が必要なら EXACT を使います。