我有一个具有工作人员实时状态的excel工作表,它根据他在系统上的状态从空闲状态变为忙碌状态,反之亦然,我正在尝试获取最后状态下状态栏中第一个更改的单元格。
例如,在下面,它应该是“ Avail”(又名C12),因为它是当前状态的第一行。因此,由于相同的原因,它应该忽略空闲状态,因为在那之后还有另一个状态,而繁忙状态。闲着并转到Avail中的第一行。
到目前为止我所拥有的。
=LOOKUP(2,1/('Real-Time-Status'!B:B=B2),'Real-Time-Status''!D:D)
但是它为我提供了状态栏中的最后一个值。在下面的示例中是C5,而不是C12。
Name ID Status Timestamp
John Doe 1111 Idle 24/03/2019 15:27:15
John Doe 1111 Idle 24/03/2019 15:27:49
John Doe 1111 Idle 24/03/2019 15:28:23
John Doe 1111 Idle 24/03/2019 15:28:59
John Doe 1111 Busy 24/03/2019 15:29:34
John Doe 1111 Busy 24/03/2019 15:30:11
John Doe 1111 Busy 24/03/2019 15:30:47
John Doe 1111 Busy 24/03/2019 15:31:25
John Doe 1111 Idle 24/03/2019 15:32:20
John Doe 1111 Idle 24/03/2019 15:33:00
John Doe 1111 Idle 24/03/2019 15:34:05
John Doe 1111 Avail 24/03/2019 15:35:25
John Doe 1111 Avail 24/03/2019 15:36:25
John Doe 1111 Avail 24/03/2019 15:37:25
答案 0 :(得分:1)
这是一种返回列D值的方法:
我使用的公式翻译为:
{=INDEX(D1:D15,MAX(--((C1:C15<>LOOKUP(2,1/(C:C<>""),C:C))*ROW(C1:C15)))+1)}
请注意,这是一个数组公式,应通过 Ctrl Shift Enter
输入如果您的数据实际上包含更多人,它可能看起来像这样:
该示例中使用的公式转换为:
{=INDEX(D1:D15,MAX(--(C1:C15<>INDEX(C1:C15,MAX(--(A1:A15=F2)*(ROW(A1:A15)))))*(A1:A15=F2)*ROW(C1:C15))+1)}
它也是一个数组公式。并且您可能要考虑对范围使用绝对单元格引用。