Excel - 多对列的缩小数组公式

Excel - Downsize Array Formula For Multiple Pairs of Columns

我有以下示例矩阵:

A   B   C   D   E
1   1   1   1   1
2   1       1   
3   1   1       
4           1   1
5       1       1

我的任务是计算至少一对列(不包括 A 行)在两列中都包含条目的行数(例如,B 和 C 构成一对,D 和 E 构成另一对)。在上面的示例中,答案是 3:第 1 行包含两对列的条目,第 3 行包含第一对列 (B & C) 的条目,第 4 行包含第二对列 (D & E) 的条目).这是 3 行,其中至少包含一对指定列的数据。

下面的数组公式达到了预期的结果:

=COUNT(IFS(SUBTOTAL(2,OFFSET(B1,ROW(B1:B5)-ROW(B1),0,1,COLUMNS(B1:C1)))>1,SUBTOTAL(2,OFFSET(A1,ROW(A1:A5)-ROW(A1),0,1,COLUMNS(A1))),SUBTOTAL(2,OFFSET(D1,ROW(D1:D5)-ROW(D1),0,1,COLUMNS(D1:E1)))>1,SUBTOTAL(2,OFFSET(A1,ROW(A1:A5)-ROW(A1),0,1,COLUMNS(A1)))))

问题是,我有大约 30 对列(有些不相邻)和一个相对较大的数据集(最多 10,000 行)。我正在寻找一种更有效的方法来在 Excel 公式中实现所需的结果。 请注意,我希望避免创建新的行或列,这就是我使用数组公式的原因

不太清楚为什么要在示例中包括 A 列,如果它实际上是不相关的。

因此,对于范围 B1:E5:

=SUMPRODUCT(N(MMULT((B1:D5<>"")*(C1:E5<>"")*ISEVEN(COLUMN(C1:E5)-MIN(COLUMN(C1:E5))),ROW(INDEX(A:A,1):INDEX(A:A,COLUMNS(B1:D5)))^0)>0))

根据需要扩展范围,但请注意 INDEX 结构中的 A:A 部分应保持不变。

以上不需要 CSE。

此致