こんにちは。
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ランキング
-
【スプレドシート】IMPORTRANGE...
-
英数字のみ全角から半角に変換
-
会社のOutlookにてメールを予約...
-
マクロ自動コピペ 貼り付ける場...
-
「生産性ソフトウェア」とは何...
-
エクセルでXLOOKUP関数...
-
会社PCのメールが更新されない
-
Microsoft familyに追加されま...
-
大学のレポート A4で1枚レポー...
-
無料のオフィス互換ソフトの使...
-
Microsoft 365 の一般法人向け...
-
outlookのメールが固まってしま...
-
マイクロソフトオフィス
-
Outlook で宛先が複数の場合の人数
-
Outlook 電源OFFの受診の仕方
-
EXCELのセルへの色づけ
-
Microsoft365の一部を解約したい
-
vb.net オブジェクト指向につい...
-
Office 2021 Professional Plus...
-
マイクロソフト オフィスについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
英数字のみ全角から半角に変換
-
Excelで空白以外の値がある列の...
-
会社PCのメールが更新されない
-
Excel 日付を比較したら、同じ...
-
マイクロソフト 一時使用コード...
-
ウィンドウィズ メモ帳で日付だ...
-
MicrosoftOfficeの1ユーザー2...
-
Microsoft Formsの「個人情報や...
-
Officeの字体
-
エクセルでXLOOKUP関数...
-
Microsoft365で自動保存が出来...
-
Outlookで、任意のメールアドレ...
-
outlookのメールが固まってしま...
-
Microsoft 365 の一般法人向け...
-
Office2021を別のPCにインスト...
-
Microsoft 365のディフェンダー...
-
Excelに貼ったリンクについて E...
-
MicrosoftOffice2019なんですが、
-
Outlook で宛先が複数の場合の人数
おすすめ情報