VBA初心者です。最後に、数式で対処できない Excel の問題が発生しました。ここに私のサンプルデータがあります:
-----------------------
| | A | B* |
-----------------------
| 1 | Text1 | 3001 |
-----------------------
| 2 | Text2 | 0231 |
-----------------------
| 3 | Text1 | 1003 |
-----------------------
| 4 | Text3 | 0012 |
-----------------------
f(A1:A4, "Text1", B1:B4, "3") = 2 を達成したいと思います。
つまり、「Text1」を含む行ごとに、列 B に文字「3」が累積的に出現する回数を数えたいとします。列 B のセルは、テキスト型ではなく int 型であることに注意してください。vba を使用せずにこれを実現する方法があれば、それも歓迎します。
これが私がこれまでに持っているものです:
Function CountCharInStr(FilterStr As String, FilterRange As Range, SearchStr As String, StrRange As Range) As Integer
Dim Idx As Integer, IsFound As Boolean
CountCharInStr = 0
IsFound = False
For Idx = 1 To FilterRange.Rows.Count
IsFound = True
If FilterRange(Idx) <> FilterStr Then
IsFound = False
Exit For
End If
If IsFound Then
CountCharInStr = Len(StrRange(Idx)) - Len(Replace(StrRange(Idx), SearchStr, "")) + CountCharInStr
Exit For
End If
Next Idx
End Function
関数は現在、初期値の 2 ではなく 0 を返します。また、デバッグ目的でユーザー定義関数をステップ実行する簡単な方法があるかどうかも知りたいです。
どうもありがとう!