Excel 帮助:搜索 Second/Third 迭代以查找匹配的状态
Excel Help: Search for Second/Third iteration to find matched status
Two sheets of info
我有 2 sheet 的数据(但粘贴在一个 sheet 本身),因为我试图根据服务器查找特定日期的每个作业的状态姓名。我的公式在同一天没有重复之前没有任何问题。
如果作业在同一天运行两次/三次,那么我的条件就失败了。现在我想再添加一个条件来限定时间范围。
这是我的条件..
如果时间在下午 5 点之前,并且接近 5 点的最新作业是成功的,那么它应该捕获成功。
任何在下午 5 点之前失败的工作都是失败的。如果它在下午 5 点之前失败、成功、失败,那么它就是失败的(因为最新的失败了)。
这里我使用了另一种公式将文本转换为日期格式,但我没有从该文本转换时间。任何帮助,将不胜感激。我也可以为时间再添加一列。
我在这里使用了 2 个公式..
=INDEX(I2:I8,MATCH(1,(A2=L2:L8)*(C1=J2:J8),0)) #查找状态
=DATE((MID((TEXT(LEFT(K2,10),"mm/dd/yyyy")), FIND("/", (TEXT(LEFT(K2,10),"mm/dd/yyyy")), FIND("/", (TEXT(LEFT(K2,10),"mm/dd/yyyy")))+1)+1,256)),LEFT((TEXT(LEFT(K2, 10),"mm/dd/yyyy"),FIND("/",(TEXT(LEFT(K2,10),"mm/dd/yyyy")))-1),(SUBSTITUTE(MID(SUBSTITUTE( "/"&(TEXT(LEFT(K2,10),"mm/dd/yyyy"))&REPT(" ",6),"/",REPT(",",255)),2*255,255), “,”,“”)))
#将文本转换为日期
您可以尝试使用 2 个辅助列:
辅助列 1(日期)
在这里,我使用以下公式从“日期和时间”字段中提取日期:
=DATE(RIGHT(MID(L2;1;FIND(" ";L2)-1);4);LEFT(L2;FIND("/";L2)-1);MID(L2;查找("/";L2)+1;查找("/";L2;查找("/";L2)+1)-查找("/";L2)-1))
辅助列 2(标记时间)
这里我放了一个值来判断时间是否在5p.m之前。哪个时间离这个小时更近。
- 首先我们要提取时间值,所以我用公式来做:
--MID(L2,FIND(" ",L2)+1,LEN(L2))
- 为了判断时间是否在5p.m之前。我使用了(如果时间在 5 p.m 之后,则给出更大的值。):
IF(时间<=17/24,0,10)
- 最后我得到了一个值,该值与距离 5 p.m 的时间有多近有关。
(17/24-时间)
最终公式为:
=IF(--MID(L2,FIND(" ",L2)+1,LEN(L2))<=17/24,0,10)+(17/24-(--MID(L2,FIND(" ",L2)+1,LEN(L2))))
有了帮助列上的这些值,我们现在可以实现您正在寻找的东西。我正在使用这个数组公式(不要忘记按 Ctrl+Shift+Enter 才能正常工作):
=IF(SUM(($M:$M=$A2)*($J:$J=B))=0,"",INDEX($I:$I,MAX(IF(MIN(IF(($M:$M=$A2)*($J:$J=B),$K:$K,""))=($M:$M=$A2)*($J:$J=B)*$K:$K,ROW($I:$I)-1,""))))
这是我们得到的结果:
You cand find an example here.(您必须下载为 excel 文件进行测试)
Two sheets of info
我有 2 sheet 的数据(但粘贴在一个 sheet 本身),因为我试图根据服务器查找特定日期的每个作业的状态姓名。我的公式在同一天没有重复之前没有任何问题。
如果作业在同一天运行两次/三次,那么我的条件就失败了。现在我想再添加一个条件来限定时间范围。
这是我的条件.. 如果时间在下午 5 点之前,并且接近 5 点的最新作业是成功的,那么它应该捕获成功。 任何在下午 5 点之前失败的工作都是失败的。如果它在下午 5 点之前失败、成功、失败,那么它就是失败的(因为最新的失败了)。
这里我使用了另一种公式将文本转换为日期格式,但我没有从该文本转换时间。任何帮助,将不胜感激。我也可以为时间再添加一列。
我在这里使用了 2 个公式.. =INDEX(I2:I8,MATCH(1,(A2=L2:L8)*(C1=J2:J8),0)) #查找状态
=DATE((MID((TEXT(LEFT(K2,10),"mm/dd/yyyy")), FIND("/", (TEXT(LEFT(K2,10),"mm/dd/yyyy")), FIND("/", (TEXT(LEFT(K2,10),"mm/dd/yyyy")))+1)+1,256)),LEFT((TEXT(LEFT(K2, 10),"mm/dd/yyyy"),FIND("/",(TEXT(LEFT(K2,10),"mm/dd/yyyy")))-1),(SUBSTITUTE(MID(SUBSTITUTE( "/"&(TEXT(LEFT(K2,10),"mm/dd/yyyy"))&REPT(" ",6),"/",REPT(",",255)),2*255,255), “,”,“”))) #将文本转换为日期
您可以尝试使用 2 个辅助列:
辅助列 1(日期) 在这里,我使用以下公式从“日期和时间”字段中提取日期:
=DATE(RIGHT(MID(L2;1;FIND(" ";L2)-1);4);LEFT(L2;FIND("/";L2)-1);MID(L2;查找("/";L2)+1;查找("/";L2;查找("/";L2)+1)-查找("/";L2)-1))
辅助列 2(标记时间) 这里我放了一个值来判断时间是否在5p.m之前。哪个时间离这个小时更近。
- 首先我们要提取时间值,所以我用公式来做:
--MID(L2,FIND(" ",L2)+1,LEN(L2))
- 为了判断时间是否在5p.m之前。我使用了(如果时间在 5 p.m 之后,则给出更大的值。):
IF(时间<=17/24,0,10)
- 最后我得到了一个值,该值与距离 5 p.m 的时间有多近有关。
(17/24-时间)
最终公式为:
=IF(--MID(L2,FIND(" ",L2)+1,LEN(L2))<=17/24,0,10)+(17/24-(--MID(L2,FIND(" ",L2)+1,LEN(L2))))
有了帮助列上的这些值,我们现在可以实现您正在寻找的东西。我正在使用这个数组公式(不要忘记按 Ctrl+Shift+Enter 才能正常工作):
=IF(SUM(($M:$M=$A2)*($J:$J=B))=0,"",INDEX($I:$I,MAX(IF(MIN(IF(($M:$M=$A2)*($J:$J=B),$K:$K,""))=($M:$M=$A2)*($J:$J=B)*$K:$K,ROW($I:$I)-1,""))))
这是我们得到的结果:
You cand find an example here.(您必须下载为 excel 文件进行测试)