要测试的 COUNTIFS 值是一个数组

COUNTIFS with value to be tested being an array

我正在尝试根据要测试的单元格值(列样本数据)是否出现在值数组(Excel 样本列)中来执行 COUNTIFS 函数。

显然做 COUNTIFS 很容易:

=COUNTIFS(  $E:$E,A6   ,$F:$F,"<"&EOMONTH($B,1), $F:$F, ">="&DATE(YEAR(B),MONTH(B),1), $G:$G, "<12")

其中函数中的列 E 等于一个值,在本例中为 a6。但是我遇到问题的地方是测试检查是否在一个值数组中,即在这个例子中单元格 a5 和 a6.

有人有什么想法吗? (除了明显的单独计数外,数组中的值远远超过两个!)

https://docs.google.com/spreadsheets/d/1QYbXwIdFEdjXqlLjF0b0jSusZNuqOMaUKVKZrjR4wko/edit?usp=sharing

我找不到使用几种不同组合的解决方案,我知道的大多数功能都需要一个参考单元格。

所以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

效果很好,但我对可以完成此操作的任何本机函数组合感兴趣!