我有以下示例矩阵:
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 等,如上所述(。
以下是一些条件:
- 您可能不认为小计是最有效的选项(例如,MMULT abd SUBTOTAL可能更合适(;但是,我仅限于在单个 excel 公式中表达这一点(不幸的是,没有 VBA 代码(。我也无法创建新列或新行。 矩阵
- 条目在实际矩阵中不一定是 1,但它们是整数(范围从 1 到 100(。
- 在完整矩阵中,有 8 个距离 = 9 的列对,距离为 12 的 11 列配对和距离为 3 的 3 列配对。
试试这个公式
=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))
您可以在上面的列表中添加剩余的对,我已经添加了您提到的那些。