在Excel中查找并返回符合条件的下一个值

有一个看似简单的问题,我只是不知道如何解决。 这些是excel列:

PointID number result **1 1 2 1 #end resultA (3)** 3 0 4 0 **5 1 #start 6 1 7 1 #end resultB (2)** 8 0 9 1 #start 10 1 #end 11 0 

#是评论标志。 ** **是重点

关键是在当前值为1,下一个为0(称为终点)的“数字”列中find一个值,然后查找当前值为1,前一个为0的同一列中的下一个值起点)。 在每个起点和终点之间是一条短线。

然后在'result'列中(可以到任意一行),根据现有的值计算一个函数的结果(只需命名为functionA),当计算结果resultA达到阈值3时,我将突出显示所有涉及这些值两行,并在稍后删除它们。 如数据中所见。 resultA使用'number'列中的点(ID2和ID5)的值计算,并达到阈值,因此这两行中的所有点都以粗体突出显示。 resultB没有达到阈值,所以line3中的点不会突出显示。 我想不出如何编写填写“结果”列的函数。 任何想法? 在这里输入图像说明

现在问题已经简化了:H列是我的结果! 我需要做的只是find小于100的H单元格(单元格突出显示为48,因此它符合标准),并突出显示K列中连续1个值为1,1,1的所有数据。 。最接近当前行。 如在图像中突出显示。 这个select是最后一步。

澄清:

工作表中的H列对应于第一个Excel数据集中的结果列。 现在看看工作表。

这行13(H值为48.9)是终点在哪里 – 从K列你可以看到一系列的1 ..并且告诉你每个列表的结尾和起点在哪里做成1。

所以H13的48.09是用当前列表的结束点的G列值和下一个列表的起点G13和G15计算出来的。 所以K13 =function(G13,G15)

需要做的是,如果这个值在H <100,那么find这两个列表中的所有点并select(第一个列表从当前的结束点上升到1,K列中消失,第二个列表从下一个开始直到1消失在K列)。

如表中所示,因为48 <100,我只需select前一个列表中的所有点(即从第6-13行),并指向下一个列表(即从第14行到第22行),并用红色突出显示。

希望现在这个问题不能解决,说起来有点难,但真的应该是个简单的问题。 不知道excel是否可以处理这个问题。

我不得不承认,我花了一段时间才能理解你是如何到达结果栏中的数字的,但我想我有一个基于公式的解决scheme。

格式化的汇总结果

我不得不拆分#start#end标签,以便将列B中的数字视为实际数字。 D2中的公式是,

=IF(AND($B2=1,$B3=0),TEXT(IFERROR(MATCH(1, $B3:$B$99,0),COUNT($B2:$B$98)),"\r\e\s\u\l\t\"&CHAR(64+SUMPRODUCT(SIGN(LEN($D$1:$D1))))&"\(0\)\*\*"),"")

根据需要填写。

Interesting Posts