Excel - 计算多对非顺序列中条目的公式
Excel - Formula For Counting Entries Within Multiple Pairs of Non-Sequential Columns
我有以下示例矩阵:
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 的列对。
试试这个公式
=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))
您可以添加上面列表中剩余的对,我已经添加了您提到的那些。
我有以下示例矩阵:
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 的列对。
试试这个公式
=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))
您可以添加上面列表中剩余的对,我已经添加了您提到的那些。