我希望使用日期数组和一系列名称从countifs中找到一个值。
“”向Jeeped喊出以下提供日期数组的代码。“”
Dim d As Long, dts As Variant
ReDim dts(DateSerial(2019, 1, 1) - DateSerial(2018, 1, 1) + 1)
dts(0) = vbNullString
For d = DateSerial(2018, 1, 1) To DateSerial(2018, 12, 31)
dts(d - DateSerial(2018, 1, 1) + 1) = Format(d, "m/d/yyyy") '<~~should match worksheet
Next d
R = Application.Sum(Application.CountIfs(Range("A:A"), "Stuff", Range("B:B"), dts, Range("C:C"), Array("Name1", "Name2")))
结果总是为零,“我想?”因为两个阵列都是不同的类型?或者格式是一个更好的词。
我可以在类似的countifs中使用dts数组......见下文。
Z = Application.Sum(Application.CountIfs(Range("A:A"), "stuff", Range("B:B"), dts))
然而,只要我需要为“名称”引入另一个数组,countifs行将执行并且代码运行,但是......只返回零。
R = Application.Sum(Application.CountIfs(Range("A:A"), "Stuff", Range("B:B"), dts, Range("C:C"), Array("Name1", "Name2")))
如何在countifs情境中创建一个可与dts数组一起使用的“名称”数组?
谢谢!
编辑4/2/2018下午1:00 添加示例以显示更改订单仍返回0.
在工作表中使用此功能,或重新订购下面代码中注释掉的其他行。 enter image description here 然后使用被注释掉的活动行。
Public Sub Broken()
'****************************************************************
Dim d As Long, dts As Variant
ReDim dts(DateSerial(2019, 1, 1) - DateSerial(2018, 1, 1) + 1)
dts(0) = vbNullString
For d = DateSerial(2018, 1, 1) To DateSerial(2018, 12, 31)
dts(d - DateSerial(2018, 1, 1) + 1) = Format(d, "m/d/yyyy") '<~~should match
worksheet
Next d
'****************************************************************
'Answer = Application.Sum(Application.CountIfs(Range("A:A"), "Z*", Range("B:B"), dts, Range("C:C"), Array("Name1", "Name2", "Name3", "Name4", "Name5")))
Answer = Application.Sum(Application.CountIfs(Range("A:A"), dts, Range("B:B"), "Z*", Range("C:C"), Array("Name1", "Name2", "Name3", "Name4", "Name5")))
MsgBox Answer, vbInformation
End Sub
****答案应为2
*日期在2018年之内或从dts数组中删除 *包含“Z”的列 *一个包含名称Array
的名称的列答案 0 :(得分:0)
WorksheetFunction
命令的 Documentation并不是很好。最好为documentation引用相关的工作表函数。 (即,COUNTIFS
vs Application.WorksheetFunction.Countifs
)
看起来您添加的条件无序。
COUNTIFS
语法COUNTIFS( criteria_range1, criteria1
[,criteria_range2, criteria2
[,criteria_range3, criteria3
[,criteria_range4, criteria4]]] … )
COUNTIFS
函数语法具有以下参数:
criteria1
(必填)评估相关标准的第一个范围。
criteria1
(必填)数字,表达式,单元格引用或文字形式的标准,用于定义哪些单元格将是计数。
例如,标准可以表示为32
,">32"
,B4
,"apples"
或"32"
。
[criteria_range2, criteria2,] ...
(可选)其他范围及其相关标准。
最多允许127
范围/标准对。
重要提示:
criteria_range1
参数具有相同的行数和列数。范围不必彼此相邻。Office.com:COUNTIFS function(带视频)