【アプリ版】サポートOS変更のお知らせ

A列に20桁の数字ばかりの「文字列」が入ったセルが1000行ほどあります。
A列の書式は文字列に設定してあります。
特定のセルの中身が重複してないことを確認しようと。
B1=COUNTIF(A:A,A1)
のようにしたところ、うまく動きませんでした。
調査したところセル先頭から15文字までしか認識してくれません。
文字列扱いして欲しいのですが、数字ばかりなのが気に入らないようです。
数字だけのまま20桁認識させる方法は無いものでしょうか?

「Excel2010のCOUNTIF関数で」の質問画像
gooドクター

A 回答 (4件)

>調査したところセル先頭から15文字までしか認識してくれません。


文字列データでも比較するときに数値化が可能な値は数値として扱うためと考えられます。
有効数字の桁数に係わる問題化と思います。

>文字列扱いして欲しいのですが、数字ばかりなのが気に入らないようです。
何処かに英字や記号が有れば純粋に文字列として扱われますので桁数の制限を避けられるでしょう。

>数字だけのまま20桁認識させる方法は無いものでしょうか?
COUNTIF関数ではできないみたいです。
SUMPRODUCT関数、SUM関数で配列を前処理することでカウントできます。

前処理は次の式になります。
(A:A=A1)*1
次の3つの式は正しくカウントできています。
=SUMPRODUCT((A:A=A1)*1)
=SUM(INDEX((A:A=A1)*1,,1))
=SUM((A:A=A1)*1)
3番目のSUM関数の場合は数式の確定時にCtrlとShiftを押しながらEnterキーの打鍵が必要です。
「Excel2010のCOUNTIF関数で」の回答画像3
    • good
    • 5
この回答へのお礼

回答ありがとうございます。
確かにCOUNTIFでは無理そうですね。
おお‥‥No.2さんの回答に加えてさらに方法があるとは目から鱗です。
情報の提供に感謝します。

お礼日時:2014/10/03 18:24

完全に文字列扱いになる作業列を作ればCOUNTIFが使えます。


添付の図ではC1セルに↓の式を入れ、下にコピーしています。
="_"&A1

B1セルには =COUNTIF(C:C,"_"&A1) です。
「Excel2010のCOUNTIF関数で」の回答画像4
    • good
    • 2
この回答へのお礼

回答ありがとうです。
確かに数字以外の文字を入れるとうまく動くんですよね‥‥。
表計算ソフトなので数字のみのセルは数字として優先判断してそうです。

お礼日時:2014/10/03 18:17

千行程度であれば


=SUMPRODUCT((A$1:A$1000=A1)*1)
以下コピー
で計算してみます。

この式では$A:$Aとかで計算してはいけません。
    • good
    • 1
この回答へのお礼

回答ありがとうです。
なるほど、これはうまいですね。
1つ賢くなりました。感謝。

お礼日時:2014/10/03 18:20

比較するときに文字列を加えてみてはいかがでしょう。


COUNTIF($A1:A1,A1&"")
とか。
(スプレッドシート型の表計算ソフトは16桁での計算ですから認識できる数値は15桁までってのは仕様なのでしかたないですね。)
なお、手元にExcelを動作させる環境がありませんので数式の動作は未確認です。
思ったように動作しないかもしれません。
    • good
    • 0
この回答へのお礼

回答ありがとうです。
残念ながらご提示の方法ではうまくいきませんでした。
文字列にキャストできるといいんですけどね‥‥。

お礼日時:2014/10/03 18:12

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

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング