Excel 具有可变标准的 COUNTIF,然后将所有结果添加到其上方的单元格
Excel COUNTIF with variable criteria, then adding all results to cells above them
使用了各种公式来创建多列数字。
B 列和 C 列值的总和创建了 D 列中的值。B 列数字按从 B2 到 B58 的降序排列。因为C中的那些不是降序的,所以D中的一些值也不是这样。
样本:
B C D
79.3 2.5 81.8
76.7 1.5 78.2
75.3 2.1 77.4
73.2 6.3 79.5*
66.9 1.6 68.5
65.2 0.6 65.8
64.6 1.7 66.3*
62.9 2.2 65.1
在此示例中,D 中的两个值比它们上面的单元格大。
在 E 列中,我想在 D 列中找到所有这样的单元格,其中 D(n+1) > D(n)。无论发生什么情况,我都想将相邻的 C(n+1) 添加到 D$2:D(n+1) 单元格的整个范围。
简单地说,如果 D34 > D33,那么我想将 C34 添加到其上方的所有单元格中,在 D$2:D33 中。想法?
我想这样就可以了:-
=D2+SUM((D3:D>D2:D)*C3:C)
使用 Ctrl Shift Enter 在 E2 中输入并下拉,假设原始数据从第 2 行开始。
想法是,将 C 列中当前单元格下方 D 中的相应值出现乱序的所有值的总和添加到 D 列中的当前值。
编辑
如果 D 列中的最后一对数字顺序不正确,则公式将在 E 列的最后一行给出错误的结果(因为它试图将 D$9:D10 与 D8:D$9 在例子)。如果我们可以假设数据后面跟着一个空行,这可以很容易地解决
=D2+IF(D3<>"",SUM((D3:D>D2:D)*C3:C))
另一方面,如果我们只能假设D$2:D$9是一个固定范围,则公式应该是
=D2+IF(ROWS(D:D2)<ROWS(D:D),SUM((D3:D>D2:D)*C3:C))
感谢@Dave M 指出这一点。
使用了各种公式来创建多列数字。
B 列和 C 列值的总和创建了 D 列中的值。B 列数字按从 B2 到 B58 的降序排列。因为C中的那些不是降序的,所以D中的一些值也不是这样。
样本:
B C D
79.3 2.5 81.8
76.7 1.5 78.2
75.3 2.1 77.4
73.2 6.3 79.5*
66.9 1.6 68.5
65.2 0.6 65.8
64.6 1.7 66.3*
62.9 2.2 65.1
在此示例中,D 中的两个值比它们上面的单元格大。
在 E 列中,我想在 D 列中找到所有这样的单元格,其中 D(n+1) > D(n)。无论发生什么情况,我都想将相邻的 C(n+1) 添加到 D$2:D(n+1) 单元格的整个范围。
简单地说,如果 D34 > D33,那么我想将 C34 添加到其上方的所有单元格中,在 D$2:D33 中。想法?
我想这样就可以了:-
=D2+SUM((D3:D>D2:D)*C3:C)
使用 Ctrl Shift Enter 在 E2 中输入并下拉,假设原始数据从第 2 行开始。
想法是,将 C 列中当前单元格下方 D 中的相应值出现乱序的所有值的总和添加到 D 列中的当前值。
编辑
如果 D 列中的最后一对数字顺序不正确,则公式将在 E 列的最后一行给出错误的结果(因为它试图将 D$9:D10 与 D8:D$9 在例子)。如果我们可以假设数据后面跟着一个空行,这可以很容易地解决
=D2+IF(D3<>"",SUM((D3:D>D2:D)*C3:C))
另一方面,如果我们只能假设D$2:D$9是一个固定范围,则公式应该是
=D2+IF(ROWS(D:D2)<ROWS(D:D),SUM((D3:D>D2:D)*C3:C))
感谢@Dave M 指出这一点。