先给你关于LOOKUP函数的介绍:
用途:返回向量(单行区域或单列区域)或数组中的
数值。该函数有两种语法形式:向量和数组,其向
量形式是在单行区域或单列区域(向量)中查找数值,
然后返回第二个单行区域或单列区域中相同位置的
数值;其数组形式在数组的第一行或第一列查找指
定的数值,然后返回数组的最后一行或最后一列中
相同位置的数值。
语法1(向量形式):LOOKUP(lookup_value,
lookup_vector,result_vector)
语法2(数组形式):LOOKUP(lookup_value,array)。
参数1(向量形式):Lookup_value为函数LOOKUP 在
第一个向量中所要查找的数值。Lookup_value 可以
为数字、文本、逻辑值或包含数值的名称或引用。
Lookup_vector 为只包含一行或一列的区域。
Lookup_vector 的数值可以为文本、数字或逻辑值。
参数2(数组形式):Lookup_value为函数LOOKUP 在
数组中所要查找的数值。Lookup_value可以为数字、
文本、逻辑值或包含数值的名称或引用。如果函数
LOOKUP 找不到lookup_value,则使用数组中小于或
等于lookup_value 的最大数值。Array 为包含文本、
数字或逻辑值的单元格区域,它的值用于与
lookup_value 进行比较。
注意:Lookup_vector的数值必须按升序排列,否则
LOOKUP 函数不能返回正确的结果,参数中的文本不
区分大小写。
实例:如果A1=68、A2=76、A3=85、A4=90,则公式
“=LOOKUP(76,A1:A4)”返回2,=LOOKUP("bump",
{"a", 1;"b",2;"c",3})返回2。
对于本例中,很明显的是向量的表达式。
($C$3:$C$7<=C12),判断C列是否小于等于C12
($D$3:$D$7>=C12),判断D列是否大于等于C12
($C$3:$C$7<=C12)*($D$3:$D$7>=C12),如果两个条件同时成立,返回TRUE,否则返回FALSE。
0/($C$3:$C$7<=C12)*($D$3:$D$7>=C12),用0除以条件判断结果,0/TRUE=0,0/FALSE=#DIV/0!,生成0和#DIV/0!组成的数组。
=LOOKUP(1,{0和#DIV/0!组成的数组},$E$3:$E$7),在{0和#DIV/0!组成的数组}中查找1,返回对以上的E列的值。由于数组中不包含1,所以找到的是小于1但最接近1的值(即0,也就是上面所述条件成立的行),所对应的E列的数据。
就是返回 时间段 而已。具体说明的话,很麻烦,在EXCEL里面按F1,查看LOOKup的用法就是了。
比如输入9:30,就会返回 早上时间。
做了2次比较,第一次比第一列,第二次比第二列,条件都符合,就返回第三列。
D14=0,0
是这样的,这句是必要的,因为后面有一个除式:
(D10*0.87-D11/1.13+D12)/D14 ,大家都知道,0 是不能作为除数的,如果D14是 0 ,就会出现错误。所以加那一句就是避免这个情况发生:当 D14值为0时,单元格直接等于0 ,而不会用到那个除式。
这样回答行吗?
lookup函数是查找函数,当在c12输入时间时,此函数会在C3:d7的区间找到对应时间段,并将此时间段对应的E7值反映到D12单元格。