使用索引/匹配的Excel公式
我正在处理订单的活动日志。 我的目标是find被拒绝的订单数量,然后最终发布。 如果该评论以“D”开头,则任何其他评论均为发布。
如果备注以表格中的“D”匹配顺序号开始,且date大于“D”备注date,则返回发布date。
这是我正在使用的公式,但我错过了date逻辑,它返回第一个订单#匹配。
=SUM(IF(LEFT(C13,1)="D",INDEX($A$2:$E$2305,MATCH(E13,$E$2:$E$2305,0),4),1))
如果您的数据不总是按升序sorting,请使用以下数组公式:
=IF(LEFT(C13,1)="D",INDEX($D$2:$D$2305,MATCH(1,(E13=$E$2:$E$2305)*(D13<$D$2:$D$2305),0)),1)
作为一个数组公式,在退出编辑模式时,必须使用Ctrl-Shift-Enter而不是Enter来确认。 如果正确完成,则Excel将在公式周围放置{}
。
如果找不到匹配,这个公式将会显示一个错误,这个命令从来没有被释放来处理那个错误,我们可以这样做:
=IF(LEFT(C13,1)="D",IFERROR(INDEX($D$2:$D$2305,MATCH(1,(E13=$E$2:$E$2305)*(D13<$D$2:$D$2305),0)),"Not Released"),1)
现在,如果订单从来没有发布,那么你会得到Not Released
你可以改变任何你想要的。
如果最终的发布date总是低于被拒绝的,那么设置从下一行开始的索引匹配应该修复它。 有了图像,我无法剪切和粘贴数据来检查。
对于突出显示的行:
=IF(LEFT(C13,1)="D",INDEX(A14:$E$2305,MATCH(E13,E14:$E$2305,0),4),1)
这确实假定拒绝只会发生一次。