试试这个:
=arrayformula(if(A3:A<>"",iferror(vlookup(A3:A&B1,{INT(Records!B:B)&Records!A:A,Records!A:D},{3,4,5},false),),))
考虑到未来日期和“缺席”:
=arrayformula(if(A3:A<>"",iferror(vlookup(A3:A&B1,{INT(Records!B:B)&Records!A:A,Records!A:D},{2,3,4,5},false),IF(A3:A<=TODAY(),"ABSENT","-")),))
细分:
VLOOKUP 取 Col A 中的日期和 B1 中的名称,然后引用第一个 {},以与 {INT(Records!B:B)&Records!A:A 进行比较,这是一整天没有使用 INT 的时间日期/时间和人名。
在完全匹配的情况下,{2,3,4,5} 从第二个数组 {} 中带回第 2、3、4、5 列。
如果有匹配IFERROR 的错误,则检查IF(A3:A<=TODAY(),"ABSENT","-")。如果当天是今天或之前,则输入"ABSENT",否则输入"-"。
if(A3:A<>""... 一开始只有VLOOKUP,而A列中的值不是空白,否则,)什么都不做(,和)之间的空格)。
ARRAYFORMULA 在表格中工作。