- ?
Excel Match函数的使用方法及与Index组合使用实例
雨桐
展开
在 Excel 中,Match函数用于返回查找值在数组的位置,它共有三个参数,分别为 lookup_value、lookup_array 和 match_type;其中 match_type 有三个参数,即 1、0、-1,当取不同值时返回不同的结果,其中取 0 时,可用通配符问号(?)和星号(*)进行模糊查找。Match函数除单独使用外,还常常与Index函数一起使用。以下就是Match函数的使用方法及与Index组合使用实例的具体操作方法,实例中操作所用版本均为 Excel 2016。
一、Excel Match函数语法
1、表达式:MATCH(lookup_value, lookup_array, [match_type])
中文表达式:MATCH(查找值, 查找数组, [查找类型])
2、说明:
A、Match函数用于返回 lookup_value 在数组中的位置;lookup_value 和 lookup_array 是必选项,match_type 是可选项;如果省略 match_type,则默认值为 1。
B、match_type 的取值说明:取 1 表示查找小于或等于查找值 lookup_value 的最大值,返回该值在数组中的位置,要求数组按升序排序;取 0 表示查找等于 lookup_value 的第一个值,返回该值在数组中的位置,不要求数组按升序或降序排序;取 -1 表示查找大于或等于 lookup_value 的最小值,返回该值在数组中的位置,要求数组按降序排序。
C、当 match_type 为 0 且 lookup_value 是文本,可在 lookup_value 中使用通配符“问号 (?) 和星号 (*)”;问号表示任意一个字符,星号表示任意一个或一串字符;如果要查找问号或星号,需要在它们前加转义波形符(~)。
二、Excel Match函数的使用方法
(一)match_type 取 1(或省略)的使用实例
1、假如要查找服装销量表中价格为 80 与 95 元在 E 列中的位置。首先把 E 列按升序排序,框选 E2:E12,选择“数据”选项卡,单击“升序”,在弹出的“排序提醒”窗口中,选择“扩展选定区域”,单击“确定”,则表格记录按价格升序排序;在 G2 中输入公式 =MATCH(80,E2:E12),按回车,则返回 80 在 E2:E12 中的位置 2;再在 G3 中输入公式 =MATCH(95,E2:E12,1),按回车,则返回 5,操作过程步骤,如图1所示:
图12、说明:公式 =MATCH(80,E2:E12) 和 =MATCH(95,E2:E12,1),一个省略 1,另一个未省略,都表示查找小于或等于 lookup_value 的最大值;80 在 E2:E12 中有,因此返回它所在的位置 2,95 在 E2:E12 中没有,所以返回小于它的最大值 89 所在位置,E2:E12 中有两个 89,返回的是第二个 89 的位置。
(二)match_type 取 0 的使用实例
1、查找数值
A、假如要查找价格为 89 元在 E 列中的位置。把公式 =MATCH(89,E2:E12,0) 复制到 G2 单元格,按回车,返回结果为 4,正是 89 在 E2:E12 中位置,操作过程步骤,如图2所示:
图2B、当 match_type 取 0 时,数组不用排序。如果查找数组中没有的值,则会返回 #N/A 错误,例如查找 87,如图3所示:
图3按回车后,返回 #N/A 错误,如图4所示:
图42、用通配符问号(?)与星号(*)
A、假如要查找以“T恤”结尾的服装在 B 列中的位置。把公式 =MATCH("*T恤",B2:B12,0) 复制到 G2 单元格,按回车,返回结果 2,正是“绿色T恤”在 B2:B12 中的位置(返回的是第一个以“T恤”结束的服装在 B2:B12 中的位置),操作过程步骤,如图5所示:
B、假如要查找只有三个字的服装在 B 列中的位置。把公式 =MATCH("???",B2:B12,0) 复制到 G2 单元格,如图6所示:
图6按回车,返回结果 10,正是“白衬衫”在 B2:B12 中的位置,如图7所示:
图7(三)match_type 取 -1 的使用实例
1、假如要查找销量为 681 与 750 在 E 列中的位置。框选 F2:F12,选择“数据”选项卡,单击“降序”,在打开“排序提醒”窗口中,选择“扩展选项区域”,单击“确定”,将记录按销量降序排列;把公式 =MATCH(681,F2:F12,-1) 复制到 G2 单元格,按回车,返回结果为 5,正是 681 在 F:F12 中位置;把 681 改为 750,公式变为 =MATCH(750,F2:F12,-1),按回车,结果为 4,操作过程步骤,如图8所示:
图8B、说明:第二个公式 =MATCH(750,F2:F12,-1) 要查找 750,由于 F2:F12 中没有这个值,因此返回大于或等于 750 的最大值 874 在 F2:F12 中的位置,所以结果为 4。
三、Excel Index 与 Match 组合使用实例
1、假如要查找价格为 65 元的服装的编号。把公式 =INDEX(A:A,MATCH(65,E1:E12,0)) 复制到 G2 单元格,按回车,返回结果为 WS-585,正是价格为 65 元的服装编号;操作过程步骤,如图9所示:
图9B、公式说明:
公式 =INDEX(A:A,MATCH(65,E1:E12,0)) 先用 MATCH(65,E1:E12,0) 返回价格为 65 元的服装在 E 列中的位置,结果为 8;再用Index函数返回行号为 8 的服装编号。
index函数的表达式为:INDEX(array, row_num, [column_num]),第一个参数为数组,第二个参数为行号,第三个参数为列号(可选);示例中省略了列号,因此只返行号为的服装编号。如果既有行号又有列号,则返回行号与列号对应的值。
- ?
EXCEL通俗易懂讲公式(四):Vlookup一对多查询
笑天
展开
上次提到vlookup只能返回一个结果,有些同学要问了,如果想查多个结果呢
比如下面的例子,问题:查找二班都有哪些人?
当然,方法有很多,比如筛选、排序、或者做透视表都可以手动轻松解决,但是想要自动化还是首选函数公式
如果我们用vlookup直接查找二班,那么只会返回出第一条小赵,后面的人都不会显示出来
解决思路 :vlookup的返回机制是返回第一条查询的结果,就算有很多结果也只返回第一条,那么我们的核心思路就变成了,如果让很多相同的结果,变成不相同,那么我们就选择增加辅助列
在A列增加辅助列,我们的目的是给每一个班级增加一个出现序号,二班第一次出现就是二班1,第二次出现就是二班2,以此类推,COUNTIF($B$1:B2,B2)在第一讲的时候已经提高多,是为了统计到本行为止,出现过几次,这样就得到“班级&序号”的组合。
到了vlookup查询阶段 完整公式=IFERROR(VLOOKUP($H$1&ROW(H1),A:E,3,0),"")
公式中有两个新出现的函数,row()和iferror(),这里简要说明,不做重点介绍。
ROW(单元格)是为了得到序号,比如row(h1)=1,row(h2)=2,得到的就是行号,那么与H1的二班组合成,二班1这个结果,正好与我们之前做的辅助列相吻合。
iferror的作用是,如果出现错误值,则返回空;是为了解决vlookup中如果查询不到结果则会返回#N/A的问题,这个自己多做尝试 完整是iferror(判断内容,返回结果)
在单元格H2输入内容后,向下拖拽到出了空白即可
- ?
成为EXCEL高手的捷径,死记硬背通用公式(1)
皮皮鲁
展开
Excel函数多,公式有时又比较复杂、难懂,看到别人用得娴熟,快速解决了一个又一个问题,心里往往十分羡慕。其实,想要成为EXCEL函数和公式的应用高手,是有一个捷径可以走的。有不少公式不需要理解,直接套用就行,你只要花点功夫记住这些通用公式,到时,不但可以高效完成工作,还可以在同事、朋友面前装逼、得瑟一番。
今天,我总结了第1组万能的通用公式分享给大家。
1、多条件计数公式
EXCEL函数公式模板:=Sumproduct(条件1*条件2*条件3...)
示例:统计各班级“上海籍”“女生”人数。在下表,H3单元格输入公式:
=SUMPRODUCT(($A$2:$A$18=G3)*($C$2:$C$18="女")*($D$2:$D$18="上海")),向下复制即可。
2、多条件求和公式
EXCEL函数公式模板:=Sumproduct(条件1*条件2*条件3... , 数据区域)
示例:统计“各班级”“上海籍”“女生”三门总分之和,三门平均值。在下表,K3单元格输入公式:
=SUMPRODUCT(($A$2:$A$18=J3)*($C$2:$C$18="女")*($D$2:$D$18="上海"),$E$2:$E$18)
注:条件求和也可用sumifs函数,但Sumproduct可以对数组处理后再设置条件,同时也可以对文本型数字进行计算,而Sumifs函数则不可以。
3、多条件判断公式
EXCEL函数公式模板:=IF(AND(条件1,条件2...条件n),同时满足条件返回值,不满足条件返回值)
公式模板:=IF(OR(条件1,条件2...条件n),满足任一条件返回值,不满足条件返回值)
示例:三门总分低于300分,数学低于100分,标注“要补习”。在下表,G2单元格输入公式:
=IF(AND(F2<300,E2<100),"要补习","")
4、多条件查询公式
EXCEL函数公式模板:Lookup(1 , 0/((条件1*条件2*条件3...)) , 返回值区域)
示例:根据班级、姓名,查学生数学成绩。在下表,S3单元格输入公式:
=LOOKUP(1,0/(($A$2:$A$18=Q3)*($B$2:$B$18=R3)),$E$2:$E$18)
5、多条件排序公式
EXCEL函数公式模板:=SUMPRODUCT((条件1*条件2*条件3...)*(参照区域>=拟排序数值))
示例:计算三门总分在本班中的排名。在下表,H2单元格输入公式:=SUMPRODUCT(($A$2:$A$18=A2)*($F$2:$F$18>=F2))
6、条件求均值公式
EXCEL函数公式模板:=SUMIF(条件区域, 条件值, 求和区域)/COUNTIF(条件区域, 条件值)
示例:计算各班数学、三门总分平均分。在下表,以计算数学各班均分为例,在W3单元格输入公式:
=SUMPRODUCT(($A$2:$A$18=A2)*($F$2:$F$18>=F2))
7、计算不重复值个数的公式
EXCEL函数公式模板:=SUMPRODUCT(1/COUNTIF(区域 , 区域))
示例:计算学生籍贯地数量。在下表,在Z2单元格输入公式:
=SUMPRODUCT(($A$2:$A$18=A2)*($F$2:$F$18>=F2))
每天学习一点,每天进步一点,积硅步,必能致千里、得大成。
- ?
Excel数值取整的九种方式
东美
展开
问题来源
数据取整,是EXCEL数据处理的最常用的方式。可能大家最经常用的是INT函数,但,INT函数并不能满足所有的取整要求。比如,今天一位朋友要按照某位数的倍数取整,INT就解决不了了。
韩老师总结各种取整函数,大家可以收藏起来,遇到不同的取整要求,可以翻出来找合适的函数与方法。
九种方法分析一:INT取整
举例:
特征:
1、对正数,直接截掉小数取整;
2、对负数,截掉小数再-1取整。
二:TRUNC取整
特征:不管正数还是负数,都是直接截掉小数取整。
三:ROUND小数取整
第二个参数为0,采取四舍五入方式取整。
四:ROUND整数取整
第二个参数为负数,采取四舍五入方式取整。
五:ROUNDUP向上舍入函数
1、朝着远离 0(零)的方向将数字进行向上舍入。
2、如果第二个参数为 0,则将数字向上舍入到最接近的整数。
3、如果第二个参数小于 0,则将数字向上舍入到小数点左边的相应位数。
六:ROUNDDOWN向下舍入函数
1、朝着零的方向将数字进行向下舍入;
2、如果第二个参数为 0,则将数字向下舍入到最接近的整数;
3、如果第二个参数小于 0,则将数字向下舍入到小数点左边的相应位数。
七:MROUND函数
1、返回参数按指定基数舍入后的数值;
2、舍入的方式是“四舍五入”;
3、数值和基数参数的符号必须相同。如果不相同,将返回 #NUM 错误。
八:CEILING函数
1、 向上舍入(沿绝对值增大的方向)为最接近的指定基数的倍数。
2、如果数值为正值,基数为负值,则 返回 错误值 #NUM!;
3、如果数值为负,基数为正,则对值按朝向 0 的方向进行向上舍入;
4、如果数值和基数都为负,则对值按远离 0 的方向进行向下舍入。
九:FLOOR函数
1、将数值向下舍入(沿绝对值减小的方向)为最接近的指定基数的倍数
2、如果数值为正值,基数为负值,则 返回 错误值 #NUM!
3、如果数值为负,基数为正,则对值按远离 0 的方向进行向下舍入;
4、如果数值和基数都为负,则对值按朝向 0 的方向进行向上舍入。
- ?
Excel常用的5种函数
梅琳达
展开
1 VLOOKUP函数
VLOOKUP(查找值,查找范围,查找列数,精确匹配或者近似匹配)
2 向量形式LOOKUP(lookup_value,lookup_vector,result_vector) 数组形式LOOKUP(lookup_value,array)
3 IF函数(判断条件,符合条件时返回的值,不符合条件时返回的值)
4 SUMIF函数
SUMIF(要找的内容所在的区域,要找的内容,与要找的内容所在的区域对应的数值区域)
5 COUNTIF函数
COUNTIF(要找的内容所在的区域,要找的内容)
每天更新Excel知识,喜欢的点击关注
- ?
给大家介绍在Excel中你会用到一些基本函数
丹秋
展开
Excel是大家知道一个办公软件,是办公人员特别是做会计的朋友离不开的优秀软件,一些专业人士肯定应用的比较自如,得心应手,但是一些刚接触的朋友就不怎么样了,今天为大家介绍Excel中的一些常用功能,方便大家的工作:
今天和大家分享的这些Excel函数都是最基本的,但应用面却非常广,学会基本Excel函数,也可以让工作事半功倍。
1、SUM函数
SUM函数的作用是求和。
统计一个单元格区域:
=sum(A1:A10)
统计多个单元格区域:
=sum(A1:A10,C1:C10)
2、AVERAGE函数
Average 的作用是计算平均数。
可以这样:
=AVERAGE(A1:A10)
也可以这样:
=AVERAGE(A1:A10,D1:D10)
3、COUNT函数
COUNT函数计算含有数字的单元格的个数。
COUNT函数参数可以是单元格、单元格引用,或者数字。
COUNT函数会忽略非数字的值。
如果A1:A10是COUNT函数的参数,其中只有两个单元格含有数字,那么COUNT函数返回的值是2。
也可以使用单元格区域作为参数,如:
=COUNT(A1:A10)
4、IF函数
IF函数的作用是判断一个条件,然后根据判断的结果返回指定值。
条件判断的结果必须返回一个或TRUE或FALSE的值,即“是”或是“不是”。
例如:
给出的条件是B2>C3,如果比较结果是TRUE,那么IF函数就返回第二个参数的值;如果是FALSE,则返回第三个参数的值。
IF函数的语法结构是:
=IF(逻辑判断,为TRUE时的结果,为FALSE时的结果)
5、NOW函数和TODAY函数
NOW函数返回日期和时间。TODAY函数则只返回日期。
假如说,要计算某项目到今天总共进行多少天了?
=TODAY()-开始日期
得出的数字就是项目进行的天数。
NOW函数和TODAY函数都没有参数,只用一对括号即可:
=NOW()
=TODAY()
6、VLOOKUP函数
VLOOKUP函数用来在表格中查找数据。
函数的语法公式是:
=VLOOKUP(查找值,区域,要返回第几列的内容,1近似匹配 0精确匹配)
7、ISNUMBER函数
ISNUMBER判断单元格中的值是否是数字,返回TRUE或FALSE。
语法结构是:
=ISNUMBER(value)
8、MIN函数和MAX函数
MIN和MAX是在单元格区域中找到最大和最小的数值。
可以这样:
=MAX(A1:A10)
也可以使用多个单元格区域:
=MAX(A1:A10, D1:D10)
9、SUMIF函数
SUMIF函数根据条件汇总,有三个参数:
=SUMIF(判断范围,判断要求,汇总的区域)
SUMIF的第三个参数可以忽略,第三个参数忽略的时候,第一个参数应用条件判断的单元格区域就会用来作为需要求和的区域。
10、COUNTIF函数
COUNTIF函数用来计算单元格区域内符合条件的单元格个数。
COUNTIF函数只有两个参数:
COUNTIF(单元格区域,计算的条件)
- ?
Excel用Find函数返回指定字符位置与在多行查找及一次查找多个值
问旋
展开
在 Excel 中,查找指定字符在源字符串中的位置,既可以用 Find函数,也可以用 FindB函数,它们都有三个参数,所不同的是,前者把汉字、字母和数字都算一个字符,后者把汉字算两个字节,数字和字母算一个字节。以下就是 Excel Find函数与FindB函数的使用方法及实例,含基本使用方法、在多行中动态查找方法和用数组一次查找多个值实例,操作所用版本均为 Excel 2016。
一、Find函数和FindB函数语法
(一)Find函数
表达式:FIND(Find_Text, Within_Text, [Start_Num])
中文表达式:FIND(查找文本, 源文本, [查找开始位置])
(二)FindB函数
表达式:FINDB(Find_Text, Within_Text, [Start_Num])
中文表达式:FINDB(查找文本, 源文本, [查找开始位置])
(三)说明:
1、如果 Find_Text 为空(""),则返回 1;另外,Find_Text 不能包含任何通配符。
2、Start_Num 为可选项,如果省略,则默认从第一个字符开始查找。Start_Num 小于等于 0 与大于 Within_Text 长度,Find 和 FindB 都返回 #VALUE! 错误值。
3、Find 和 FindB 都区分大小写,也就是同一个字母的大写和小写算两个字母。Find 的 Start_Num 无论是汉字、字母还是数字都以一个字符算;而 FindB 的 Start_Num 汉字以两个字节算,字母和数字以一个字节算。
二、Find函数的使用方法及实例
(一) Find_Text 为空("")且省略 Start_Num 的实例
1、选中 B1 单元格,输入公式 =FIND("",A1),按回车,返回 1;双击 B1,把公式改为 =FIND("",A1,4),按回车,返回 4;操作过程步骤,如图1所示:
图12、公式说明:第一个公式 =FIND("",A1) 查找文本为空,默认返回第一个字符的位置,所以返回 1;第二个公式 =FIND("",A1,4),查找文本也为空,但从第 4 个字符开始查找,所以返回在“Excel 2016 教程”中指定的位置 4。
3、查找空格(" ")
A、把公式 =FIND(" ",A1,4) 复制到 B2 单元格,如图2所示:
图2B、按回车,返回 6,正是“Excel 2016 教程”中第一个空格的位置,如图3所示:
图3(二)Start_Num 小于等于 0 与大于 Within_Text 长度的实例
1、把公式 =FIND("2016",A1,0) 复制到 B1 单元格,按回车,返回 #VALUE! 错误;把公式改为 =FIND("2016",A1,15),按回车,也返回 #VALUE! 错误;操作过程步骤,如图4所示:
2、说明 Start_Num 小于等于 0 与大于 Within_Text 长度,Find函数都返回 #VALUE! 错误。
(三)Find函数区分大小写的实例
1、把公式 =FIND("e",A1) 复制到 B1 单元格,按回车,返回 4;把公式改为 =FIND("E",A1),按回车,返回 1,如图5所示:
2、查找位置都默认从 1 开始,但查找小写 e 时,返回的 4,正是“Excel 2016 教程”中小写 e 的位置;查找大写 E 时,返回的是 1,正是“Excel 2016 教程”中大写 E 位置。
(四)查找不存的文本返回错误处理
1、把公式 =FIND("2013",A1) 复制到 B1 单元格,按回车,返回 #VALUE! 错误,因为“Excel 2016 教程”没有 2013,操作过程步骤,如图6所示:
图62、如果用 =FIND("2013",A1) 作为 if 的条件,返回 #VALUE! 错误,if 将无法判断真假,如这个公式 =IF(FIND("2013",A1),"2013","2016"),如图7所示:
3、如果条件 FIND("2013",A1) 为真将返回 2013,否则返回 2016,但由于返回 #VALUE! 错误,导致最终也返回 #VALUE! 错误,如图8所示:
图84、只要加一个判断 Find 返回值是否为数字的 IsNumber函数,if 就能返回正确值,把公式改为 =IF(ISNUMBER(FIND("2013",A1)),"2013","2016"),按回车,返回 2016,操作过程步骤,如图9所示:
图95、由于 FIND("2013",A1) 返回 #VALUE! 错误,#VALUE! 不是数字,因此 IsNumber(#VALUE!) 返回假,if 的条件为假,所以返回 2016。
(五)用 Mid 与 Find 截取指定字符
1、从指定字符截取到末尾。假如要从“Excel 2016 教程”中截取 2016 以后的所有文字。把公式 =MID(A1,FIND("2016",A1),10) 复制到 B1 单元格,按回车,返回“2016 教程”,操作过程步骤,如图10所示:
图102、截取中间指字符串。假如要从“Excel 2016 数据透视表教程”中截取“数据透视表”。把公式 =MID(A1,FIND("数据",A1),FIND("透视表",A1,FIND("数据",A1)) +3-FIND("数据",A1)) 复制到 B1 单元格,按回车,返回“数据透视表”,操作过程步骤,如图11所示:
图11公式说明:
A、公式中第一个 FIND("数据",A1) 用于返回要截取字符串的开始位置。
B、FIND("透视表",A1,FIND("数据",A1))+3-FIND("数据",A1) 用于返回要截取字符串的长度,先用 FIND("透视表",A1,FIND("数据",A1)) 返回要查找字符串“数据透视表”最后三个字所在位置,由于查找“透视表”是三个字,而 Find 返回“透视表”的是“透”字的位置”,因此要加 3;然后减掉要截取字符串开始字符“数据”所在位置,从而返回要截取字符串“数据透视表”。
提示:如果要从文字很多的段落中截取指定字符,FIND("透视表",A1,FIND("数据",A1)) 中才用 FIND("数据",A1) 找到查找开始位置,否则开始位置从 1 开始即可,这样有利于提高效率。
(六)用 Find函数在多行中动态查找
1、假如要在服装销量表的“产品名称”中查找是否包含“分类”。把公式 =IF(ISERR(FIND($C$2:$C$12,B2)),"不包含","包含") 复制到 G2 单元格,按回车,返回“包含”;把鼠标移到 G2 右下角的单元格填充柄上,按住左键,往下拖,则所经过单元格返回相应值;操作过程步骤,如图12所示:
图122、公式说明:公式中 $C$2:$C$12 是对 C2 到 C12 的绝对引用,即往下拖时,每次从 C2 到 C12 中返回一个值;B2 是相对引用,往下拖时会变为 B3、B4、……;FIND($C$2:$C$12,B2) 是在 C2 中找 B2,往下拖时,B2 变 B3,则在 C3 中找 B3,以此类推;如果没有找到,Find函数返回 #VALUE! 错误;用 IsErr函数判断是否返回错误,如果返回错误,则返回“不包含”否则返回“包含”。
(七)Find 用数组一次查找多个值
1、假如要在“Excel 2016 教程”中查找是否包含 0、2、教。把公式 =SUM(ISNUMBER(FIND({0,2,"教"},A1))*1) 复制到 B1 单元格,按回车,返回 3,操作过程步骤,如图13所示:
图132、公式说明:
A、用 Find 查找多个值,可以用数组,即 FIND({0,2,"教"},A1),表示要在 A1 中查找 0、2、教,查找顺序为:从 0 开始查找,每次查找一个,找到返回所在位置,没有找到返回 #VALUE! 错误。
B、FIND({0,2,"教"},A1) 最终返回 {8,7,12},则公式变为 =SUM(ISNUMBER({8,7,12})*1);用 IsNumber 判断,由于数组中全是数字,所以全返回真,公式变为 =SUM({True,True,True}*1),再把 1 与数组中的每个 True 相乘,由于 True 转为数值为 1,所以公式变为 =SUM({1,1,1}),最终求和结果为 3。
C、FIND({0,2,"教"},A1) 的意思是,如果 A1 中只有 0、2 或“教”其中之一,则返回 1;如果同时有两个,则返回 2;如果同时有三个,则返回 3。
三、FindB函数的使用方法及实例
1、把公式 =FINDB("2016",A1) 复制到 B1 单元格,按回车,返回 7;双击 B1 单元格,把公式改为 =FINDB("教",A1,6),按回车,返回 12;再次双击 B1 单元格,把公式改为 =FINDB("程",A1,6),按回车,返回 14;操作过程步骤,如图14所示:
2、说明:第一个公式 =FINDB("2016",A1) 返回 7 ,说明,FindB函数把每个字母算一个字节;第二个公式 =FINDB("教",A1,6) 返回 12,说明 FindB函数把每字母和数字都算一个字节;第三个公式 =FINDB("程",A1,6) 返回 14,说明 FindB函数把每个汉字算两个字节。除操作中的实例外,FindB函数的其它用法与Find函数相同。
- ?
Excel如何自动挑选出同时满足多个条件的数据
范代灵
展开
在进行数据统计时,有时需要挑选出同时满足多个条件的数据。例如在进行三好学生、优秀学生等评选时,有时会需要挑选出各学科考试成绩都大于某个数值的学生,作为参评的条件之一。例如要挑选出各学科成绩都大于80的学生。这时在班级里学生较多的情况下,如果采用逐个查看每个学生各科成绩来进行挑选的方法将会花费一定的时间,还有可能因为马虎而出现疏漏,这样不但影响工作效率,还可能影响最终结果的准确性。这种情况可以考虑用Excel来帮助我们较轻松和准确的完成这个任务,这里以Excel2007为例介绍如何操作,以供参考。
在Excel中挑选出同时满足多个条件的数据可以考虑采用“AND”函数,其语法为:AND(logical1,logical2, ...),括号内的“logical1,logical2, ...”为各种条件的表达式,如果各种条件的表达式都成立,Excel就会返回“TRUE” 否则返回“FALSE”。
但如果表格中只显示英文的“TRUE”和“FALSE”,会显得不太美观,也不够明了。这时可以组合使用其他的函数,如“IF”函数,让Excel显示我们自定义的字符。IF”函数的语法为:IF(logical_test,value_if_true,value_if_false),括号中的“Logical_test”为表达式(例如可以用上述的“AND”函数作为表达式),“value_if_true”为表达式结果为TRUE”时Excel返回的结果,“value_if_false”为表达式结果为“FALSE”时Excel返回的结果。
例如要从下图表格中挑选出各科成绩都大于80的学生:
例表●统计时可先在表格右侧添加一个显示统计结果的列,然后点击选中该列的列首单元格。
点击列首单元格●选中单元格后,在编辑栏中输入“=AND(C4>=80,D4>=80,E4>=80,F4>=80)”,其中的C4、D4、E4、F4为该行中的学生各科考试成绩所在的单元格,>=80为判断条件,即要求考试成绩大于等于80分。如果AND后面的括号中各判断条件都成立,即各科成绩都大于等于80分,则Excel会返回“TRUE” 否则如果有一科或者多科成绩不大于等于80,Excel会返回“FALSE”。
输入公式●输入上述函数公式后,按键盘回车键或者点击编辑栏左侧的对号,该单元格中就会显示出计算结果。
显示判断结果●再用下拉填充柄或者选择性粘贴公式的方法在该列的其他单元格中快速填充公式,就会显示出所有学生的判断结果,其中结果为“TRUE”的表示该学生的各科成绩都大于等于80,结果为“FALSE”的表示该学生至少有一科成绩不大于等于80。但这种显示结果不太美观和明了,最好再组合IF函数来显示中文或者其他符号的判断结果。
填充公式后显示判断结果●我们可以把列首单元格中的公式改成=IF(AND(C4>=80,D4>=80,E4>=80,F4>=80),"是","否"),即如果公式"AND(C4>=80,D4>=80,E4>=80,F4>=80)"的判断结果为“TRUE”,则Excel会显示字符“是”;反之如果判断结果为“FALSE”则Excel会显示字符“否”,这样看起来比英文的“TRUE”和“FALSE”要明了一些。
修改公式●这样再下拉填充或者选择性粘贴公式后,该列其他单元格中就都显示出中文的判断结果了。
填充公式后显示中文判断结果●我们还可以用对号来表示符合条件,用空白来表示不符合条件。即把上述公式修改为=IF(AND(C4>=80,D4>=80,E4>=80,F4>=80),"√","")。
修改公式●这样,符合条件的学生就都会显示对号,不符合条件的学生会显示空白,感觉更加一目了然。
符合条件的学生都显示对号上述例子介绍的只是AND函数和IF函数相组合的一种应用方法,熟练掌握这两种函数的用法后,可以给数据统计带来更多的方便。
- ?
查找返回多个数据值新思路,自制多功能查询函数比vlookup更简单
绿竹
展开
转载自百家号作者:Excel函数与VBA实例
在工作中我们经常会碰到根据某个单一条件去查找对应的数据值,这个时候我们常用的一个万能查询函数那就是vlookup函数,vlookup函数可以实现基本的向左、向右以及多条件值数据查询等功能。但是这个函数有个弊端就是,不能实现返回多个数据值。
如当我们在查询某个人当天所有门禁刷卡时间或当天人员的所有销售记录时候,从上往下查找只能查找出最上面的第一条数据,无法提取出整天的数据。如果要实现这个功能就需要用辅助操作来实现,会显得比较麻烦。那么今天我们就来讲讲自定义多功能查询函数和vlookup函数分别是如何解决这个问题的。
方法一、vlookup函数如何查找返回多个数据值
问题:提取张三7月1日所有刷卡记录
如上图效果图所示,当我们输入函数=VLOOKUP(ROW(A1),A:D,4,0)往下拖动,张三当天的所有刷卡记录都会显示出来,因为总共只有3条数据,所以第四条结果开始就会出现错误值。
操作方法:
第一步:首先用countif函数做一个辅助列,因为单纯的vlookup函数查询是无法返回多个数值的。插入A列,辅助列函数为:COUNTIF(C$2:C2,F$4)。
注意点:函数COUNTIF函数中C$2:C2,是非常有深意的,用相对引用的方式往下拖动,分别代表的数据区域则为:C$2:C3、C$2:C4、C$2:C5等。这样代表的意思就是可以查找出对应的人出现过多少次。
第二步:输入函数VLOOKUP(ROW(A1),A:D,4,0)进行数据查询,然后往下拖动即可返回姓名为张三的所有值。
注意点:vlookup函数第一参数使用ROW(A1)为条件值的目的是,通过对应姓名所在的数值来进行数据查询。比如第一条记录8:38分,选择函数ROW(A1)按F9,返回的是1;第二条记录10:15分,选择函数ROW(A1)按F9,返回的是2,以此类推。效果如下图所示:
方法二:自定义Mlookup多功能函数查找返回多个数据值
问题:提取张三7月1日所有销售单号
如上图效果图所示,输入函数:Nlookup(F4,C:D,2,-1),即可返回张三7月1日销售的所有单号:2018070101,2018070106,2018070111,是不是感觉比vlookup函数更加简单神奇。这需要用到的是VBA代码来自定义一个Nlookup函数。
操作方法:
第一步:按alt+f11进入代码编辑窗口,新建一个模块;
第二步:输入以下代码后,保存为宏文件,即可使用自定义的Nlookup函数,如果你需要修改为其他自己喜欢的函数,可以全部替换即可。
代码如下:
Function Nlookup(rg, rgs As Range, L As Integer, M As Integer)
Dim arr1, ARR2, 列数
Dim R, n, K, X, cc, sr As String
arr1 = rg.Value
ARR2 = rgs
If VBA.IsArray(arr1) Then
For Each R In arr1
If R <> "" Then
cc = cc & R
列数 = 列数 + 1
End If
Next R
Else
cc = arr1
End If
If M > 0 Then '非查找最后一个
For X = 1 To UBound(ARR2)
sr = ""
If 列数 > 1 Then
For q = 1 To 列数
sr = sr & ARR2(X, q)
Next q
Else
sr = ARR2(X, 1)
End If
If sr = cc Then
K = K + 1
If K = M Then
Nlookup = ARR2(X, L)
Exit Function
End If
End If
Next X
ElseIf M = -1 Then '查找所有值
For X = 1 To UBound(ARR2)
sr = ""
If 列数 > 1 Then
For q = 1 To 列数
sr = sr & ARR2(X, q)
Next q
Else
sr = ARR2(X, 1)
End If
If sr = cc Then
Nlookup = Nlookup & "," & ARR2(X, L)
End If
Next X
Nlookup = Right(Nlookup, Len(Nlookup) - 1)
Exit Function
Else '查找最后一个
For X = UBound(ARR2) To 1 Step -1
sr = ""
If 列数 > 1 Then
For q = 1 To 列数
sr = sr & ARR2(X, q)
Next q
Else
sr = ARR2(X, 1)
End If
If sr = cc Then
Nlookup = ARR2(X, L)
Exit Function
End If
Next X
End If
Nlookup = ""
End Function
学习完上面的两种查询多个数据的方法,你现在认为哪一种方法更加简单了?当然这个多功能函数还包含有其他的功能,赶快尝试一下吧。
- ?
excel中用vlookup快速批量找出你要的数据并返回结果
妙之
展开
昨天上班的第一天,居然老板说要我从上万人的相关统计表格中帮他找一下,十几个学生去年的考试成绩,周边的人听到后都幸灾乐祸。我的天啊,上万人中找十几个人。这时有个头脑灵活的说可以用查找,搜索人名啊。结果,老板说:“哦,原来还有这么简单的方法,那改为找指定的100人吧……”。我的天啊,周边的人又大笑起来了。看样了,我第一天就要埋没在这上万人的数据中。为了不让老板加任务,我满脸愁容地对老板说,你给个电子版的名单吧。老板看我愿意做了,真的扔给我,一个有上万人的统计表格,及要查找的一百人的名单。
我用了一个函数,偷偷把问题解决了,然后轻松了一天,哈哈哈哈
为了让大家了解vlookup,我们看一个简单的例子,首先,我们有下图左边的数据,包括了9个人的学号、爱好、成绩,数据部分左上角的单元格是a2,右下角的单元格是c10。接着,下图右边是要查找对象的学号,我们在单元格 f4 中输入“=vlookup(e4,$a$2:$c$10,3,0)",回车后就出现结果300。接着向下拉,出现学号108的查找结果800
上面,vlookup后的括号用了三个逗号,也就是有四部分,其中,e4是要查找的对象; $a$2:$c$10是查找数据所在范围的左上角与右下角,查找范围是a2到c10的那个区域,"$"是绝对引用的意思,通俗点说里面的"$"要为了等一下向下拉动时,保持查找范围不变; 3是返回的内容位于所查找区域的第三列;最后的“0”是表示不要近似值,要求学号要一样才返回结果,如果填1的话,可能查找到学号1010的结果他可能也返回。
vlookup(查找对象,查找范围左上角到右下角,返回内容位于范围的第几列,是否要相似的值)
注意:
1、查找范围建议用$锁定,避免出现拉动时范围变化,
2、返回内容位于查找范围的第几列,是指查找范围的第几列,千万别是整个表格中的第几列
vookup可以帮你快速、批量从数据中找出你要的结果,比查找后,一个个记录快且准!!!
excel返回值
-
1、只需3秒快速实现求和
-
2、如何快速填充序号
-
3、如何自动填充序号(公式法)
-
4、数据条的神奇应用
-
5、多文本快速合并
-
6、查找与替换的不同玩法
-
7、快速定位到指定区域
-
8、数据排序、工资条制作
-
9、快速筛选(模糊、精确筛选)
-
10、快速插入空行
-
11、快速删除空行
-
12.快速跳转到天涯海角
-
13、.同时查看两个Excel文件
-
14、用条件格式扮靓报表
-
15、一键插入Excel图表
-
16、批量处理行高、列宽
-
17、利用拆分功能查看数据
-
18、批量录入相同内容
-
19、工作表快速跳转
-
20、批量录入表格模板(精品课程)
-
21、Excel函数与公式的应用、公式循环引用的查找
-
22、IF函数单条件判断同比增长
-
23、用sum函数 格式相同,连续多表数据汇总
-
24、excel快捷键
-
25、VLOOKUP函数——根据销售员匹配销售额
-
26、统计各部门销售总额
-
27、统计指定条件个数
-
28、怎样输入当前日期和时间、星期数
-
29、销售业绩排名
-
30、Sumproduct函数-万能函数(销售额汇总求和)
-
31、根据销售员,地区,商品名称汇总
-
32、批量替换PPT字体
-
33、给销售额数据批量添加万元单位
-
34、一秒快速核对两列数据
-
35、快速定位到指定单元格或区域
-
36、快速制作双行标题工资条
-
37、给你的表格做个瘦身
-
38、快速打开常用的Excel文件
-
39、快速打开多个Excel文件
-
40、利用创建组—快速隐藏/展开多列数据
-
41、快速制作下拉菜单
-
42、复制粘贴表格,如何保留数据源列宽格式一致?
-
43、两列数据位置互换
-
44、1秒钟扮靓报表——如何实现表格隔行换色
-
45、快速删除重复记录——保留唯一值
-
46、快速向下填充、向右填充,文本或公式
-
47、给Excel文件添加密码
-
48、插入带图片的批注
-
49、输入公式后不计算?
-
50、如何设置单元格缩进
-
51、快速解决Excel表格总显示货币格式
-
52、批量添加万元单位
-
53、你会四舍五入么?
-
54、用RAND函数机选彩票
-
55、冻结首行你会么?
-
56、超链接的高级应用
-
57、IFERROR函数-屏蔽错误值
-
58、批量填充颜色
-
59、录入数据
-
60、快速输入工号
-
61、快速行列转置
-
62、自定义缩放界面
-
63、多个单元格同时输入
-
64、如何计算立方米?
-
65、快速制作双行标题工资条
-
66、输入带方框的√和×
-
67、快速将姓名对齐
-
68、快速输入性别
-
69、按单位职务排序
-
70、自动计算合同到期日期
-
71、计算时间间隔
-
72、日期和时间的拆分
-
73、快速处理不规范的日期格式
-
74、快速填充合并单元格
-
75、效率加倍的快捷键
-
76、快速复制表格和对象
-
77、快速创建工作表副本
-
78、快速复制序列号
-
79、快速显示公式
-
80、多个单元格同时输入
-
81、快速调整显示比例
-
82、快速自动填充
-
83、快速填充(Ctrl+E)
-
84、Ctrl与数字键结合
-
85、快速将多列数据整理为1列
-
86、快速将1列数据拆分为多列
-
87、快速定位公式
-
88、快速录入数据
-
89、快速累计求和
-
90、身份证号码显示为0怎么办?
-
91、快速制作斜线表头
-
92、文本竖向显示
-
93、神奇的监视窗口
-
94、不一样的格式刷
-
95、快速美化图表
-
96、快速生成当前日期
-
97、快速找出循环引用
-
98、快速提取信息
-
99、二维表快速转换为一维表
-
100、快速多表合并