- ベストアンサー
エクセルで文字数を数え、13字以下のものを選ぶには
- エクセルを使用して文章の文字数を数える方法を教えてください。
- エクセルのLEN関数を使って文章の文字数を取得することができます。
- 特定のセルに入力された文章の文字数が13文字以下であるかどうかを判定する方法をご教示ください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
A1からA5にそういった言葉を記入しておいて B1に =LEN(A1) 以下B5までコピー C1に =IF(B1<=13,COUNTIF($B$1:B1,"<=13"),"") 以下コピー 総数は =COUNT(C1:C5) あるいは =SUMPRODUCT((LEN(A1:A5)<=13)*1)
その他の回答 (2)
- kagakusuki
- ベストアンサー率51% (2610/5101)
今仮に、「アイウエオはカキクケコだ。」と入力されているのがA2セルで、「13文字 1つめ」と表示するのがB2セルであるものとします。 まず、B2セルに次の数式を入力して下さい。 =IF($A2="","",LEN($A2)&"文字"&IF(LEN($A2)>13,""," "&SUMPRODUCT((LEN($A$2:$A2)<=13)*1)&"つ目")) そして、B2セルをコピーして、B3以下に貼り付けて下さい。 以上です。
お礼
ありがとうございます。 ひとつのセルで済む方法を教えていただけるとは思わず 大変感動しました。 迷いましたが 今回は素早くご回答くださった最初の方にBAとさせていただきます、 申し訳ありません。
- m_and_dmp
- ベストアンサー率54% (987/1817)
「全部でいくつか」は、 文字列の入力されてセルの隣(右でも左でも)に =If(LEN(文字列の入力されたセル参照)<=13,1,0) と記述し、下方へオートフィルする。 「全体でいくつ」を表示させるセルに =SUM(セル範囲) と記述する。 一つめ、二つめと数えるのを関数で処理するのは複雑になります。 マクロならできます。 A列に文字列が入力されているものとします。B列、C列に文字数と、Xつめをそれぞれ表示します。 文字列の文字の数L=1~13がいくつあるか数えるための変数を13個(V01~V13,初期値はゼロ)用意します。 Sub example() For i=1 to 1000 Cells(i,1).Select L=Selection.Value IF L="" Then Exit For L=Len(L) Select Case L Case 13 V13=V13+1 Cells(i,2)=L&"文字" Cells(i,3)=V13&"つめ" Case 12 V12=V12+1 Cells(i,2)=L&"文字" Cells(i,3)=V12&"つめ" ・ ・ ・ ・ Case 1 V01=V01+1 Case Else End Select Next i End Sub そのセルの右隣のセルに、Lenの値13を入力し、その隣のセルにV13の値を入力します。ここの処理が多少複雑になるでしょう。(Lenが13だったら、V13の値、12だったらV12の値.......Lenが01だったら、V01の値と、場合によって入力する変数をV13~V01のいずれかを選択する。) つぎに下のセルに移動して同じ処理を繰り返し、文字列が入力されている最後のセルまで処理したら終わりです。 自分で試していないので誤りがあるかもしれません。 マクロでLenというコードが使えなかったら、Lenの代わりにApplication.Lenとしてください。
お礼
ありがとうございます。 マクロまで組んでいただいて申し訳ないです。 正直、ぜんぜんわかりません… (質問の最初に書きましたように、LEN関数ですら教えていただくレベルで…) 今回は最初の方の方法で希望の結果がでました。 恐縮ですがそちらをBAとさせていただきました。
お礼
できました! 素早くわかりやすいご回答ありがとうございます。 大変助かりました。 ありがとうございました。