欢迎来到我的范文网!

多条件查找引用

实用内容 时间:2020-07-02

【www.myl5520.com--实用内容】

EXCEL中多条件查找并引用数据的方法探讨
篇一:多条件查找引用

EXCEL中多条件查找并引用数据的方法探讨

EXCEL中多条件查找并引用数据的方法探讨

在实际工作中,我们经常会遇到需要对满足两个以上条件的数据进行查找并引用的问题,SHEET1工作表内容如图:

现在要求在SHEET2工作表的A、B列输入有关内容后,C列自动从SHEET1工作表中查找并引用相应的C列的内容。SHEET2工作表如图:

SHEET2工作表C1单元格使用以下数组公式,可达到目的:

=IF(OR(A1="",B1=""),"",OFFSET(Sheet1!$C$1,SUM(IF((Sheet1!A$1:A$1000=A

1)*(Sheet1!B$1:B$1000=B1),ROW(Sheet1!C$1:C$1000),0))-1,0,1,1)) 注意:输入完公式后要按Ctrl+Shift+Enter键,让它自动加上数组公式符号"{}"。

补充:

用VLOOKUP函数解决方法:

=IF(OR(A1="",B1=""),"",VLOOKUP(A1&B1,IF({1,0},Sheet1!A$1:$A$1000&Sheet1!B$1:B$1000,Sheet1!C$1:C$1000),2,0))

用INDEX和MATCH函数解决方法:

=IF(OR(A1="",B1=""),"",INDEX(Sheet1!C$1:C$1000,MATCH(A1&B1,Sheet1!A$1

:A$1000&Sheet1!B$1:B$1000,0)))

这两个也是数组公式。

另提供两个不用数组公式的解决方法:

=IF(OR(A1="",B1=""),"",INDIRECT("Sheet1!$C"&SUMPRODUCT((Sheet1!A$1:A$1000=A1)*(Sheet1!B$1:B$1000=B1)*ROW(Sheet1!C$1:C$1000))))

=IF(OR(A1="",B1=""),"",LOOKUP(2,1/((Sheet1!A$1:A$1000=A1)*(Sheet1!B$1:B$1000=B1)),Sheet1!C$1:C$1000))多条件查找引用。

用条件格式检查身份证校验码是否正确的方法

2010-07-30 18:09

18位身份证校验码是根据前面十七位数字码,按照ISO 7064:1983.MOD 11-2校验码计算出来的检验码。

为什么除11,在于计算校验码时的函数。请看下边的函数: 公式如下:

∑(a[i]*W[i]) mod 11 ( i = 2, 3, ..., 18 ) (公式一) "*" 表示乘号

i--------表示身份证号码每一位的序号,从右至左,最左侧为18,最右侧为1。 a[i]-----表示身份证号码第 i 位上的号码

W[i]-----表示第 i 位上的权值 W[i] = 2^(i-1) mod 11

上述计算方法是从右至左,如果从左至右,第1-17位权重W[i]的计算结果为: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

计算公式一 令结果为 R

根据下表找出 R 对应的校验码即为要求身份证号码的校验码C。

R 0 1 2 3 4 5 6 7 8 9 10

C 1 0 X 9 8 7 6 5 4 3 2

由此看出 X 就是 10,罗马数字中的 10 就是X,所以在新标准的身份证号码中可能含有非数字的字母X。

根据上述校验码计算公式和原理,设置条件格式检查校验码方法如下:

假定身份证在B列(均为18位),检查其校验码是否正确,不正确的用红色字体显示。方法如下:

选中B列,“格式”/“条件格式”,将条件设为:

公式

=RIGHT(B1)<>MID("10X98765432",MOD(SUMPRODUCT(MID(B1,ROW($1:$17),1)*MID("0709100508040201060307091005080402",ROW($1:$17)*2-1,2)),11)+1,1)

点“格式”,将字体设为红色即可。

Excel的双条件多条件查找
篇二:多条件查找引用

Excel的双条件多条件查找

VLOOKUP函数一般情况下,只能实现单条件查找。

如果想通过VLOOKUP函数来实现双条件或多条件的查找并返回值,那么,只需要加上IF({1,0}就可以实现。

下面,我们就一起来看看IF({1,0}和VLOOKUP函数的经典结合使用例子吧。

我们要实现的功能是,根据Sheet1中的产品类型和头数,找到Sheet2中相对应的产品类型和头数,并获取对应的价格,然后自动填充到Sheet1的C列。实现此功能,就涉及到两个条件了,两个条件都必须同时满足。

如下图,是Sheet1表的数据,三列分别存放的是产品类型、头数和价格。

上图是一张购买产品的表,其中,购买产品的行数据,可能存在重复。如上图的三七头,就是重复数据。

现在,我们再来看第二张表Sheet2。

上表,是固定好的不存在任何重复数据的产品单价表。因为每种三七头对应的头数是不相同的,如果要找三七头的单价,那么,要求类型是三七头,同时还要对应于头数,这就是条件。

1

现在,我们在Sheet1中的A列输入三七头,在B列输入头数,然后,利用公式自动从Sheet2中获取相对应的价格。这样就免去了输入的麻烦。

公式比较复杂,因为难于理解,先看下图吧,是公式的应用实例。

C2的公式为:

{=VLOOKUP(A2&B2,IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12),2,FALSE)}

公式解释:

①VLOOKUP的解释

VLOOKUP函数,使用中文描述语法,可以这样来理解。

VLOOKUP(查找值,在哪里找,找到了返回第几列的数据,逻辑值),其中,逻辑值为True或False。

再对比如上的公式,我们不能发现。

A2&B2相当于要查找的值。等同于A2和B2两个内容连接起来所构成的结果。所以为A2&B2,理解为A2合上B2的意思。

IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12)相当于要查找的数据

=VLOOKUP(A9&B9&C9,IF({1,0},个人检查记录明细!$A$7:$A$225&个人检查记录明

细!$B$7:$B$225&个人检查记录明细!$C$7:$C225,个人检查记录明细!$D$7:$D$225),2,0) 2代表返回第二列的数据。最后一个是False。

多条件查找引用。

②IF({1,0}的解释

刚才我们说了,IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12)相当于VLOOKUP函数中的查找数据的范围。

由于本例子的功能是,根据Sheet1中的A列数据和B列数据,两个条件,去Sheet2中查找首先找到对应的AB两列的数据,如果一致,就返回C列的单价。

因此,数据查找范围也必须是Sheet2中的AB两列,这样才能被找到,由于查找数据的条件是A2&B2两个单元格的内容,但是此二单元格又是独立的,因此,要想构造查找范围,也必须把Sheet2中的AB两列结合起来,那就构成了

2

Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12;Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12:相当于AB两列数据组成一列数据。

那么,前面的IF({1,0}代表什么意思呢?

IF({1,0},相当于IF({True,False},用来构造查找范围的数据的。最后的

Sheet2!$C$2:$C$12也是数据范围。

现在,整个IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12)区域,就形成了一个数组,里面存放两列数据。

第一列是Sheet2AB两列数据的结合,第二列数据是Sheet2!$C$2:$C$12。

公式

{=VLOOKUP(A2&B2,IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12),2,FALSE)}中的数字2,代表的是返回数据区域中的第二列数据。结果刚好就是Sheet2的C列,即第三列。因为在IF({1,0}公式中,Sheet2中的AB两列,已经被合并成为一列了,所以,Sheet2中的第三列C列,自然就成为序列2的列编号了,所以,完整的公式中,红色的2代表的就是要返回第几列的数据。

上面的完整的公式,我们可以使用如下两种公式来替代:

=VLOOKUP(A2&B2,CHOOSE({1,2},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$

12),2,FALSE)

=VLOOKUP(A2&B2,IF({TRUE,FALSE},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12),2,FALSE)

关于Choose函数的使用示例

CHOOSE函数语法

函数功能:可以根据给定的索引值,从多达29个待选参数中选出相应的值。 函数语法:CHOOSE(index_num,value1,value2,...)。多条件查找引用。

参数介绍:

Index_num是用来指明待选参数序号的值,它必须是1到29之间的数字、或者是包含数字1到29的公式或单元格引用;

Value1,value2,...为1到29个数值参数,可以是数字、单元格,已定义的名称、公式、函数或文本。

实例1:公式“=CHOOSE(2,"大众","计算机") 返回“计算机”。因为参数2代表要返回第二个值,也就是“计算机”。

公式“=SUM(A1:CHOOSE(3,A10,A20,A30))”与公式“=SUM(A1:A30)”等价(因为CHOOSE(3,A10,A20,A30)返回A30)。

实例2:SUM(Choose(2,A1:A20,B3:B15))与SUM(B3:B15)等价。

再仔细看看一个实例:

公式:=Choose(要哪个,"第一个","第二个","第三个","第四个","第五个")

上述的值中,共有五个,想要哪个就在参数一那里填写序号,比如,想要第四个,那么,就这样来填写:

=Choose(4,"第一个","第二个","第三个","第四个","第五个")

3

注意哦,“要哪个”这个数字,必须在[1,29]这个范围;并且,值列表的个数,也必须在在[1,29]这个范围。

4

EXCEL中多条件查找的15种方法
篇三:多条件查找引用

EXCEL中多条件查找的15种方法

excel多条件查找的思路很多,例如查找、求和、最值、数据库等函数等等。像SUM函数、lookup函数、VLOOKUP+CHOOSE函数、OFFSET+MATCH函数、INDIRECT+MATCH函数等等如下所示:

示例:

题目:如下图所示,根据第9行的产品和型号,从上面表中查找“销售数量”,结果如C10所示多条件查找引用。

SUM函数:

公式{=SUM((A2:A6=A9)*(B2:B6=B9)*C2:C6)}

公式简介:使用(条件)*(条件)因为每行符合条件的为0,不符合的为1,所以只有条件都符合的为非零数字。所以SUM求和后就是多条件查找的结果

SUMPRODUCT函数:

公式:=SUMPRODUCT((A2:A6=A9)*(B2:B6=B9)*C2:C6)

公式简介:和SUM函数用法差不多,只是SUMPRODUCT函数不需要数组运算 MAX函数:

{=MAX((A2:A6=A9)*(B2:B6=B9)*C2:C6)}

SUM是通过求和把符合条件的提出来,这里是使用MAX提取出最大值来完成符合条件的值提取。

lookup函数:

公式1=LOOKUP(A9&B9,A2:A6&B2:B6,C2:C6)

公式简介:LOOKUP函数可以直接进行数组运算。查找的连接起来,被查找区域也连接起来。

公式2:=LOOKUP(1,0/((A2:A6=A9)*(B2:B6=B9)),C2:C6)

公式3=LOOKUP(1,0/((A2:A6&B2:B6)=(A9&B9)),C2:C6)

公式4=LOOKUP(1,1/(((A2:A6=A9)+(B2:B6=B9))=2),C2:C6)

MIN+IF函数:

公式=MIN(IF((A2:A6=A9)*(B2:B6=B9),C2:C6))

SUM+IF函数:

公式

=SUM(IF(A2:A6=A9,IF(B2:B6=B9,C2:C6,0),0))

INDEX+MATCH函数组合:

公式1:{=INDEX(C2:C6,MATCH(A9&B9,A2:A6&B2:B6,0))}

公式2:{=INDEX(C2:C6,MATCH(1,(A9=A2:A6)*(B9=B2:B6),0))}

OFFSET+MATCH函数:

公式

=OFFSET(C1,MATCH(A9&B9,A2:A6&B2:B6,0),)

INDIRECT+MATCH函数:

公式

=INDIRECT("C"&MATCH(A9&B9,A1:A6&B1:B6,0))

VLOOKUP+CHOOSE函数:

公式:

=VLOOKUP(A9&B9,CHOOSE({1,2},A2:A6&B2:B6,B2:C6),2,0)

HLOOKUP+TRANSPOSE+CHOOSE函数:

公式

=HLOOKUP(A9&B9,TRANSPOSE(CHOOSE({1,2},A2:A6&B2:B6,B2:C6)),2,0)

VLOOKUP+IF函数:

公式1 =VLOOKUP(A9&B9,IF({1,0},A2:A6&B2:B6,B2:C6),2,0) 公式2=VLOOKUP(A9&"|"&B9,A31:D35,4,0)?添加辅助列 SUMIFS函数:

excel2007中开始提供的函数SUMIFS

=SUMIFS(C1:C6,A1:A6,A9,B1:B6,B9)

数据库函数:

=DSUM(A1:C6,3,A8:B9)

=DGET(A1:C6,3,A8:B9)

=DAVERAGE(A1:C6,3,A8:B9)

=DMAX(A1:C6,3,A8:B9)

=DMIN(A1:C6,3,A8:B9)

=DPRODUCT(A1:C6,3,A8:B9)

VLOOKUP函数的多条件查找
篇四:多条件查找引用

VLOOKUP函数的多条件查找

在Excel中,通过VLOOKUP函数可以查找到数据并返回数据。一般情况下,VLOOKUP函数只能实现单条件查找。但是借助IF({1,0},VLOOKUP函数不仅能跨表查找,甚至能跨工作薄查找。

下面,我们就一起来看看IF({1,0}和VLOOKUP函数的经典结合使用例子吧。

我们要实现的功能是,根据Sheet1中的产品类型和头数,找到Sheet2中相对应的产品类型和头数,并获取对应的价格,然后自动填充到Sheet1的C列。实现此功能,就涉及到两个条件了,两个条件都必须同时满足。

如下图,是Sheet1表的数据,A、B、C三列分别存放的是产品类型、头数和价格。

上图是一张购买产品的表,其中,购买产品的行数据,可能存在重复。如上图的10头三七头,就是重复数据。

现在,我们再来看第二张表Sheet2。

上表中是固定好的不存在任何重复数据的产品单价表。因为每种三七头对应的头数是不相同的,如果要找三七头的单价,那么,要求类型是三七头,同时还要对应于头数,这就是条件。

现在,我们在Sheet1中的A列输入三七头,在B列输入头数,然后,利用公式自动从Sheet2中获取相对应的价格。这样就免去了输入的麻烦。

公式比较复杂,因为难于理解,先看下图吧,是公式的应用实例。

下面,将给大家大体介绍公式是如何理解的。比如C2的公式为:

{=VLOOKUP(A2 &B2,IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12),2,0)} 请注意,如上的公式是数组公式,输入的方法是,先输入:

=VLOOKUP(A2 &B2,IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12),2,0) 然后,再按Ctrl+ Shift +Enter组合键结束,才会出现大括号。大括号是通过组合键按出的,不是通过键盘输入的。

公式解释:

①VLOOKUP的解释

VLOOKUP函数,使用中文描述语法,可以这样来理解。

VLOOKUP(查找值,在哪里找,找到了返回第几列的数据,逻辑值),其中,逻辑值为True或False。

再对比如上的公式,我们不能发现:

“A2&B2”相当于要查找的值。等同于A2和B2两个内容连接起来所构成的结果。所以为

A2&B2,理解为A2合上B2的意思。

“IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12)”相当于要查找的数据范围。

“2”代表返回第二列的数据。最后一个是False,表明是精确查找。

②IF({1,0}的解释

刚才我们说了IF({1,0},Sheet2!$A$2:$A$12 &Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12)相当于VLOOKUP函数中的查找数据的范围。

由于本例子的功能是,根据Sheet1中的A列数据和B列数据构成的两个条件,去Sheet2中查找到对应的AB两列的数据,如果一致,就返回C列的单价。

因此,数据查找范围也必须是Sheet2中的AB两列,这样才能被找到,由于查找数据的条件是A2&B2两个单元格的内容,但是此二单元格又是独立的,因此,要想构造查找范围,

也必须把Sheet2中的AB两列结合起来,那就构成了Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12; Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12相当于AB两列数据组成一列数据。

那么,前面的IF({1,0}代表什么意思呢?

IF({1,0},相当于IF({True,False},用来构造查找范围的数据的。最后的Sheet2!$C$2:$C$12也是数据范围。

现在,整个IF({1,0},Sheet2!$A$2:$A$12 &Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12)区域,就形成了一个数组,里面存放两列数据。 第一列是Sheet2 AB两列数据的结合,第二列数据是Sheet2!$C$2:$C$12。

公式{=VLOOKUP(A2&B2,IF({1,0},Sheet2!$A$2:$A$12 &Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12),2,0)}中的数字2,代表的是返回数据区域中的第二列数据。结果刚好就是Sheet2的C列,即第三列。因为

在IF({1,0}公式中,Sheet2中的AB两列,已经被合并成为一列了,所以,Sheet2中的第三列C列,自然就成为序列2的列编号了,所以,公式中的2代表的就是要返回第几列的数据。

上面的完整的公式,我们可以使用如下两种公式来替代:

=VLOOKUP(A2 &B2,CHOOSE({1,2},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12),2,0)

=VLOOKUP(A2 &B2,IF({TRUE,FALSE},Sheet2!$A$2:$A$12 &Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12),2,FALSE)

本文来源:http://www.myl5520.com/shiyonggongju/111908.html

推荐内容