- ベストアンサー
エクセルのセル内の数字をカウントしたい・・
エクセルのカウントについて教えて下さい。 「5,6,7」や「10,11,15,20」などのように書かれたセルがあります。 カンマで区切られた数字の個数を自動的に数え別のセルにその結果を書き出したいのですが、 エクセルの数式だけでできますか? できればVBAは使いたくないと思います。 例:「5,6,7」なら"3" 、 「10,11,15,20」なら"4"と言う感じです。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんな式でどうでしょうか。 =LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+1 数字の間に必ず","が入るので","をスペースに置き換え 元の文字数との差を求め、","の数より数字の数が必ず1多いのでそれを足すという式です。
その他の回答 (3)
- K Kazz(@JazzCorp)
- ベストアンサー率31% (549/1751)
カンマを数えるのはチョットだけキケン! 10,20,,30,,, コレはナンと数える?? セパレータを空白文字に置換えることで有効な数字?の数が浮かび上がる、、、 対象セルがA2の場合、 =IF($A2="","",IF(LEN(SUBSTITUTE($A2,",","")),LEN(TRIM(SUBSTITUTE($A2,","," ")))-LEN(SUBSTITUTE($A2,",",""))+1,0)) ヒントはココ、、、 Excel 内のテキスト、文字、および 単語の出現回数をカウントする数式 http://support.microsoft.com/kb/213889/ja ~~~ 例 4: セル内のスペースで区切られた単語の数をカウントします。
お礼
ログイン認証で手間取りお礼が遅くなり申し訳ありません。 前の方の回答で処理が出来ましたので、申し訳ございませんが ベストアンサーは他の方に付けさせていただきました。 しかし、教えていただいた方法は良い良い方法として記録し、 今後の参考にさせていただきます。 お忙しい中本当にありがとうございました。
空白セルなら数字を表示したくないなら、ANo.1 akiomyau様のご回答にIF文をちょこっと付ければできますよ。 =IF(A1="","",LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+1) もし、空白セルなら0にするなら、以下です。 =IF(A1="",0,LEN(A1)-LEN(SUBSTITUTE(A1,",",""))+1) もしそれで役に立ち、それ以上の回答が出ないようなら、BAはakiomyau様へお願いします。私はちょこっと付け足しただけですので。
お礼
ログイン認証で手間取りお礼が遅くなり申し訳ありません。 希望の処理ができました! BAはakiomyau様へと言う事ですので 今回はそうさせていただきます。 お忙しい中本当にありがとうございました。
- choco_jiji
- ベストアンサー率31% (528/1701)
=find(",",A1)+1 ではどうでしょう。 A1を調べたいセルにして下さい。 そのセル内の,の数を返します。 数字の数は,+1個なので最期に+1をつけて。 注意点は全角","ではうまくいかないことです。
お礼
ログイン認証で手間取りお礼が遅くなり申し訳ありません。 他の方の方法で上手くいきました。 折角教えていただいたのに申し訳ございません。 今回教えていただいた事は違う場面で利用させていただきます。 お忙しい中本当にありがとうございました。
補足
ありがとうございます。 この方法ですと、セルに一つの数字の場合1が、 1,2ですと3に、1,2,3ですと3になってしまいました。
お礼
ログイン認証で手間取りお礼が遅くなり申し訳ありません。 希望の処理が出来て大変助かりました。 自分も勉強して皆さんのお役にたてるよう頑張りたいと思います。 お忙しい中、本当にありがとうございました。
補足
ありがとうございます。 殆ど問題なく欲しい結果が得られました。 しかし、セルに何も入ってない(空欄)の時にも1が 返ってきてしまいますが、これを回避する方法はないでしょうか。 お忙しい中恐れ入りますが、よろしくお願いいたします。