如何忽略前几行中已计算的值以进行累积计数

How to ignore values already counted in previous rows for cumulative count

我有一个如下所示的数据集:

Sample  Species1    Species2    Species3    Cumulative count
1       1                                   1
2       1           1                       2
3       1                                   2
4       2                                   2
5       1           2           1           3

我想计算每个样本添加的每个新物种。所以在上面的例子中,样本 3 和样本 4 没有在物种总数中添加任何新物种,因此它们的累积计数保持不变(我正在尝试创建物种累积曲线)。

我已经试过了,但无法让它与 >0 的数字(例如)而不是文本一起工作:

本质上,我需要一些东西来检查当前行中的物种是否已经存在于之前的行中。 目标是生成这样的图表,因此我可以确定采样工作量开始减少的位置 return(物种数量):

是否有一个 excel 公式可以用来填充 'Cumulative count' 列和 return 上面的结果?我还应该提到,一个简短的解决方案是最好的,因为我有超过 35 个物种,而且公式很快就会变得又长又复杂。如有任何帮助,我们将不胜感激。

水平移动很容易 较小的公式:

=SUMPRODUCT((B3:D3>0)*1,(B:D2<=0)*1)+E2

.......

=SUMPRODUCT((B6:D6>0)*1,(B:D2<=0)*1,(B:D3<=0)*1,(B:D4<=0)*1,(B:D5<=0)*1)+E5

我找到了一种方法,但这可能需要改进一下:

对于我们的第一个射精计数行:

=COUNTIF(B2:D2,"<>" & "")

此后每个:

=IF(AND(B3>0,SUM(B:B2)<=0),1,0)+IF(AND(C3>0,SUM(C:C2)<=0),1,0)+IF(AND(D3>0,SUM(D:D2)<=0),1,0)+E2

.......

=IF(AND(B6>0,SUM(B:B5)<=0),1,0)+IF(AND(C6>0,SUM(C:C5)<=0),1,0)+IF(AND(D6>0,SUM(D:D5)<=0),1,0)+E5

一个较短的解决方案是 UDF,由 JvdV 在此处提供: 计算器。com/questions/51980149/count-column-if-it-contains-a-filled-cell-in-excel/51980258

Well, I guess if you want to work without any helper rows to use the COUNTA funtion a smooth way could be a UDF, possibly like so:

Function CountColumns(RNG As Range) As Long

Dim COL As Range
For Each COL In RNG.Columns
    If Application.WorksheetFunction.CountA(COL) > 0 Then CountColumns = CountColumns + 1
Next COL

End Function