《根据多条件返回文本或数值.docx》由会员分享,可在线阅读,更多相关《根据多条件返回文本或数值.docx(2页珍藏版)》请在三一办公上搜索。
1、根据多条件返回文本或数值根据多条件返回文本或数值 在日常EXCEL数据处理业务中我们经常遇到需要根据多个条件去返回数值或者文本,单一的Vlookup函数只能根据单一条件返回数据,对于根据多条件返回数据单条件的Vlookup函数就不能解决问题了。下图是根据多条件返回文本或数值的几个实例,分别阐述如下: 图1 图2 上图1中反应的是根据客户物料号码与我司单价去报价单数据表中查找对应的报价单号,在报价单数据表中因为同一物料有不同的单价,报价单号也不同,也就是说同一物料号码是有多条记录的。 方法1:利用条件构造Lookup函数中的参数,使用Lookup函数返回数据 首先将M报价汇总表中物料号码、单价、
2、报价单号的三列数据复制到需要对账的工作簿中的表格中来,为了保持与对账表中的我司单价一致,在报价单中添加一列Unit Price,定义公式=ROUND(B2,4)保留四位小数。在L10单元格输入如下公式:=LOOKUP(1,0/(A10&J10=报价单数据!$A$2:$A$4238&报价单数据!$C$2:$C$4238),报价单数据!$D$2:$D$4238),其中A10&J10就是取该行的物料号与我司单价数据,该合并的文本去sheet2表格中料号与单价区域中查找,即文本为S报价单数据!$A$2:$A$4238&报价单数据!$C$2:$C$4238,如果等于就返回true,不等于就返回false
3、,因为0除以逻辑值TRUE得0,除以逻辑值FALSE得错误值;该函数中第二个参数出现的结果只能是0或者是错误值,0和错误值就形成一个数组,lookup函数在这组值中查找小于等于1的值即0值,再返回对应位置D列的值即报价单号列中的文本。需要指出的是:这个方法返回的文本还是有部分应该找到但没找到的情形出现,其原因是:原报价单表中相同物料号并且相同单价的有两条及以上的记录但有的有报价单号,有的没有报价单号,所以该公式优先返回没有报价单号的记录,这样就需要将没报价单号的记录给删除掉就OK了。这种方法就是利用了物料号码与我司单价相同这个条件去构造lookup函数中的参数。 方法2:使用Index和mat
4、ch函数返回数据 在报价单号2列中M10单元格中定义如下数组公式:=INDEX(报价单数据!$D$2:$D$4238,MATCH(A10&J10,报价单数据!$A$2:$A$4238&报价单数据!$C$2:$C$4238,0)定义完毕同时按下ctrl+shift+enter键即可。该公式中各参数的含义就不再阐述。这个公式不会因为出现物料号码相同单价也相同就返回没有报价单号的情况。 方法3:利用多条件去构造满足Vlookup函数中的参数返回数据 在报价单号3列中的N10单元格中定义如下数组公式:=VLOOKUP(A10&J10,IF(1,0,报价单数据!$A$2:$A$4238&报价单数据!$C
5、$2:$C$4238,报价单数据!$D$2:$D$4238),2,FALSE),定义完毕同时按下ctrl+shift+enter键即可。其中IF(1,0,报价单数据!$A$2:$A$4238&报价单数据!$C$2:$C$4238,报价单数据!$D$2:$D$4238)就构造了一个料号与单价合并的数组,报价单号也是一个数组,处于这个区域中的第二列,故这个区域包含两个数组,所以Vlookup函数返回数据的列好为2.由于是精确匹配,故该函数第四个参数为false。 以上三种方法只是根据两个条件去返回数据,如果要根据更多条件去返回数据只要查找区域中有满足条件的字段并将其构造成满足函数当中的参数即可。