電子書籍の厳選無料作品が豊富!

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

やりたい事は同じ値が複数あるかをチェックしたいのですが、001と1が同じ値と見なされて困っています。

A 回答 (5件)

COUNTIF関数は第二引数を文字列で指定することになっていますので、数字も文字列数字も区別できません。


文字列と数字を区別した集計処理をするなら以下のような関数を使用する必要があります(”001”の部分はセル参照)。

=SUMPRODUCT(($A$2:$A$1000="001")*1)
    • good
    • 0

> 何か回避策はアルのでしょうか?


COUNTIFを使わないことでしょうね。無理にやるなら

=COUNTIF(A:A,1)-COUNTIF(A:A,"*01")

こうするくらいでしょうけど わざわざ計算できないもので計算
しようとするのは あまり意味がないように思います。

ピボットテーブルでも計算できるし 他の関数でも計算できます。
データベース関数でもいいし 小計機能でも大丈夫です。

色々ある機能の中で適したものを使うようにした方がいいと思い
ます。数式にこだわったり手段にこだわったりするのはお勧めし
ません。
    • good
    • 0

先頭に全部1を連結してから比較するのはいかがでしょうか。


同じ文字列なら、先頭に同じ値を連結しても同じですから。
    • good
    • 1

>やりたい事は同じ値が複数あるかをチェックしたいのですが、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の打鍵が必要です。
    • good
    • 0

COUNTIFを使用する以上はこれは無理です。


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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!