• ベストアンサー

Excel セル内の文章数を数える方法

毎度お世話になっています。 エクセルにて不明な点が出てきたため、ご存知の方いらっしゃいましたらご協力お願いします。 現在、アクセスからインポートしたデータをエクセルで集計しており、 セル内の文が、改行含め複数行にわたる場合の文章の行数を数えたいのですが、 何かいい方法はありませんでしょうか。 例) 今日は天気でした。        :1行目  朝から犬の散歩をしていると    :2行目                  : 「ワンッ」            :3行目                  : と、突然吠えられてしまいました。 :4行目 上記の場合であれば、「4」とカウントできるようにしたいと考えています。 宜しくお願いします。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.5

関数だけでは無理そうですので、こんな方法はどうですか。 セル内改行のあるデータを別シートのA列にコピーします(例:Sheet2!A2)。 Sheet2でA1を選択して[データ]-[区切り位置]で、「カンマやタブなど区切り文字によって……」を選択し、区切り文字として「その他」にチェック。 「その他」の右のテキストボックスにCtrl+jと入力(何もみえませんが、改行コードが入ります)。 「連続した区切り文字は1文字として扱う」にもチェックして<完了> これで横に1行づつの状態になりますので、後は何行かを表示したいセルに =COUNTA(Sheet2!1:1) セル内改行のあるデータが列単位ならまとめて処理も出来ます。

2_abebe
質問者

お礼

度々のご意見ありがとうございます。 お話のように試してみたところ、 やりたかったことが見事にできていました。 こんなやり方もあったのかと目から鱗状態です。 ありがとうございました。

その他の回答 (4)

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

質問者が一番良く知っているはずの点が、質問では明確に考えてない。 >セル内の文章数を数える方法 文章数は、目視でカウントじゃないから、何か対応するものを カウントしなければならないわけだが、 それの今回の課題で、ベストのものは何か?そこまでは質問者が考えないと。 セル入力の文章全般の、ルール遵守性と係わってくる問題だから。 既出回答で出ているが、ALT+改行数+1でよいのか。 他には場合によっては、句点。の数とか、その他とか。 1セルだけをとりあえず問題にして、算出し、多数セルを考えているのだろうが、それは、別途複数セル分足し算でよいのですね。 ーーー セル内改行は、どうして捉えるかというと、A1セルでa+ALT+ENTER+b+ENTERと入れる。 a b のように見えている。 数式バー部でaを削除してENTER。すると b のようになる。 B1セルに=CODE(A1)と入れると10と出る。セル内改行は、文字コードが10進で10であることがわかる。それでALT+ENTERは、CHAR(10)で捉えられる。 セル内の複数ある文字を数えるカウントの関数は無いので、CHAR(10)を削除して、文字数の減り具合を見る。元の文字数ははLEN(A1) だから =LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),"")) セル内改行で出来た行数は、+1して =LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),""))+1 -- 他に あまり今まで使う機会がなかったが、Clean関数を使って =LEN(A1)-LEN(CLEAN(A1))+1 でもカウントできるかもしれない(少数例でしかやっていないので)。 Clean関数はWEBで照会のこと。

2_abebe
質問者

補足

ご意見ありがとうございます。 また、説明不足で大変申し訳ありません。 単純に、改行のみの行を含め行数をカウントする(alt+enter+1で全体の行数をカウントする) ことは、既にできているのですが、 ANo.3の方が仰っていただけているように、 改行のみの行はカウントせずに文字列のある行のみカウントできないかと考えています。 そのためには、 改行と改行の間に何か文字が入っている場合には、数をカウントし、 (ただし、改行のみの行が複数行にわたることもある。) また、別途セルの頭から最初の改行までの間に文字が入っている場合は1をプラス、 最後の改行からセルの最後までの間に文字が入っている場合は1をプラス、 というようなことができればいいかと思っているのですが。 皆様の補足をまとめて行ってしまい、申し訳ありませんが、もう少しご協力いただければと思います。 よろしくお願いいたします。

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

改行のみで文字列が入っていない行は行数としてはカウントしないということでしょうか。 改行のみの行が2つ以上続かないという前提でしたら次のように考えることが出来ます。 まず、改行のみの行も行としてカウントする場合は、ANo.2で回答されている↓になります。 =LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),))+1 改行のみの行=改行コードが2つ続いている の数は↓こうなります。 =LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10)&CHAR(10),CHAR(10))) 求めたいのは、(改行のみの行も行としてカウントした数)-(改行のみの行の数)ですから最初の式から後の式を引きます。式を整理した物が↓です。 =LEN(SUBSTITUTE(A1,CHAR(10)&CHAR(10),CHAR(10)))-LEN(SUBSTITUTE(A1,CHAR(10),))+1

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.2

◆セル内改行の場合 =LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),))+1

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

=COUNTA(A1:A4) ではダメですか

関連するQ&A