
こんにちは。
COUNTIF関数で質問があります。
以下のようなデータがあります。
A列にデータ、B列にCOUNTIF関数が入っていてその結果を返しているとします。
(いずれも1行目~6行目までにデータが入っています)
(A列) (B列)
<1>りんご 2(=COUNTIF($A$1:$A$6,A1))
<2>みかん 2(=COUNTIF($A$1:$A$6,A2))
パイナップル 1(=COUNTIF($A$1:$A$6,A3))
桃 1(=COUNTIF($A$1:$A$6,A4))
りんご 1(=COUNTIF($A$1:$A$6,A5))
アボカド 1(=COUNTIF($A$1:$A$6,A6))
疑問なのは、厳密に言うと上の条件だとB列は全部1になるのではないかと思ったのに、なぜ1・2行目は2を返してくるのでしょうか、ということです。
<1>や<2>が頭についたものでそのようになっているので、これは何か意味があると思いました。
どのような意味を持つのでしょうか。
また、<1とか<をつけても自分が思っていたような結果が返ってこないので、そもそも上のような例で<がつくとどういうことになるのでしょうか。
大変お手数ですが、よろしくお願いいたします。
No.4ベストアンサー
- 回答日時:
> どうして=を入れるとうまくいくのですか?
> =を入力することで完全に一致するデータをカウントしてくれるようになるのですか?
すでに申し上げているように、バグと思われますので、正確な説明は
そもそも無理があることを予め申し上げておきます。
ですので、以下の説明は私の個人的な「予測」とご理解下さい。
元の式
=COUNTIF($A$1:$A$6,A1)
は、
=COUNTIF($A$1:$A$6,"<1>りんご")
と同じように動作しますね。
これは不等号、< と > が入っているので、Excelは"<1>りんご"を
単なる文字列ではなく、条件式と解釈していると考えられます。
(その解釈の仕方が間違っている点が不具合=バグなわけですが)
それで、その問題となっている不等号の前に、= をつける、つまり
=COUNTIF($A$1:$A$6,"=<1>りんご")
となると、条件式の解釈が「イコールより右側と等しいかどうか」
となるわけです(たぶん)。
つまり「<1>りんご」を条件式ではなく、文字列と見なした動きになって
くれるのです(たぶん)。
ということで、ご納得頂けるでしょうか。
添付画像の例を見て頂ければ、=をつけることで、セル参照が文字列の
扱いに変化する事がご理解頂けるかと思います。

kigoshiさん、再びのコメントをありがとうございます。
添付画像までつけていただいて、本当にありがとうございます。
関数のバグということであくまでもkigoshiさんのご意見ということで理解いたしました。
ありがとうございました。
No.3
- 回答日時:
私もCOUNTIF関数のバグではないかと思います。
回避策の一例として
=COUNTIF($A$1:$A$6,A1)
↓
=COUNTIF($A$1:$A$6,"="&A1)
とする方法があります。
ご参考になれば。
kigoshiさん、コメントありがとうございました。
回避策の一例を試したら、本当にうまくできました!
どうしてですか?
どうして=を入れるとうまくいくのですか?
=を入力することで完全に一致するデータをカウントしてくれるようになるのですか?
お手数ですが、もしよろしければ教えていただけますでしょうか。
No.2
- 回答日時:
COUNTIF関数ではセルに入力されている文字列などの最初に<,>,<>,=,+,-などの演算子と呼ばれる記号が入力されている場合には、セル内のデータを単なる文字列を数えることとは違ってきますね。
お示しのデータの場合にはB1やB2セルの式では演算子で始まるデータがA1セルからA6セルの間で2か所のセルであることから2となっているようですね。
<1の場合には1未満のデータの数を表示しますね。
いずれにしてもCOUNTIF関数で引数としての条件でセルを指定する場合には演算子で始まるセルを指定することは避けることでしょう。
KURUMITOさん、コメントありがとうございました。
<1>のような入力が演算子とみなされてしまうんですね。
気をつけたいところですが、使用しているシステムの仕様上それを排除した状況をつくることができないのでもう一段階処理を加えることになりそうです。
ありがとうございました。
No.1
- 回答日時:
マイクロソフト社に問合せしてください。
=COUNTIF(範囲,検索条件)
検索条件には、等号、不等号を使えるので、EXCEL本体の条件解釈がおかしくなっているようですね。
(例)2未満のセル数 =COUNTIF($A$1:$A$6,"<2")
ちなみに、こちらの環境(Microsoft Excel 2007)でも再現したので。
取りあえず回避するのであれば、等号、不等号以外の記号(例えば、普通のかっこ”()”など)に置き換えてみるのはどうでしょうか。
※昔、新バグを発見するとボールペンが貰えたりしてた。。。
w_HIRO_wさん、コメントありがとうごぁいます。
マイクロソフトに問い合わせするような事例なのですね。
全くそのような発想がありませんでした。
バグの可能性があるのですね。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Countifよりも早く重複数をカウントする方法ありますか? 18 2022/07/04 13:39
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- Excel(エクセル) If関数に関する質問です。(再掲) 3 2022/10/01 20:51
- Excel(エクセル) マクロでセル内の数式に一部分の数式をさらに追加したい 1 2023/07/19 18:59
- Excel(エクセル) ExcelのCOUNTIF関数について COUNTIF関数を使って1の目の累積回数を計算したいのです 3 2023/06/13 22:41
- Excel(エクセル) 『シフト表自動化の作成について』 1 2022/06/02 00:45
- Excel(エクセル) エクセルの数式を等間隔にオートフィルできるやり方を教えていただきたいです。 実際の作業↓ A3セルに 7 2023/06/05 19:04
- Excel(エクセル) GASで重複データの件数ではなく、何番目かを求める方法について 2 2022/12/10 14:56
- Excel(エクセル) 複数のセルでの文字判定について 5 2022/06/07 14:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Microsoft Officeを2台目のPCに...
-
Microsoft365、ページ設定がで...
-
大学のレポート A4で1枚レポー...
-
libreoffice calcで行を挿入し...
-
快活CLUBについて 私用で使う書...
-
Office2021を別のPCにインスト...
-
エクセルで特定のセルの値を別...
-
エクセルVBAで1004エラーになり...
-
Microsoft Formsの「個人情報や...
-
セルの文を上書きせずに、別の...
-
エクセル:一定間隔で平均値を...
-
マクロ自動コピペ 貼り付ける場...
-
マイクロソフト 一時使用コード...
-
時間の平均値を計算する方法を...
-
エクセルマクロ(超初心者)
-
MSオフィス2013にMS365が上書き...
-
Microsoft Office Homeインスト...
-
表の作成について
-
エクセル ○○以上○○以下の関数を...
-
Excelで〇のついたものを抽出し...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Microsoft Officeを2台目のPCに...
-
Office2021を別のPCにインスト...
-
大学のレポート A4で1枚レポー...
-
Microsoft365について
-
outlookのメールが固まってしま...
-
英数字のみ全角から半角に変換
-
Office 2021 Professional Plus...
-
エクセルVBAで1004エラーになり...
-
エクセルで特定のセルの値を別...
-
MSオフィス2013にMS365が上書き...
-
Microsoft Formsの「個人情報や...
-
【Excel VBA】PDFを作成して,...
-
別シートの年間行事表をカレン...
-
office2019 のoutlookは2025年1...
-
マクロ自動コピペ 貼り付ける場...
-
表の作成について
-
office365 回復できない。
-
マイクロソフト 一時使用コード...
-
Teams内でショートカットって貼...
-
Microsoft Office Homeインスト...
おすすめ情報