• ベストアンサー

文字列を使ったcountifの実施について

こんにちは。アベです。 Excelで文字列を使ったcountifみたいなことをしたいのですが、可能でしょうか? セルの内容が   1   001   0001 という風にあった場合、データの存在チェックでcountifを使用しているのですが、 0001と1が同値と見なされて困っています。何か回避策はアルのでしょうか? やりたい事は同じ値が複数あるかをチェックしたいのですが、001と1が同じ値と見なされて困っています。

質問者が選んだベストアンサー

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.4

COUNTIF関数は第二引数を文字列で指定することになっていますので、数字も文字列数字も区別できません。 文字列と数字を区別した集計処理をするなら以下のような関数を使用する必要があります(”001”の部分はセル参照)。 =SUMPRODUCT(($A$2:$A$1000="001")*1)

その他の回答 (4)

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.5

> 何か回避策はアルのでしょうか? COUNTIFを使わないことでしょうね。無理にやるなら =COUNTIF(A:A,1)-COUNTIF(A:A,"*01") こうするくらいでしょうけど わざわざ計算できないもので計算 しようとするのは あまり意味がないように思います。 ピボットテーブルでも計算できるし 他の関数でも計算できます。 データベース関数でもいいし 小計機能でも大丈夫です。 色々ある機能の中で適したものを使うようにした方がいいと思い ます。数式にこだわったり手段にこだわったりするのはお勧めし ません。

回答No.3

先頭に全部1を連結してから比較するのはいかがでしょうか。 同じ文字列なら、先頭に同じ値を連結しても同じですから。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.2

>やりたい事は同じ値が複数あるかをチェックしたいのですが、001と1が同じ値と見なされて困っています。 COUNTIF関数では文字列の"1"、"01"、"001"等の値は数値の 1 として判断されますので正しい計数ができません。 SUMPRODUCT関数であれば文字列同士の比較として計数できます。 =SUMPRODUCT((A:A="1")*1) 他にSUM関数とINDEX関数を組み合わせる手法もあります。 =SUM(INDEX((A:A="1")*1,0)) 配列数式をご存知なら次の数式でも可能です。 =SUM((A:A="1")*1) 但し、この数式を確定するときはCtrl+Shift+Enterの打鍵が必要です。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

COUNTIFを使用する以上はこれは無理です。 データの頭に記号をくっつけた作業列を用意するぐらいしか方法がありません。 COUNTIFでデータの存在チェックをするのは難しいです。 ピボットテーブルかフィルタで処理してはいかがでしょうか。