No.3ベストアンサー
- 回答日時:
> =COUNTIF(A1:J1,"a")となるのでしょうか。
その場合、abcは個数に入りませんがそういう仕様ですか?
> 行は10行くらで、
> 列は10列くらいなので、J1としました。
1行目にはaで2行目にはbで3行目以降は不明ですが、それともすべての行でaとbの個数を合算した結果をそれぞれK列L列にに出すのでしょうか。どちらにしても、回答されたコードをご自身で解析してご自身の仕様に合うように改良する必要がありますが、不明な部分が多いので、とりあえず
それぞれの行でaの個数はK列にbの個数はL列に表示するということとして3種類の例を示します。
Sub Example1() 'a及びbの文字総数を求める
Dim c As Range
Dim i As Integer, j As Integer
Dim samplestr(2) As String
Range("K:L").ClearContents
samplestr(0) = "a"
samplestr(1) = "b"
For i = 1 To 10
For Each c In Range(Cells(i, "A"), Cells(i, "J"))
Cells(i, "K").Value = Cells(i, "K").Value + (Len(c.Value) - Len(Replace(c.Value, samplestr(0), ""))) / Len(samplestr(0))
Cells(i, "L").Value = Cells(i, "L").Value + (Len(c.Value) - Len(Replace(c.Value, samplestr(1), ""))) / Len(samplestr(1))
Next
Next
End Sub
Sub Example2() '文字列にa及びbを含む文字列の個数を求める
Dim c As Range
Dim i As Integer, j As Integer
Dim samplestr(2) As String
Range("K:L").ClearContents
samplestr(0) = "a"
samplestr(1) = "b"
For i = 1 To 10
For Each c In Range(Cells(i, "A"), Cells(i, "J"))
If InStr(1, c.Value, samplestr(0)) > 0 Then
Cells(i, "K").Value = Cells(i, "K").Value + 1
End If
If InStr(1, c.Value, samplestr(1)) > 0 Then
Cells(i, "L").Value = Cells(i, "L").Value + 1
End If
Next
Next
End Sub
Sub Example3() 'COUNTIFと同じ結果
Dim c As Range
Dim i As Integer, j As Integer
Dim samplestr(2) As String
Range("K:L").ClearContents
samplestr(0) = "a"
samplestr(1) = "b"
For i = 1 To 10
For Each c In Range(Cells(i, "A"), Cells(i, "J"))
If c.Value = samplestr(0) Then
Cells(i, "K").Value = Cells(i, "K").Value + 1
End If
If c.Value = samplestr(1) Then
Cells(i, "L").Value = Cells(i, "L").Value + 1
End If
Next
Next
End Sub
No.2
- 回答日時:
>例えば、
>A1からJ1に入力された"a"の数をK1に表示。
>続いてA2からJ2に入力された"b"の数をK2に表示。
この例が意味深で、行が進むにつれて逐次、a、b、c・・・と変化する?
"a"の値はいいとして、"z"の次は? "aa"を数えることはある? そのとき、"aaaa"の中に"aa"は何個と定義する。などの疑問がありますが、"aaaa"には"aa"が2個と定義して、いずれの場合にも対応できるようにユーザー定義関数を作りました。
=CountCharacter("a",A1:J1)
=CountCharacter("b",A2:J2)
のように使います。
標準モジュールに貼り付け
Function CountCharacter(c As String, SearchRng As Range)
Dim rg As Range '検査するセル
Dim num As Integer '見つけた個数
For Each rg In SearchRng
num = num + (Len(rg.Text) _
- Len(Application.Substitute(rg.Text, c, ""))) / Len(c)
Next
CountCharacter = num
End Function
早速、ありがとうございます。
まだ試してないのですが、私の質問が不十分ですいませんでした。
行は10行くらで、
列は10列くらいなので、J1としました。
関数だとK1に
=COUNTIF(A1:J1,"a")となるのでしょうか。
それをタテ10行、横10列でVBならと思いやってみたんですが、私には難しく質問させて頂きました。
"a"は実際は日本語で簡単な略語なんですが、aとさせて頂きました。
あと、質問の記述に誤りがありました。
K列にaの数
L列にbの数
を求める場合の質問でした。
申し訳ありませんでした。
職場で使う書類を作り替える為にVB勉強中です。
どうか、ご教授お願いします。
No.1
- 回答日時:
たとえば以下のような感じでいかがでしょう。
Sub Example()
Dim c As Range
Dim i As Integer, j As Integer
Range("K:K").ClearContents
For i = 0 To 1
For Each c In Range(Cells(i + 1, "A"), Cells(i + 1, "J"))
Cells(i + 1, "K").Value = Cells(i + 1, "K").Value + (Len(c.Value) - Len(Replace(c.Value, Chr(Asc("a") + i), "")))
Next
Next
End Sub
kkkkkmさん早速、ありがとうございます。
まだ試してないのですが、私の質問が不十分ですいませんでした。
行は10行くらで、
列は10列くらいなので、J1としました。
関数だとK1に
=COUNTIF(A1:J1,"a")となるのでしょうか。
それをタテ10行、横10列でVBならと思いやってみたんですが、私には難しく質問させて頂きました。
"a"は実際は日本語で簡単な略語なんですが、aとさせて頂きました。
あと、質問の記述に誤りがありました。
K列にaの数
L列にbの数
を求める場合の質問でした。
申し訳ありませんでした。
職場で使う書類を作り替える為にVB勉強中です。
どうか、ご教授お願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/04/21 08:59
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
- Excel(エクセル) 隣り合っていないセルを まとめて税込表示したい 8 2022/09/25 14:32
- Excel(エクセル) Excelの関数について教えてください。 5 2023/07/28 11:27
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/03/09 16:55
- Excel(エクセル) エクセルのマイナス表示 3 2022/03/28 16:35
- Excel(エクセル) ExcelのIF関数 2 2022/04/14 16:11
- Excel(エクセル) EXCELでリターンキーが押されたらそのセルに特定の文字を表示したいのですが。 2 2022/08/07 12:58
- Excel(エクセル) Excel2019のデータ入力に便利な関数について 4 2023/07/06 05:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Cellsのかっこの中はどっちが行...
-
vba 2つの条件が一致したら...
-
B列の最終行までA列をオート...
-
【VBA】2つのシートの値を比較...
-
Excelで、あるセルの値に応じて...
-
VBAを使って検索したセルをコピ...
-
rowsとcolsの意味
-
データグリッドビューの一番最...
-
エクセルVBAにて =A1=B1とすれ...
-
URLのリンク切れをマクロを使っ...
-
VBAで、特定の文字より後を削除...
-
マクロ 最終列をコピーして最終...
-
マクロ 関数を使った抽出でエラ...
-
EXCEL VBAマクロについて質問です
-
VBAコンボボックスで選択した値...
-
エクセルVBAでデータをカウント...
-
エクセルVBA シートモジュール...
-
VBAでのリスト不一致抽出について
-
最終列の右へSUM関数を作成する...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
VBAを使って検索したセルをコピ...
-
VBAのFind関数で結合セルを検索...
-
文字列の結合を空白行まで実行
-
IIF関数の使い方
-
【VBA】2つのシートの値を比較...
-
マクロ 最終列をコピーして最終...
-
Changeイベントでの複数セルの...
-
VBA 何かしら文字が入っていたら
-
URLのリンク切れをマクロを使っ...
-
エクセルVBAにて =A1=B1とすれ...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
マクロについて。S列の途中から...
-
VBA UserFormからの転記で
-
targetをA列のセルに限定するに...
おすすめ情報