dポイントプレゼントキャンペーン実施中!

下記の表から複数の条件で個数を求めたいがゴールにたどりつけません?

条件1B列 1月
条件2C列 空白
条件3D列 りんごorみかんorいちご(野菜以外の果物)

下記のコードを書いてみましたが、「りんご」しか書いてませんので個数は0となり、「みかん」「いちご」をどのように書いたら良いかわかりません?

Sub test1()
Dim date_1 As String
Dim date_2 As String
date1 = 2022 / 1 / 1
date2 = 2022 / 1 / 31
ThisWorkbook.Worksheets(1).Cells(1, "F") = WorksheetFunction.CountIfs(Range("B:B"), ">=" & date1, Range("C:C"), "<=" & date2, Range("C:C"), "<>" & "", Range("D:D"), "りんご")
End Sub

お解かりになる方教えてください。困ってます。
よろしくお願いします。

「複数条件でのカウント」の質問画像

A 回答 (3件)

あ、


日付の列はB列ですから、

>Range("C:C"), "<=" & date2



Range("B:B"), "<=" & date2

でしたね。
    • good
    • 0

こんにちは



>りんごorみかんorいちご
Count系でORを求めたければ、それぞれを算出して合計すれば良いです。
あるいは、SUMPRODUCTなどでまとめて計算するとか。

WorksheetFunctionだと面倒くさいのなら、直接、関数式を設定しておいて(=計算をエクセルにやらせて)、
 .Value = .Value
で、定数化するという方法も考えられます。
    • good
    • 0
この回答へのお礼

ありがとうございます。助かりました!

お礼日時:2022/04/21 13:50

Sub test1_1()


Dim date_1 As String
Dim date_2 As String
Dim v As Variant

date1 = "2022/1/1"
date2 = "2022/1/31"

With ThisWorkbook.Worksheets(1).Cells(1, "F")
For Each v In Array("りんご", "みかん", "いちご")
.Value = .Value + WorksheetFunction.CountIfs(Range("B:B"), ">=" & date1, Range("C:C"), "<=" & date2, Range("C:C"), "<>" & "", Range("D:D"), v)
Next
End With

End Sub

かな?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!