用条件计数行,而不是多次计算同一行
所以我正在计算有多less行包含5个值中的至less一个的值“X”,然后排除任何包含2个不同列中相同的值的行,但我不知道我的function正在做我认为的事情。
所以基本上这样:“获取列A,B,C,D,E中至less一列中包含”X“的所有行,然后排除列F中的值等于列G中的值的任何行”
这是我的,但我不认为这是正确的,我得到的数字似乎非常低:
=SUMPRODUCT((A1:A100="X")*(B1:B100="X")*(C1:C100="X")*(D1:D100="X")*(E1:E100="X")*(F1:F100<>G1:G100))
这将做到这一点:
=SUMPRODUCT((0<(A1:A100="x")+(B1:B100="x")+(C1:C100="x")+(D1:D100="x")+(E1:E100="x"))*(F1:F100<>G1:G100))
这个简单的计算没有必要使用任何辅助单元。
对于这样的组合条件,最好预留几列以获得部分结果(稍后可以隐藏)。 这是渐进式制造更容易,而能够检查部分结果是正确的。
所以把H1中的公式计算在A1:E1中的X的数量
=COUNTIF(A1:E1; "X")
将该公式进一步复制到H列。 然后在I1中,对F1 <> G1进行testing
=IF(F1<>G1; 1; 0)
将该公式向下复制到I列中。 然后在J1中查看是否应该根据这两个部分结果来计算行:
=IF(H1*I1=0; 0; 1)
将该公式向下复制到J列。 现在你的最终结果是
=SUM(J1:J10000)
当然,你可以在一个公式中做所有的事情,但是debugging起来要困难得多。 以上述方式,您可以轻松地发现中间结果中的错误。 一旦您对结果满意,您只需隐藏中间计算列。
在H1中input:
=IF(AND(COUNTIF(A1:E1,"X")>0,F1<>G1),1,0)
并复制到H100
那么你需要的是:
=SUM(H1:H100)