有一个看似简单的问题,我只是不知道如何修复。这些是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行中的点不会突出显示。我想不出如何编写填充“结果”列的函数。有什么想法吗?
现在问题已经简化了: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是否可以处理这个问题。
答案 0 :(得分:0)
我必须承认,我花了一些时间来理解你是如何得出结果栏中的数字的,但我认为我有一个基于公式的解决方案。
我必须拆分 #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\)\*\*"),"")
根据需要填写。