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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- Excel(エクセル) xlDownの使い分けについての質問です vbaでxlDownを使って一覧近い空白までのセルをコピー 3 2022/08/04 12:20
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Excel(エクセル) If関数に関する質問です。(再掲) 3 2022/10/01 20:51
- Excel(エクセル) マクロでコピーすると数式が表示される 1 2022/09/09 20:21
- Visual Basic(VBA) 重複したデータ(空白は除く)のVBA表記について 5 2022/08/15 12:41
- Excel(エクセル) SUMIF関数について 4 2023/06/14 13:13
- Excel(エクセル) マクロだと数式が表示される 2 2022/09/10 14:48
- Excel(エクセル) エクセルの数式を等間隔にオートフィルできるやり方を教えていただきたいです。 実際の作業↓ A3セルに 7 2023/06/05 19:04
- Excel(エクセル) エクセル・セルに数式を入力してセル指定計算 2 2023/04/21 12:46
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルが空白だったら、そ...
-
ExcelVBAを使って、値...
-
VBAでセルをクリックする回...
-
VBからEXCELのセルの値を取得す...
-
Excelで指定した日付から過去の...
-
特定の文字を条件に行挿入とそ...
-
【Excel】指定したセルの名前で...
-
Sub 要具ライフ() ActiveSheet....
-
任意フォルダから画像をすべて...
-
i=cells(Rows.Count, 1)とi=cel...
-
【VBA】飛び飛びの3セルに"完了...
-
Excel VBAで比較して数値があっ...
-
Excel VBA、 別ブックの最終行...
-
【Excel VBA】指定行以降をクリ...
-
TODAY()で設定したセルの日付...
-
エクセル(Excel) ワイルドカー...
-
EXCELで変数をペーストしたい
-
エクセルVBAで、シート上で結合...
-
ExcelのVBAで数字と文字列をマ...
-
VBAの計算で@が出てしまう件
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
特定のセルが空白だったら、そ...
-
【Excel VBA】指定行以降をクリ...
-
i=cells(Rows.Count, 1)とi=cel...
-
【Excel】指定したセルの名前で...
-
Excelで指定した日付から過去の...
-
特定の文字を条件に行挿入とそ...
-
Excel VBA、 別ブックの最終行...
-
EXCELで変数をペーストしたい
-
Excelのプルダウンで2列分の情...
-
Excel vbaで特定の文字以外が入...
-
TODAY()で設定したセルの日付...
-
screenupdatingが機能しなくて...
-
DataGridViewの各セル幅を自由...
-
Sub 要具ライフ() ActiveSheet....
-
【EXCEL VBA】Range("A:A").Fi...
-
VBAを使用した時間管理
-
VBAでセルをクリックする回...
-
セル色なしの行一括削除
-
エクセルVBAでコピーして順...
おすすめ情報