- 締切済み
エクセルで文字数を数えたいのですが
よろしくお願いします。 エクセルでたとえば A1とB1のセルに 1,2,3,4,5,10 と入力されているとします。 ここから 1又は1,という文字数の合計を 抽出したいのですが 適切な関数が見当たらず 組合せもわかりません。 この場合 範囲はA1:A2 で 2(個)という 数値を欲しいのですが セルの数や 左から何個目なのか ではなく 文字の合計数を 知りたいのですが。 文字の置換や検索みたいに 見つけて その個数を知りたいのですが どなたかお願いいたします。 応用編で漢字の数や ひらがなの数(個数)を 1セルの中から又は多数のセル範囲から 指定文字の合計個数を抽出したいなど考えています。 初心者の為申し訳ありません。 ビジュアルベーシック?マクロ?アドイン?な状態です。 よろしくお願いいたします。 エクセル2003です。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- nekotaru
- ベストアンサー率50% (22/44)
実行手順を書きもれました^^; A1やB1が表示されている画面にて、 1,2,3,4,5等が入力されているセルを選択してください。 例だとA1とB1です。 A1を選択→右クリックしながらB1まで移動。 するとA1とB1の色が変わります。 その状態でVBAを実行し、件数を数えたい文字を入力してください。 選択された範囲しか検索対象になりませんので、ご注意ください。
- nekotaru
- ベストアンサー率50% (22/44)
VBAの入力方法についてはいろんなHPがあるので EXCEL VBA 入門 等のキーワードで検索してください。 そして以下の内容を貼り付け、実行してみてください。 Sub Test1() '下記HPを参考にしました。 'http://www.ken3.org/vba/backno/vba109.html Dim strIn As String Dim intCnt As Integer Dim strArray As Variant Dim strTmp2 As String If TypeName(Selection) <> "Range" Then MsgBox "検索したいセルを選択しなおしてください。" Exit Sub 'Range以外は抜ける End If strIn = InputBox("検索内容を入力してください。") If strIn = "" Then Exit Sub intCnt = 0 Dim objRANGE As Range For Each objRANGE In Selection.Cells strTmp = Split(objRANGE, ",") For i = 0 To UBound(strTmp) If strTmp(i) = strIn Then intCnt = intCnt + 1 Next Next MsgBox intCnt & "件見つかりました" End Sub
お礼
ありがとうございます。 個数を抽出する事ができました。が・・・ 実はアンケートの集計なものですから A列の各セルに1.から13.まで 13個の数字があり 同じように B列・C列・D列 という 4つの個所 を 1から13 の 抽出 すると言うのは 計52回 マクロ実行という事ですよね かなりむずかしい・・・。 そして52個のデータを エクセルの別シートに 入力し 表にし グラフにする。 日計・週計・月計・・・ がんばってみます・・でもまた助けてください。 まだ締め切らずにしておきます。 ありがとうございます。
- nekotaru
- ベストアンサー率50% (22/44)
いつもお世話になってます。 例がよくわからなかったので補足願います。 >エクセルでたとえば A1とB1のセルに >1,2,3,4,5,10 と入力されているとします。 A1とB1に1,2,3,4,5,10が入ってるのですね? A2やB2は何も入ってないのですね その場合、 >この場合 範囲はA1:A2 で 2(個)という >数値を欲しいのですが A2が出てくるのが理解できず、さらに2個は、なにが2個なのかわかりません。 補足願います。
補足
申し訳ありません。記入ミスです。 範囲の記載を間違えました、 正しくは A1:B1 です。 入力されている A1とB1です。 それぞれのセルに A1に1.2.3.4.5.10 が B1に1.2.3.4.5.10 が 入っています。 ので 文字として 1又は1. は 計2個 ある。 という意味です。 説明が下手な上に間違えてしまいました。 よろしくお願いします。
お礼
早速ありがとうございます。 まずやってみます。 また報告します。