作业帮 > 综合 > 作业

求助公式解释下图为“test”表下图为“打卡记录”表在“打卡记录”表中的E3单元格输入公式:=IFERROR(VLOOK

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/17 22:14:03
求助公式解释

下图为“test”表

下图为“打卡记录”表

在“打卡记录”表中的E3单元格输入公式:=IFERROR(VLOOKUP(E$1,OFFSET(test!$F$2:$H$51,MATCH(打卡记录!$B3&$D3,test!$F$2:$F$51,0)-1,1,COUNTIF(test!$F$2:$F$51,$B3&$D3)),2,FALSE),"未打卡")

问题:1、为什么我单独把OFFSET(test!$F$2:$H$51,MATCH(打卡记录!$B3&$D3,test!$F$2:$F$51,0)-1,1,COUNTIF(test!$F$2:$F$51,$B3&$D3))   公式中的这段拿出来结果是:#VALUE!

2、VLOOKUP中为什么要用OFFSET函数


1、这个公式就错或者说明没有找到,iferror这个函数就是出现类似这样错误而设计的,当公式没错误时,他就返回公式的值,就如题中的时间.如果公式有错时,就返回另一个值,如你上面的“未打卡”.
2、这个公式中用offset是为了返回一个区域,具体很难说清楚,你去学一下这个函数,就明白了.
再问: 为什么Vlookup中不能直接指定H列,而要用offset来确定区域?
再答: 他本来就是指定的查找H列,这个公式中vlookup这个函数第一个参数是一个条件如上面的早班,第二个参数是一个区域包括查找的条件那个列和有结果的那个列,正如上面其实选择的大范围也是text表中的G列和H列(因为H列中有很多早班所以要用到上面复杂的offset函数缩小范围),第三个参数是从条件那列开始算第一列,在第二个参数区域中的第几列,在上面例子就是数字2,说明是第二列,其实就是h列。