我想使用Excel计算一系列数据中的“最佳”和“当前”条纹。
假设一家商店的当天销售目标是500。我有一列,其中包含最近5年的每日销售数据。如何使用这些数据来计算达到销售目标的最佳天数和当前天数。
我尝试使用COUNTIF(C:C,“> = 500”),但问题是它只计算目标达到的所有天数,不计算最佳的“连胜”时间,也不记录某天的天数达到目标的行。
谨在此先感谢。
Helper列将使此操作更加容易。让我们看看是否可以没有它。
实际上,我们根本不会使用COUNTIF
,只是一个简单的增量计数器。
请注意,我们已经使您的销售目标成为动态目标,并在cell中对其进行了定义D1
。事实证明,将它放在其他地方会稍微简单一些。因此,如果您按照这些说明进行操作,则可能更喜欢将其放入,G1
并调整其后的所有$D$1
单元格引用$G$1
。
=IF(C2<$D$1,"dq",IF(AND(C1<$D$1,C2>=$D$1),1,D1+1))
=IF(C2<$D$1,"dq",
如果当前记录不符合条件,则取消其资格。
IF(AND(C1<$D$1,C2>=$D$1),1,
如果当前记录是第一个连续的限定符(C1<$D$1
测试先前记录的“ dq”状态;C2>=$D$1
测试当前记录的限定性),则使其值等于1
D1+1))
否则-也就是说,如果当前记录既不是不合格的总数也不是第一个合格的总数,则使其值等于其上方的记录多一个。
此公式从复制下来D2
。请注意,如果第一个记录(第2行)是合格记录,并且您D1
必须定义目标,则使用它会造成麻烦,因为D1
看起来像是500个条纹。出于示例的目的,为了简单起见,我只是选择要保证第一条记录不符合条件。
从这里开始,添加接下来的几个功能应该非常简单。
=MAX(INDIRECT("D2:D"&COUNTA(D:D)))
我们在这里使用动态单元格引用,因此我们不必担心扩大范围。我们无法D:D
再次使用,因为该最大值会在500英寸时返回D1
。但是=MAX($D$2:$D$9999)
,如果您愿意,您可以简单地写东西。INDIRECT
无论如何,使用是一种好习惯。
然后,想必,你已经识别信息A
和B
-也许是一个日期,你想与你的“最长连胜”相关联?
=INDEX(B:D,MATCH(G2,D:D,0),1)
如上面的单元格中所计算的,这很INDEX
MATCH
容易找到最长的条纹的(第一个)实例。
LARGE
的那-但由于(根据定义,第n个最长条带的长度,其中n > 1)将不止一次发生,因此获取该条带日期的查找不适用于此方法。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句