我正在做一个使用加速度计的项目,并且已经收集了大量的读数。我需要找到加速度峰值。我使用了以前找到的公式
= SUMPRODUCT(-(N3:N586> N2:N585),-(N3:N586> N4:N587))
值的范围是N2:N587,这是如何计算每个峰值的,所以即使传感器读数上下跳动也可以计数。有没有一种方法可以使它计数主要峰,例如PEAK =像元值大于之前或之后的3,4或5个像元值。 举个例子 0.01、0.02、0.015、0.018、0.015、0.014、0.016、0.02、0.017、0.018、0.014, 在这个样本中,我想将0.02视为主要峰,而不要将0.018视为次要峰。
如果我将其绘制为图形并进行手动计数,我可以做到,但是对于某些记录,我有3000多个值,因此我必须大量扩展图形才能对其进行计数。 任何帮助都将非常感谢
答案 0 :(得分:0)
您可以使用VBA并检查单元格值是否大于阈值。但是,您不需要VBA,可以使用另一列并仅编写IF
语句来检查是否超过阈值。如果是这样,请返回TRUE
。然后使用TRUE
计算所有COUNTIF
的值。或者,您可以直接使用COUNTIF
并检查阈值。
例如:
使用此公式应返回您范围内=COUNTIF($N$3:$N$586;">150")
以上的150个值的总数。请注意:单元格引用是绝对值。该公式返回一个总数,而不是总和。根据需要调整范围和阈值。
答案 1 :(得分:0)
您可以使用偏移量公式来检查当前读数是否大于上一个和下一个n读数:
=SUM(IFERROR(($A$2:$A$12>SUBTOTAL(4,OFFSET($A$1,ROW($A$2:$A$12)-B2-1,0,B2)))*
($A$2:$A$12>SUBTOTAL(4,OFFSET($A$1,ROW($A$2:$A$12),0,B2))),0))
必须使用 Ctrl Shift Enter
作为数组公式输入所需的偏移量存储在B2中。
我尝试了以下偏移量范围:
如您所见,当偏移量增加到6时,您没有峰,因为第二个峰0.02等于第一个峰0.02。这确实凸显了这种方法的潜在障碍,即如果您获得的真实峰值或平稳期(例如)有两个连续的0.02值,则不会计算在内。但是,如果您的实际数据有几个小数位,则可能不会发生。
该公式可能会在范围的末端给出一个虚假峰,因为它将超出范围的值(例如A13,A14等)计数为零-可以对该公式进行进一步完善以避免这种情况。