欢迎来到我的范文网!

两个条件的查找

实用内容 时间:2019-09-29

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

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=A1)*(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)) support.microsoft.com/kb/275170/zh-cn

关键点:(目前只试验了2个条件)

1.使用index函数与Match函数

2.公式格式与参数说明:index(结果查找范围,Match(条件1&条件2,条件1查找范围&条件2查找范围,0))

3.在输出的结果栏中输入以上公式

如:=INDEX(Sheet4!$C$2:$C$26,MATCH(B2&D2,Sheet4!$A$2:$A$26&Sheet4!$B$2:$B$26,0))

4.按 Shift + Ctrl+Enter 将公式作为数组公式输入

如何使用IF函数一次找出多个符合条件的数据
篇二:两个条件的查找

如何使用IF函数一次找出多个符合条件的数据所在的行位置

下面举一个简单的例子。如下图:在本表C列中一次找出多个学生姓名(包括同名)所在的行位置,并标上颜色。如果本表有2000多名学生的数据,假设我们需要从这2000多名学生中找出30个学生的数据所在行,用逐个查找每个学生的方法,肯定费事,而使用IF函数进行一次性查找,则可以大大提高工作效率。

在本表中,我们需要一次性找出本表原B列(在其左侧插入用于输入查找函数,以获得查找结果的列后,B列顺延为C列)中的“李××,周××,何××,简××,袁××,吕××,蒋××”这七位学生的数据所在行 方法、步骤如下:

一、在本表原B列的左侧插入用于输入查找函数,以获得查找结果的列,即现在的B列,选定B2单元格,在B2公式编辑栏输入以下函数(如上图所示):

单元格B2 fx =IF(OR(C2="李××",C2="周××",C2="何××",C2="简××",C2="袁××",C2="吕××", C2="蒋××"),C2,"")

公式意思为:如果C2单元格的数据为"李××",或为"周××",或为"何××",或为"简××" ,或为"袁××",或为"吕××",或为"蒋××",则B2单元格显示C2单元格的数据,否则,B2单元格就显示为空白。

(注一:可以查找任何一列数据中的某些特定值(本例为姓名列的特定学生姓名),只需修改插入列的函数即可。)

(注二:单元格内excel函数字符数是有一定限制的,本例中查找学生的数量限定在30名以内,超过则会提示:“输入的公式中包含错误”或“您已为此函数输入太多参数”,同时在函数编辑栏内以黑色条块显示出函数出错的位置。只要删除此出错位置及之后的内容就可以通过。若还不能通过,则说明函数本身确实有某处错误,需要检查修改。如下图)

二、复制B2,将公式粘贴到B列所有需要纳入查找范围的单元格,如本表的B3:B17各单元格,或双击B2单元格右下角的小十字(或是黑色小方块),将公式自动填充到B3:B17各单元格。

三、选定列标签所在行(如本表第一行),点击“工具栏”的“数据→自动筛选”,将该行设为数据自动筛选行;

在B1的自动筛选下拉菜单中选择“(非空白)”选项,将查找到的、但分散的学生姓名筛选(集中)到一块; 选定这些学生姓名所在的行,设定其常规格式为“填充浅青色”;

四、选定列标签所在行,去掉“自动筛选”前的“√”,撤销自动筛选。

五、删除插入的B列,恢复工作表原状。

提示:为避免查找到不需要的同姓名学生,可以在函数公式中添加其他列(比如D列的“班级”和G列的“户籍性质”)的数据,用于区别同名同姓学生,如:高一(2)班有一个“李××,高一(8)班有两个“李××”。我们需要找出的是高一(8)班“户籍性质”为“县镇非农”的“李××”。

我们将B2中的函数公式修改为:B2 fx =IF(OR(and(C2="李××",D2="高一(8)",G2="县镇非农"),C2="周××",C2="何××",C2="简××",C2="袁××",C2="吕××",C2="蒋××"),C2,"")两个条件的查找。

修改后的函数公式限定:在C列中的三个姓名同为“李××”的当中,选定那个不仅在C列中姓名为“李××”,而且在D列中班级为“高一(8)”,在G列中户籍性质为“县镇非农”的“李××”。

“不仅„„而且„„”这样的并列关系,在函数公式中用and连接,“或者„„或者„„”,用or连接。 说明:如果不打算删除插入的B列,可以在完成上述方法、步骤二后,对B列设置条件格式,直接对所查找出的这些学生姓名所在的行进行颜色填充。

方法:选定B2单元格,设置其条件格式如下:

条件1:公式=IF($C2=$B2,$A2:$G2,0) 或 公式=IF($C2=$B2,2:2,0)(本例使用的是前者,请读者尝试使用后者,观察两个公式的不同效果)

格式1:图案→浅青绿色;字体→自动

需要特别注意函数公式中的相对引用和绝对引用。

设置完B2的条件格式后,复制B2,再选定数据区A2:G17,然后采用“选择性粘贴→格式”的方式,将B2的条件格式粘贴到数据区A2:G17的全部单元格。

这一步完成后,如果又决定删除插入的B列,可以按照上面的第三步,继续进行余下的几步操作。

通过IF({1,0}和VLOOKUP函数实现Excel的双条件多条件查找
篇三:两个条件的查找

通过IF({1,0}和VLOOKUP函数实现Excel的双条件多条件查找

Excel中,通过VLOOKUP函数可以查找到数据并返回数据。不仅能跨表查找,同时,更能跨工作薄查找。

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

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

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

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

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

上图是一张购买产品的表,其中,购买产品的行数据,可能存在重复。如上图的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,FALSE)}

请注意,如上的公式是数组公式,输入的方法是,先输入

=VLOOKUP(A2&B2,IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12),2,FALSE) 之后,再按新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。

关于VLOOKUP函数的单条件查找的简单应用,您可以参阅文章:

②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)区域,就形成了一个数组,里面存放两列数据。

第一列是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$1

2),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,"第一个","第二个","第三个","第四个","第五个")

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

[1,29]这个范围。

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)

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

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

推荐内容