- ベストアンサー
Excelに入力された文字のカウント
Excelのセルに入力された文字のカウントで、良いお知恵があったら是非お聞かせ下さい。 データ量は毎回違うのですが、少ない時であれば関数のLENを使って1セル1セルカウントしてもそう手間にはならないのですが、入力されているセルが増えると、LENでそれをやると時間と手間が結構かかるというか…。 例えば…入力のあるセルとないセルが混在して、CC1800まで入力枠がある。 こういった場合、何か手っ取り早く文字をカウントすることは出来ないものでしょうか? 但しマクロで作れそうな場合には、すべての答えは出さずにヒントを下さるとありがたいです。 質問内容が伝わらない場合は、是非ご質問下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
再び こんにちは 失礼しました >この場合だと、マクロは使わずに、ということ >なのでしょうか? マクロの場合はヒントのみってことなので関数式で あれば書いちゃってよろしかったんですね! でCC1:CC1800の文字数計を調べる式 配列数式 数式バーに =SUM(LEN(CC1:CC1800)) と入力して [Ctrl]+[Shift]を押したまま[Enter]で 入力確定 成功すれば数式バーの式は {=SUM(LEN(CC1:CC1800))} と{}で括られます 配列関数 =SUMPRODUCT(LEN(CC1:CC1800))
その他の回答 (2)
- comv
- ベストアンサー率52% (322/612)
こんにちは 答えの例ではなくヒントがお望みとのことなので 多少回りくどい記載になりますが >関数のLENを使って1セル1セルカウントして 基本ベースはこれが確かですね 例えば 範囲がCC1~CC1800 なら 個々のセルに対して適当な空き列(CB列)に 1.文字数ならCD1に =LEN(CC1) 2.半角文字数換算なら =LENB(CC1) 3.全角 半角 各文字数なら CD1 全角 =LENB(CC1)-LEN(CC1) CE1 半角 =LEN(CC1)-CD1 で総数はその範囲を SUM() で合計する 1や2なら =SUM(CD1:CD1800) >入力されているセルが増えると、LENでそれを >やると時間と手間が結構かかるというか…。 で基本ベースの方法を特定範囲一式で行う方法 としては、配列数式 や 配列関数 があります。 LEN()やLENB()関数は単一セルに対するものですが 試し A1とA2に適当な文字 =LEN(A1) ・・・・文字数が表示される =LEN(A1:A2) ・・・#VALUE! エラーになる 配列数式や配列関数を使うことで配列範囲(連続した 複数セル)に対応することができます。 試し *** これを書くと答えになってしまうので ご希望通り ここまでにしておきます 配列数式はヘルプを見てみて下さい 使う関数は基本ベースの LEN()/LENB()やSUM() 以外必要ありません また配列関数の方は今回の場合 SUMPRODUCT()関数 が使えますが、まずは配列数式を試してみて下さい
補足
配列数式を使う…ヘルプで調べてちょっと試してみたのですが、エラーしか出てきませんでした(苦笑) まだまだ理解出来ていないのかもしれませんが…。 この場合だと、マクロは使わずに、ということなのでしょうか?
- taknt
- ベストアンサー率19% (1556/7783)
マクロだと 簡単です。 セルの文字列を取り出し、文字数を調べる。 これをループで CC1800までする。
お礼
ご返答ありがとうございました。 マクロを作るまで、まだかなりの時間をかけてしまいますので、今回はcomvさんの配列関数を使ってみたいと思います。 勉強の為にも、時間のあるときにマクロで作ってみようと思いますので、また質問をした際にはご返答お願いします。
お礼
何度もお手数をおかけしてすみません。 たぶん重要だと思われる“[Ctrl]+[Shift]を押したまま[Enter]”をやり忘れていました^^; これで、無事カウントも出来ました。 本当にどうもありがとうございました。