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

时间:2014-11-19 21:24:55

标签: excel return

有一个看似简单的问题,我只是不知道如何修复。这些是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

#是评论标志。  bewtween ** **是亮点

关键是在'number'列中找到一个值,当前值为1,下一个为0(称为终点),然后在同一列中查找下一个值,当前值为1,前一个为0(呼叫开始点)。每个起点和终点之间是一条短线。

然后在'result'列(可以转到任何一行),根据现有值计算函数的结果(只是将其命名为functionA),当计算结果resultA达到阈值3时,我将突出显示所有值参与这两行并在以后删除它们。如数据所示。 resultA是使用'number'列中的点(ID2和ID5)的值计算的,它达到了阈值,因此这两行中的所有点都以粗体突出显示。 resultB未达到阈值,因此第3行中的点不会突出显示。我想不出如何编写填充“结果”列的函数。有什么想法吗?enter image description here

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

澄清:

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

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

因此,使用G13和G15计算H13上的48.09,它们是当前列表的终点的G列值和下一个列表的起始点。所以K13 =功能(G13,G15)

需要做的是,如果H中的该值<&lt; 100,然后找到这两个列表中的所有点并选择(第一个列表从当前终点上升,直到1在K列中消失,第二个列表从下一个起始点下降,直到1在K列中消失)。

就像在工作表中一样,因为48&lt; 100,我只选择前一个列表中的所有点(即第6-13行),然后指向下一个列表(即第14行到第22行)并突出显示它们红色的。

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

1 个答案:

答案 0 :(得分:0)

我必须承认,我花了一些时间来理解你是如何得出结果栏中的数字的,但我认为我有一个基于公式的解决方案。

Formatted aggregate results

我必须拆分 #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\)\*\*"),"")

根据需要填写。