【问题标题】:How to ignore values already counted in previous rows for cumulative count如何忽略先前行中已计入累积计数的值
【发布时间】:2018-08-23 01:27:11
【问题描述】:

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

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 一起工作(例如),而不是文本: How to ignore data previously counted by countif and return a specific value in cell

基本上,我需要检查当前行中的物种是否已经存在于前行中。 目标是生成这样的图表,因此我可以确定采样工作从哪里开始收益递减(以物种数量计):

是否有一个 Excel 公式可以用来填充“累积计数”列并返回上面的结果?我还应该提到一个简短的解决方案是最好的,因为我有 35 多个物种,而且公式会很快变得冗长和复杂。任何帮助将不胜感激。

【问题讨论】:

  • 是的,上例中最大和为 3。我想根据累积总和绘制样本数,以确定努力和回报之间的最佳权衡。

标签: excel match countif cumulative-sum


【解决方案1】:

横向走更小公式:

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

.......

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

我找到了一个方法,但这可能可以稍微改进一下:

对于我们的第一个 Cum Count Row:

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

之后的每一个:

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

.....................

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

【讨论】:

  • 谢谢 - 这是一个解决方案。但是,我有 35 多个物种,这需要一段时间来创建方程。更短的解决方案会更好。我一直在尝试 SUMPRODUCT,但无法正常工作。
  • @Grubbmeister 新编辑将公式减少了 25%。 UDF 可能效果最好。为了公平起见,您提到“是否有 excel 公式”。
【解决方案2】:

更短的解决方案是 UDF,由JvdV 提供: stackoverflow.com/questions/51980149/count-column-if-it-contains-a-filled-cell-in-excel/51980258

好吧,我想如果你想在没有任何辅助行的情况下使用 COUNTA 函数的平滑方式可能是 UDF,可能是这样的:

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

【讨论】:

    猜你喜欢
    • 2014-09-03
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2013-06-19
    • 2020-06-27
    • 1970-01-01
    • 2019-06-06
    • 2021-10-29
    相关资源
    最近更新 更多