• ベストアンサー

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

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

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答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

  • 特定のセル範囲で4文字以上入力されているセルの数をカウントしたい

    特定のセル範囲で4文字以上入力されているセルの数をカウントしたいと思っています。 VBAで記述すれば簡単なことだと思いますが、これくらいなら関数でもできそうだと思い チャレンジしてみましたが挫折しました…。 関数の引数に「A1:C5」などという感じで範囲を指定する記述で できれば短くシンプルな記述を希望しています。 よろしくお願いします。

  • エクセルでスペース入力セルをカウントしない方法

    counta関数で、セルに何らかの文字、数字が入力されているセルの個数をカウントできますが、スペースが入力されているセルもカウントされてしまいます。 スペース(複数回入力されている場合も)が入力されているセルをカウント対象外とする方法はありますか?

  • EXCEL、文字の数をカウントしたい。

    エクセル関数を使って、文字(100文字以上)の数をカウントしたいのですが、可能でしょうか。 例えば:セルに一つずつ、ABCAAACDを入力した場合に、A=4、B=1、C=2、D=1 のように表示したいんです。 ※Aを数える場合に、IF関数を使ってAのとき1となるように IF(A1="A",1)+IF(A2="A",1)+・・・+・・・のように順次足していけば短い文字であれば可能ですが、文字数が多くなってくると、セル内に関数がはいりきらずに計算できなくなります。別の関数をつかってより簡単に計算できないでしょうか?

  • Excelで飛び飛びのセルにある文字をカウントする

    jcb3092と申します、教えて下さい。 Excel2002を使用しています 飛び飛びに離れた場所のセルに入っている特定の文字 例えば"○""×""△"等を指定してカウントする関数がありまし らご教授頂けますようお願い申し上げます。

  • エクセルにて結合セルの範囲を参照するには?

       A B C D E F 1 |フォード| 2 |BMW | 3 |ホンダ | 各行A列~C列3つを結合入力 4 |ルノー | 5 |DFR  | 6 |ベンツ |  上記のようなエンジンメーカー表にて、A1~C1,A6~C6間にF1へエンジンを供給しているメーカー名がA~Cの3つのセルを結合して入力されているとします。  このような表を用いて別のワークシートから、このエンジンメーカーの入力セルの文字列を参照したいのですが、  フォードの場合ですと、=’エンジンメーカー表’!A1:C1と表示され、エラー値VAULEが返され、参照したい文字列が返りません。  結合されている3セルに範囲名をつけてINDIRECT関数で参照すれば出来るのですが、結合セルの項目が多過ぎて、いちいち、名前をつけていられないのです。  また、表のセル結合を崩せないのです。(同じフォーマットで作られている表が多数存在のため) このような単一セルでなく、複数のセル範囲を結合して入力されている文字列を簡単に=で参照する方法は無いでしょうか?

  • 同じセル内にある特定の文字をカウントする方法

    一つのセルに、複数の単語が”、”で区切られて入力されているときのカウント方法を教えてください。 図のように、1つのセルに複数の単語が入っています。 1セル内に入っている単語をそれぞれカウントするにはどうしたらよいでしょうか。 よろしくお願いいたします。

  • Excelで任意の文字を含むセルの1つ下のセルを文字カウント

    関数初心者です。 Excelで任意の文字を含むセルの1つ下のセルを文字カウントする、シンプルでスマートな方法はないでしょうか? 具体的には      A列 1行目 @: インデックス1 2行目 この行の文字数をカウント 3行目 <空白行> 4行目 @: インデックス2 5行目 この行の文字数をカウント 上記のようなケースで「@:」を含むセルの1つ下の行(2,5行目の文字数をカウントしたいのです。 現状では、以下のような不細工な方法でやっています: A列の左隣に列を3つ挿入し(オリジナルのA列がD列になります)、C1に「=FIND("@:", D1)」とした上で関数を最終行までコピー→この例では1,3行目に「1」と表示されます 次にB2に「=IF(C1=1,"TRUE","")」と入力し、これを最終行までコピー→この例では2,5行目に「TRUE」と表示されます 最後にB列にオートフィルタをかけ、TRUEの行だけ表示したうえで、A1に「=LEN(A1)」と入力して、これを最終行までコピーしています→これで、2,5行目の文字数がカウントされます こんなヘタクソな方法ではなく、1つの関数で綺麗に同じ結果を得る方法はないでしょうか? もっと勉強すれば、自分でも出来るかもしれませんが、今すぐ必要なのでどうかご教示ください。

  • 値を参照した数のカウント

    はじめまして。 大至急集計しなければならない表があって困っています。 (見づらくてすみません)  A | B| C | D | E | F | 1 あ あ い  あ   い  あ 2 ○   △     ○ 3  ○ 4         △ のように入力されています。 1行目は分類です。「あ」「い」しか存在しません。 ○は2点、△は1点でカウントしたいのですが、 1の列で「あ」の分類のものの点数の合計を出したいのです。 上の例で言えば2で「あ」は2点、「い」は3点、と出したいのです。 単純に1の行の○の合計とかであれば問題ないのですが 別のセルを参照しなければいけない場合の関数が分かりません。 宜しくお願いいたします。

  • excelで文字数をスペースを除いてカウント

    シート内に入力した文字数をカウントしたいのですが、 1つのセルに『木村 拓哉』のように姓名の間に半角スペースが 入っています。この半角スペースを無視して文字数をカウントするには どのような関数が適していますか? LEN関数を使うと、スペースも1文字としてカウントされてしまいます。 宜しくお願い致します。

  • セルに入力されている文字をくっつけたい。

    エクセル2010です。 よろしくおねがいします。 セルE15~E23に入力されている文字を ひとつにくっつけて 表示したいんですが・・・ 全部文字が入力されているときも あるのですが 入力がないときまあります。 その場合は D1には 何も表示しないようにしたいのです。 例えば E15にA       E16にB      E17にC  E18~E23は入力なしとして D1に ※文字です。→A・B・C と 一つのセルに表示させるには どういう関数になりますでしょうか? よろしくお願いします。

専門家に質問してみよう