在 EXCEL 中查找信号(查找 2 个连续点)

  • 本文关键字:查找 连续 EXCEL 信号 excel
  • 更新时间 :
  • 英文 :


我有一个数据集。在某一点触发了一个信号:它从 1 -> 0 变化(我知道列号),列看起来像这样

00000111111000022222233333(请转置此行)

我想编写一个执行此操作的命令(不一定是宏)

如果行 (x) = = 1 && 行 (x+1) = = 0

返回 x

问题是我不知道如何使用 IF(和... 没有行号...

提前感谢您的帮助

假设信号的列是 B 从第 1 行开始,然后在另一列中(例如 C 从 C2 开始)输入

=if(AND($B1=1,$B2=0),"Trigger","") 

并向下复制,然后在触发器上过滤

以下公式将返回0前面的1的行号

=LOOKUP(2,1/((myRng=1)*(OFFSET(myRng,1,0)=0)),ROW(myRng))

您没有编写如果有多个触发器时要发生的情况。 上面将返回最后一个触发器的行号。

myRng不能引用整个列,可以替换为例如 A1:A100 。 如果这样做,不妨将OFFSET(myRng,1,0)替换为A2:A101以使公式非易失性

解释:

(myRng=1)*(OFFSET(myRng,1,0)=0)

这会将 myRng 中的每个单元格乘以下一个单元格。 如果第一个 = 1,第二个 = 0,则因子解析为TRUE * TRUE并返回1 。 所以上面的将返回一个看起来像这样的数组:

{0;0;0;0;0;0;0;0;0;0;1;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0}

将该数组除以 1 将返回一个DIV/0错误数组或1

然后,LOOKUP 公式将返回最后一个1的位置,并使用行号数组进行result_vector,将适当匹配它。

最新更新