
No.2ベストアンサー
- 回答日時:
=SUMPRODUCT(LEN(A1:A3))-SUMPRODUCT(LEN(SUBSTITUTE(A1:A3,",","")))
ですが、VBAでは、これをそのまま写すのは、マクロらしくないというか変則的で、VBAとしては上手くありませんので、以下のようにします。
Sub TestCount()
Dim rng As Range
Dim cnt As Long
Dim c As Variant
Set rng = Range("A1", Cells(Rows.Count, 1).End(xlUp))
For Each c In rng
cnt = cnt + Len(c) - Len(Replace(c, ",", ""))
Next
MsgBox cnt
Set rng = Nothing
End Sub
(あくまでもサンプルコードです。)
No.4
- 回答日時:
例えば、
A4セルに「ddd,eee,fff」とかあるとこのセルだけで「2」ですか?。
A4セルに「ddd,eee,fff」とかあるとこのセルだけで「1」ですか?。
作業を砕いていくと、
B列にはinstr関数でカンマがあるかないかの表記、
C列にはカンマがあったときのカンマの数をVBAで求め、その結果を表記
D1にはそのC列の総数
こんなことでも解決になりそう。
単にカンマを意味する記載の仕方を、というのなら、
chr(44) もその1つ。
"aaa" & chr(44) & "bbb" は "aaa,bbb" です。
「ddd,eee,fff」にカンマがいくつあるか、なんてのは
文字数(=11)分「x文字目1文字はカンマですか?」を繰り返し、でもできます。
11回繰り返せば4文字目と8文字目にカウントした「2」が求まる。
No.3
- 回答日時:
この質問は何ですか。
ワークシートの関数の質問かVBAの質問か。後者なら合計数=CountIf("A1:A3",",") なんてありえないのでは?
Sub test01()
For i = 1 To 3
MsgBox Application.WorksheetFunction.CountIf(Cells(i, "A"), "*,*")
Next i
End Sub
のようなものだろう。
ーーー
質問者は
セルの値と
セルの値(文字列)の中の含まれる文字数と
混同している野ではないか。
ーー
関数のCOUNTIFは1セルの文字列全体がどうか(正確に)一致して一件とカウント。
bbb,cccに対し、カンマ1つを比べて該当1件にはならないでしょう。
そこではカンマが何個含まれているか言う発想に、質問者の頭の中で、変化しているようだ。
ーー
これカンマの数のような、セルの文字列に含まれるある文字(列)の数をカウントしたいなら、カンマをReplaceで空白に置き換えて、文字列の長さの減った文字数を計算するのが定石だ。もちろんInstr関数で文字列最後までカンマを数える方法もあるが、前者がすっきりした方法でしょう。
ーー
ワイルドカードで"*,*"とすればbbb,cccと*,*は等価と看做してくれるのでA2セルでは1件になる。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
Excelで指定した日付から過去の...
-
i=cells(Rows.Count, 1)とi=cel...
-
指定した条件で行セルを非表示...
-
Excel vbaで特定の文字以外が入...
-
【Excel VBA】指定行以降をクリ...
-
エクセルVBAでできるでしょ...
-
エクセルvbaで、別シートの最下...
-
【VBA】指定したセルと同じ値で...
-
EXCELのVBA-フィルタ抽出後の...
-
”戻り値”が変化したときに、マ...
-
VBA実行後に元のセルに戻りたい
-
任意フォルダから画像をすべて...
-
TODAY()で設定したセルの日付...
-
【Excel】指定したセルの名前で...
-
Excelのプルダウンで2列分の情...
-
連続する複数のセル値がすべて0...
-
Excel VBAで、 ヘッダーへのセ...
-
DataGridViewのセル編集完了後...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
特定行の色を変えたい(FlexGrid)
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
エクセルvbaで、別シートの最下...
-
VBA実行後に元のセルに戻りたい
-
Application.Matchで特定行の検索
-
”戻り値”が変化したときに、マ...
-
VBAでセルをクリックする回...
-
任意フォルダから画像をすべて...
-
Excel VBAで、 ヘッダーへのセ...
-
TODAY()で設定したセルの日付...
-
【Excel VBA】指定行以降をクリ...
-
Excel vbaで特定の文字以外が入...
-
ExcelのVBAで数字と文字列をマ...
-
Excel VBA、 別ブックの最終行...
-
DataGridViewの各セル幅を自由...
-
VBA ユーザーフォーム ボタンク...
-
連続する複数のセル値がすべて0...
おすすめ情報