Excel-用于对多对非连续列中的条目进行计数的公式

时间:2018-10-21 13:02:10

标签: arrays excel count countif subtotal

我有以下示例矩阵:

A   B   C   D   E   F   G   H   I   J   K   L   M   N   O   P   Q   R   S   T   
1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
2   1       1                               1
3                   1   1       1   1   1                               1
4       1   1   1   1   1                   1      
5           1                   1               1   1   1       1           1

我正在尝试计算至少一对不连续的列(不包括A行)在两个列中都包含条目的行数。已知成对的列,但列之间的距离不是恒定的。在当前示例中,列B&K和C&L成对(距离或d = 9),E&I和F&J成对(d = 4),而G&S和H&T成对(d = 12)。请注意,列D没有与任何其他列配对。这经常发生:通常在没有内在配对的列之后,例如,A和E(d = 4),B&F(d = 4),C没有配对,D&K(d = 7),E&L(d = 7)等。

在当前示例中,至少一对列(如上所述)包含条目的行数为3。例如,第1行具有所有列对的条目,第3行具有列对的条目F&J以及G&S,第4行包含用于C&L列配对的条目。

这是我写的一个数组公式的示例:

=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(C1,ROW(C1:C5)-ROW(C1),0,1,COLUMNS(C1:D1)))>1,SUBTOTAL(2,OFFSET(A1,ROW(A1:A5)-ROW(A1),0,1,COLUMNS(A1)))))

它计算成对的顺序列(例如B&C,C&D)的条目数。我不确定如何更新它,以便它指定成对的非顺序列(例如,上面指定的B&K,C&L,E&I等)。

以下是一些条件:

  • 您可能不认为SUBTOTAL是最有效的选择(例如,MMULT abd SUBTOTAL可能更合适); 但是,我仅限于在单个excel公式中表达这一点(不幸的是,没有VBA代码)。我也无法创建新的列或行
  • 实际矩阵中的矩阵条目不一定为1,但它们是整数(范围为1至100)。
  • 在整个矩阵中,有8个列配对,其距离= 9,11个列配对的距离为12,和3个列配对的距离为3。

1 个答案:

答案 0 :(得分:1)

尝试以下公式

=SUM(IF((
    IF(B1:B5>0,IF(K1:K5>0,1))+
    IF(C1:C5>0,IF(L1:L5>0,1))+
    IF(E1:E5>0,IF(I1:I5>0,1))+
    IF(F1:F5>0,IF(J1:J5>0,1))+
    IF(G1:G5>0,IF(S1:S5>0,1))+
    IF(H1:H5>0,IF(T1:T5>0,1))
) > 0, 1, 0))

您可以在上面的列表中添加其余对,我已经添加了您提到的对。