アプリ版:「スタンプのみでお礼する」機能のリリースについて

Excel2010を使っている者です。

COUNTIF関数で特定の文字列を含むセルの数をカウントしたいのですが、結果がゼロになってしまいます。

具体的には
A列の1行目から900行目までに以下のように番号が振ってあって、その中で1994を含むセルの数を数えようと思っています。
計算式として「=COUNTIF($A$1:$A$900,"1994")」と入力したのですが、戻り値が0になってしまいます。
なお、A列は数値にしても文字列にしても結果は変わらず、「=COUNTIF($A$1:$A$900,"1994*")」とワイルドカードを使った検索にしても同じく0になってしまいます。

1994000001
1994000002
1994000005

2009111112
2009111117


もう一つ関連した質問をさせていただきますが、そもそもこの関数で特定の文字列を含む検索をかけたいときは、ワイルドカードの*を使わないとうまく計算できないものなのですか?

よろしくお願いいたします。

A 回答 (11件中1~10件)

>ただ、そういった工夫なしで照合ができると大変便利なのですが・・



工夫と言うほどでもないとは思いますが(^_^;)
まぁ、元データを文字列に変えてしまってもかまわないのであれば

A列を選択→データ→区切り位置→次へ→次へ→列のデータ形式で文字列を選択→完了

で一度に文字列になります。
    • good
    • 0
この回答へのお礼

ありがとうございます。
大変助かりました。

もう一つ伺ってもよいでしょうか・・

ホームリボンから数値タブの中で値の書式を変更しても(又は右クリックからセルの書式設定)、表示形式が変わるだけでデータの型は常に変わらないのでしょうか?
変わる場合とそうでない場合があるとしたら、どのような分け方なんでしょうか?

お礼日時:2012/12/17 14:26

NO8です。


>何度かエクセルを終了して起動するを繰り返すと反映されるというようなことでしょうか?
 ⇒ブックのオープン/クローズには関係なく、セルを編集モードで更新(セルのダブルクリックやデータ再入力等)しないと反映されないという事です。
    • good
    • 0
この回答へのお礼

ありがとうございます。
すっきりしました。

お礼日時:2012/12/18 09:29

>ただ、そういった工夫なしで照合ができると大変便利なのですが・・



 それでしたら作業列を設けて以下の様にされると良いと思います。
 今仮に、それらの数値がSheet1のA1~A900に入力されているものとして、Sheet2のA列を作業列として使用するものとします。

 まず、Sheet2のA1セルに次の関数を入力して下さい。

=INDEX(Sheet1!$A:$A,ROW())&""

 次に、Sheet2のA1セルをコピーして、Sheet2のA2~A900の範囲に貼り付けて下さい。
 これで、Sheet2のA列には、Sheet1のA列の値を文字列データに変換した値が返されますから、特定の文字列を含むセルの数をカウントした結果を表示させるセルに、次の関数を入力されると良いと思います。

=COUNTIF(Sheet2!$A$1:$A$900,"1994*")
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2012/12/18 09:28

>以下の質問についてはどうでしょうか?



基本的に、Enterで確定しない限りは表示形式を変更してもデータ型は変わりません。
(つまり、ダブルクリックやF2で編集状態→Enterするなど)

データ型を変えるのでしたら区切り位置機能が一番手っ取り早いと思います。
知っているのと知らないのとでは作業効率に天と地ほどの差があります。

ところで、SUBTOTAL関数をお調べになってみるのもいいかもしれません。
オートフィルタでも集計できますよ。
    • good
    • 0
この回答へのお礼

ありがとうございます。

大変参考になりました。

お礼日時:2012/12/17 16:32

データの文字列と数値について学習しましょう。



数値なら、=COUNTIFS(A1:A900,">1994000000",A1:A900,"<1995000000")で計数可能ですよ。
因みに文字列ならば、ご例示の通りです。

又、セルの表示形式を文字列にする操作は、直ぐに反映されませんので次の方法をお試し下さい。
A1:A900を選択→データ→区切り位置→次へ→次へ→列のデータ形式欄で文字列を選択→完了

>そもそもこの関数で特定の文字列を含む検索をかけたいときは、
>ワイルドカードの*を使わないとうまく計算できないものなのですか?
 ⇒特定の文字列を含むという事なら当然です。
 
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考になりました。

>又、セルの表示形式を文字列にする操作は、直ぐに反映されませんので次の方法をお試し下さい。
A1:A900を選択→データ→区切り位置→次へ→次へ→列のデータ形式欄で文字列を選択→完了

直ちに反映されないとは、何度かエクセルを終了して起動するを繰り返すと反映されるというようなことでしょうか?

お礼日時:2012/12/17 16:29

「そういった工夫なしで照合ができる」方法


{=COUNT(FIND(1994,A1:A900))}
(配列数式)
    • good
    • 0
この回答へのお礼

ありがとうございます。

しかし、その方法でも集計できませんでした。

お礼日時:2012/12/17 16:27

文字列に変換、簡単でしょ?


B列をコピーして値だけA列に貼り付けるコトもできる。
B1:
=TEXT(A1,"0000000000")
C1:
=COUNTIF($B$1:$B$900,"1994*")
    • good
    • 0
この回答へのお礼

ありがとうございます。

>B1:
=TEXT(A1,"0000000000")


とのことですが、0というのは文字列の書式を表すということなんでしょうか。
また、桁数と同じだけ0を入力しないといけないのですか?

お礼日時:2012/12/17 16:19

あ、逆?? 文字列→数値?



最後の文字列のチェックを標準にして下さい。(何もしなくても最初は標準がチェックされてると思いますが)

ところで、オートフィルタとかじゃ駄目なのかしら。
(いや、駄目なんでしょうね。きっと)
    • good
    • 0
この回答へのお礼

いえ、数値から文字列で良かったです。

オートフィルタじゃだめだと思います。
(集計機能がついてないので)

ところで、先ほどの以下の質問についてはどうでしょうか?
どなたかわかる方がいたらお願いします。

「ホームリボンから数値タブの中で値の書式を変更しても(又は右クリックからセルの書式設定)、表示形式が変わるだけでデータの型は常に変わらないのでしょうか?
変わる場合とそうでない場合があるとしたら、どのような分け方なんでしょうか?」

お礼日時:2012/12/17 14:55

》 A列は数値にしても文字列にしても結果は変わらず、…


それはウソでしょ?
元々数値が入っているセル(範囲)の書式を“文字列”に変更した結果だけで、「文字列にしても」と仰っているのでしょ?(その操作だけではまだデータは文字列になっていない!)
最初から“文字列”書式に設定したセル(範囲)に数字を打ち込んだ場合を試してみてください。あるいは、標準書式のセル(範囲)にアポストロフィを打ち込んでから数字を打ち込んだ場合も試してみてください。
    • good
    • 1
この回答へのお礼

ありがとうございます。

確かに、文字列として打ち込んだ値のときはcountifの関数で集計できました。

どうすれば文字列を数値に完全に変換できるのでしょうか?
そういった方法があればよろしくお願いいたします。

お礼日時:2012/12/17 13:43

A列は数値ですね?



=COUNTIF(A1:A900,">=1994000000")-COUNTIF(A1:A900,">=1995000000")

とかでは如何でしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございます。

ただ、そういった工夫なしで照合ができると大変便利なのですが・・

お礼日時:2012/12/17 13:42

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