我在Excel中有4列。
我想撤出任何落后的工作并显示客户名称。
A栏=客户名称
B列=他们的临时服务日期
C栏=最终服务状态(“已完成”,“现在预订!”,“以后的书”)
D栏=年度服务最紧急的客户
我只对“现在预订”感兴趣! C列中的条目。然后我需要与B列交叉引用它以找到最早的日期。如果找到最早的日期,我需要它来检查A列中的客户名称并返回D列中的客户名称
答案 0 :(得分:0)
添加第五列( E )。在该列中写下一个公式,该公式返回那些现在已经预订的人的日期!" (=if(C2="Book in now!", B2, "")
)。现在您要做的就是在E列中找到最小值,由于vlookup
不会向后工作,因此请使用Index
和Match
函数的组合来查找名称(请参阅: here)。请注意,在我的解决方案中,您只能获得1个名称,而不是所有紧急客户。
答案 1 :(得分:0)
有点长的公式,但我认为这是复杂性所必需的:
=INDEX(B24:B28,MIN(IF((D24:D28=D30)*(C24:C28=MIN(IF(D24:D28=D30,C24:C28))),ROW(B24:B28)-ROW()+1,9^99)))
此公式将作为数组公式输入,即输入公式后,不要按 Enter ,而是按 Ctrl + Shift 然后按 Enter 。
最里面的IF基本上是找到与D列相关的最早日期'现在预订!!',然后最外面的IF找到日期与之前找到的最早日期相匹配的行并且列D的值为'book in now !!'。如果不是先计算最早的日期,那么无论D列中的内容是什么,它都会找到最早的日期,这不一定是现在最早的“书”!!日期。
如果你可以使用E列,那么内部IF可以被移除到这样的东西:
=INDEX(B24:B28,MIN(IF((D24:D28=D30)*(C24:C28=MIN(E24:E28)),ROW(B24:B28)-ROW()+1,9^99)))
(但它仍然是一个数组公式)