Excel 待测试值为数组的CountIf

Excel 待测试值为数组的CountIf,excel,countif,Excel,Countif,我正在尝试根据要测试的单元格值(col样本数据是否显示在Excel样本col的值数组中)执行COUNTIFS函数 显然,做一个COUNTIFS很容易: =COUNTIFS( $E$3:$E$13,A6 ,$F$3:$F$13,"<"&EOMONTH($B$3,1), $F$3:$F$13, ">="&DATE(YEAR(B$3),MONTH(B$3),1), $G$3:$G$13, "<12") 其中,函数中的列E等于一个值,在本例中为a6。但我遇到问题

我正在尝试根据要测试的单元格值(col样本数据是否显示在Excel样本col的值数组中)执行COUNTIFS函数

显然,做一个COUNTIFS很容易:

=COUNTIFS(  $E$3:$E$13,A6   ,$F$3:$F$13,"<"&EOMONTH($B$3,1), $F$3:$F$13, ">="&DATE(YEAR(B$3),MONTH(B$3),1), $G$3:$G$13, "<12")
其中,函数中的列E等于一个值,在本例中为a6。但我遇到问题的地方是测试以检查值数组中是否存在单元格a5和a6

有人有什么想法吗?除了明显的单独计数外,数组中还有远远不止两个值


我无法用几个不同的组合找到解决方案,我知道的大多数函数都需要一个参考单元格

所以VBA版本:

Function ARRAYMATCHS(RefRng As Range, DataRng As Range, DateRng As Range, RefMonth As String, MonthsRng As Range, Months As Integer)

    Dim x As Integer
    Dim c As Integer
    x = 0
    c = 0

    For Each cell In DataRng
    c = c + 1
        If Not IsError(Application.Match(cell.Value, RefRng, 0)) Then
           If (MonthsRng(c, 1) > Months) Then
                If (Month(DateRng(c, 1)) = RefMonth) Then
                    x = x + 1
                End If
           End If
        End If
    Next cell

    ARRAYMATCHS = x

End Function
这很好,但我会对任何本机函数组合感兴趣,可以做到这一点