- ベストアンサー
☆エクセルの文字数の集計☆
エクセルで表を作成しました。 その中の2列は感想文を入力したのですが、入力した文字数をカウントしてほしいと言われてしまいました。 300名分ありますので、1文字づつ数えるのは気の遠くなる作業です。 何かを操作して、表計算のように一括で文字数が合計されるような 技はあるのでしょうか? 明日までにやらなければなりませんので大変困っています。 ご存知の方がいらっしゃいましたら、大至急教えていただけませんか? 恥ずかしながら、当方初心者ですので、 出来るだけ簡単に説明して下さると大変助かるのですが・・。 宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
セルに入力された文字数をカウントする・・・ 関数を使って文字数をカウントする場合、人間が目で見て数える個数と一致させるべきだと思います。 セルの書式設定→配置タブで『折り返して全体を表示する』にチェックを入れておくと、 『とてもおもしろい本だった。』をセルに入力(『』はなしとして)して、このセルが9文字分のセル幅しかなければ、 『とてもおもしろい本 だった。』 と表示されます。この場合、文字数は『。』も含めて13文字です。LEN()ででます。 『とてもおもしろい本だった。』を入力する時に、意識的に改行して(Alt+Enterです) 『とても おもしろい 本だった。』 としたとします。この場合、LEN()を使うと、文字数は『。』も含めて15文字です。 これを人間が数えると(見た目)13文字になるはずです。このように、意識的にセル内で改行した場合も改行しなかったように数える方法が回答した算式です。 『とても おもしろい 本だった。』←これがセルA1に入力されているとします。 がどのような文字列になっているか調べると、=CODE(MID(A1,4,1)) で『10』が表示されます。 『とても』と『おもしろい』の間の4文字目は、コードが10の文字ということになります。 これは、ラインフィード文字(改行。Excelのワークシート関数の書き方でCHAR(10))です。 したがって、Alt+Enterで改行された文字列は、 『とても[CHAR(10)]おもしろい[CHAR(10)]本だった。』になっているわけです。[CHAR(10)]がラインフィード。 =LEN(SUBSTITUTE(A1,CHAR(10),"")) の算式は、 SUBSTITUTE(A1,CHAR(10),"") でA1に入力された文字に『CHAR(10)』があれば『""』(長さ0も文字列)に置き換えています。簡単にいえば、『CHAR(10)』を消した文字列を作り出しているわけです。 そして、この文字の個数を数えています。 セル内で改行していなければ、当然、LEN(A1) = LEN(SUBSTITUTE(A1,CHAR(10),"")) になります。
その他の回答 (2)
- nishi6
- ベストアンサー率67% (869/1280)
色々方法はありますが・・・ セルA1の文字数をカウントする場合は、 =LEN(SUBSTITUTE(A1,CHAR(10),"")) としたらどうでしょか。LEN()だけでも出ますが改行コードを含みます。 SUBSTITUTEを使って、セル内の改行コードを除外しています。 これを2列の該当セル分SUM()すればいいわけです。 (これから下は参考にして下さい) また、A1からA300までの文字数をいっぺんにA301に出してみます。 A301に =SUM(LEN(SUBSTITUTE(C1:C300,CHAR(10),""))) と入力して、Ctrl+Shift+Enter とします。 数式バーに入力して、CtrlキーとShiftキーを押した状態でEnterキーを押します。配列数式を使っています。 ご参考に。
補足
早々のご回答ありがとうございました。 お蔭様で何とかかんとか文字のカウントは出来ました。 そこで、改めて質問させていただきたいのですが・・(^^ゞ SUMとLENのことは解かりましたが、その後の SUBSTITUTEとCHARと(10)の数字の意味がわからないのです。 「解からなくたっていいんだよ!」と言われてしまえばそれまでですが どういう意味を含んでいるのか、その数字が何をあらわしているのかが 知りたいのです。 もし、簡単に(は済まないかもしれませんが)説明していただけたら 大変、有難いのですが。。 重ね重ね申し訳ありませんが、宜しくお願いします。
- k-family
- ベストアンサー率34% (180/523)
A列とB列に文字列が入っているとします。 C1に「=len(a1)」 D1に「=len(b1)」 と入れてC1を下へ必要なだけコピーします。D1も同様に下へコピーします。 するとC列にA列の対応したセルの文字数が入ります。D列はB列です。 以上ですが、もし、これらの合計を求めるのだとすれば次の通りです。 A1からA300まで入っているのだとすれば C301に「=sum(c1:c300)」 これでC301にA1からA300までの文字数の合計が出ます。後はわかりますよね。
お礼
早々のご回答ありがとうございました。 とても解かりやすくかいて下さったので 何とかかんとか文字カウントすることができました。 何しろ普通の人が常識で知っていることも解からないことばかりでして^^; 今後も何かの機会にお願いいたします。 本当にありがとうございました。
お礼
重ね重ねありがとうございました。 とても解かりやすく、詳しく説明してくださって 全くの初心者の私でも(完全に)とは言えませんが 何となく「ふーん、そうだったのかぁ」と思えてきました。 エクセルで表を作るのがやっと出来るようになったのですが やる度に解からないことに遭遇して、頭を抱えてしまうことばかりです。 自信なしと、謙遜していらっしゃいますが、このようなことを ご存知でいらっしゃるなら、私からすれば「神様」のような方だと思いました。 これからも、解からないことがありましたら、どんどん質問して 少しずつ覚えて行きたいと思いますので、その節は また、宜しくお願いいたします。 本当に、ありがとうございました。