• ベストアンサー

セル範囲の文字数カウントについて

セル内の文字数ではなく、複数のセルの特定の文字を数えたいのですが、良い方法はありませんでしょうか? 例として A1からC1までのセルに「AB,C,DED,DED」という文字を、それぞれ3つのセルに同じ内容を入力しています。 数えたい文字は、DEDという文字です。理論上は、一つのセルにDEDという文字が2個存在し、それを三つの セルでカウントするので、DEDが6個存在するという事になります。 これを関数でカウントする方法を教えて頂けませんでしょうか。 DEDという文字を特定のセルE1に入力しておき、E1のセルを参照させる という方法でも構いません。申し訳ありませんが、どうか宜しくお願い致します。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

ちょっと珍しい問題と思うので、色々質問者の場合でテストしてみてください 例データ A1:C1 ABCDDCDD  ABCDDCDD  ABCDDCDD F1に DD ーー 結果を出すセルで =SUM((LEN(A1:C1)-LEN(SUBSTITUTE(A1:C1,"DD","")))/LEN(F1)) と入れてSHIFT,CTRL,ENTERの3つのキーを同時押しする。 配列数式という。 ーー 式の意味は (A)A1の値をDDを空白(なきもの、削除)で置き換える。 DDの分だけ文字の長さが減る。DDの文字の長さで割ると1セルに何回あったかわかる。 (B)それをA1:C1の範囲で行い各セルの回数を足す。こういうこと(後半(B)のこと)を配列数式はやってくれます。 DDとDDDは違う扱いをすると考えると、VBAでも使わないと出来ないように思う。

tshigeo2000
質問者

お礼

ご回答ありがとうございます。出来ました。こうも簡単に出来るとは 思いませんでした。また、式の意味を丁寧に記載して頂いてわかりや すい内容でした。

tshigeo2000
質問者

補足

すみません、更に追加で教えて下さい。A列の左側に更に列を 増やして、日付を入力し、特定の日付のみのカウントもしくは、 特定の範囲の日付でカウントをする方法がわかれば教えて頂け ませんでしょうか。 度々、申し訳ありません。宜しくお願い致します。

その他の回答 (1)

  • izmlz
  • ベストアンサー率55% (67/120)
回答No.1

=SUMPRODUCT((LEN(A1:C1)-LEN(SUBSTITUTE(A1:C1,"DED","")))/LEN("DED")) でいかがでしょうか? ↓は参考ページです。 エクセル技道場-セル内の単語数カウント http://www2.odn.ne.jp/excel/waza/function.html#SEC12

参考URL:
http://www2.odn.ne.jp/excel/waza/function.html#SEC12
tshigeo2000
質問者

お礼

ご回答ありがとうございます。こういう記載方法もあるんですね。 また、Webのエクセル技道場に記載があるのは知りませんでした。 別の問題があったときに、是非参考にしたいと思います。

tshigeo2000
質問者

補足

すみません、更に追加で教えて下さい。A列の左側に更に列を 増やして、日付を入力し、特定の日付のみのカウントもしくは、 特定の範囲の日付でカウントをする方法がわかれば教えて頂け ませんでしょうか。 度々、申し訳ありません。宜しくお願い致します。

関連するQ&A