中企动力 > 商学院 > excel查询系统
  • ?

    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输入内容后,向下拖拽到出了空白即可

  • ?

    如果你只会Vlookup函数那就别说你懂表格,Excel全部查找公式(共16大类)

    邱昊焱

    展开

    找对比,你会首先想到

    Vlookup

    函数。但在Excel中只会Vlookup函数是远远不够的。今天兰色对查找公式进行一次全面的整理。

    对于一个地方需要用到对比的时候我们肯定想到的是Vlookup函数,但是你在用Excel的时候只会用它可不行,今天我们就一起来梳理下常用的!

    地球人都知道:一题多解的只选取最优公式!

    1、普通查找VLOOKUP函数

    我们需要查找李晓峰的应发工资

    公式:=VLOOKUP(H2,B:F,5,0)

    2、反向查找INDEX

    函数

    查找吴刚的员工编号

    公式:=INDEX(A:A,MATCH(H2,B:B,0))

    反向查找

    3、交叉查找VLOOKUP函数:

    查找3月办公费的金额

    公式:=VLOOKUP(H2,A:F,MATCH(I2,1:1,0),0)

    4、多条件查找

    VLOOKUP函数

    查找上海产品B的销量

    公式:=LOOKUP(1,0/((A2:A7=E2)*(B2:B7=F2)),C2:C7)

    5、区间查找

    根据销量从右表中查找提成比率。

    公式:=LOOKUP(A2,$D$2:$E$5)

    6、双区间查找

    根据销量和比率完成情况,从表中查找返利。

    公式:=INDEX(B3:F7,MATCH(D11,A3:A7),MATCH(E11,B2:F2))

    7、线型插值

    A列是数量,B列是数量对应的系数值。现要求出数字8所对应的系数值。

    公式:=TREND(OFFSET(B1,MATCH(D3,A2:A6,1),,2,1),OFFSET(A1,MATCH(D3,A2:A6,1),,2,1),D3)

    8、查找最后一个符合条件记录

    要求查找A产品的最后一次进价。

    公式:=LOOKUP(1,0/(B2:B9=A13),C2:C9)

    9、模糊查找

    要求根据提供的城市从上表中查找该市名的第2列的值。

    公式:=VLOOKUP("*"&A7&"*",A1:B4,2,0)

    10、匹配查找

    要求根据地址从上表中查找所在城市的提成。

    公式:=lookup(9^9.find(A$3:A$6,A10),B$3:B$6)

    11、最后一个非空值查找

    要求查找最后一次还款日期

    公式:=LOOKUP(1,0/(B2:B13<>""),$A2:$A13)

    12、多工作表查找

    【例10】从各部门中查找员工的基本工资,在哪一个表中不一定。

    方法1

    公式:=IFERROR(VLOOKUP(A2,服务!A:G,7,0),IFERROR(VLOOKUP(A2,人事!A:G,7,0),IFERROR(VLOOKUP(A2,综合!A:G,7,0),IFERROR(VLOOKUP(A2,财务!A:G,7,0),IFERROR(VLOOKUP(A2,销售!A:G,7,0),"无此人信息")))))

    方法2:

    公式:=VLOOKUP(A2,INDIRECT(LOOKUP(1,0/COUNTIF(INDIRECT({"销售";"服务";"人事";"综合";"财务"}&"!a:a"),A2),{"销售";"服务";"人事";"综合";"财务"})&"!a:g"),7,0)

    13、一对多查找

    【例】根据产品查找相对应的所有供应商

    公式:

    A2 =B2&COUNTIF(B$1:B2,B2)

    B11=IFERROR(VLOOKUP($A11&COLUMN(A1),$A:$C,3,0),"")

    14、查找销量最大的城市

    查找销量最大的城市。注意:注意:注意:数组公式按ctrl+shift+enter三键输入

    公式:{=INDEX(A:A,MAX((MAX(B3:B7)=B3:B7)*ROW(B3:B7)))}

    15、最接近值查找

    根据D4的价格,在B列查找最接近的价格,并返回相对应的日期

    注意:注意:注意:数组公式按ctrl+shift+enter三键输入

    公式:{=LOOKUP(1,0/(MIN(ABS(B3:B7-D4))=ABS(B3:B7-D4))*ROW(B3:B7),A3:A7)}

    15、跨多文件查找

    跨多个文件查找,网上大概很难找到这样的教程,仔细想想其实原理和跨多表查找一样,也是借助lookup等函数实现。

    文件夹中有N个仓库产品表格,需要在“查询”文件完成查询

    仓库表样式

    在查询表中设置公式,根据产品名称从指定的文件中sheet1工作表查询

    入库单价

    公式:=VLOOKUP(A2,INDIRECT(LOOKUP(1,0/COUNTIF(INDIRECT("["&{"仓库1";"仓库2";"仓库3"}&".xlsx]sheet1!a:a"),A2),"["&{"仓库1";"仓库2";"仓库3"}&".xlsx]sheet1")&"!a:b"),2,0)。

    如果你在用vlookup函数做多文件查找的时候也可以用iferror+vlookup的模式的这种模式,看起来公式很长,但是这样不会出错。此外,如果一个表用到的函数太多就需要用宏表函数用Files获取所有excel文件名称了。

    老男孩PS

    :我能想到的基本上都已经列出来了,但是我相信有很多大家可能看不懂,但是看不懂没关系,赶紧收藏起来,然后直接套用就可以了。

  • ?

    这是Excel中的高级查询功能,可能你用的才刚刚入门

    阮正豪

    展开

    这是Excel中的高级查询功能,可能你用的才刚刚入门,你看可能不信,不过你看下去,或许是真的呢?Excel强大是肯定的。我们习惯于按ctrl+F打开查找窗口,输入查找的字符,然后就可以找到想找的内容。

    1、选取表中所有公式

    选取工作表中所有的公式,别以为只有定位功能可以实现。在查找窗口中输入=号,点击“查找全部”,然后再按ctrl+a即可选取表中所有公式。

    2、批量删除或隐藏带颜色的行

    打开格式下拉 - 点击“从单元格选择格式”并刷向黄色单元格 - 查找全部 - 按ctrl+a全选 - 按ctrl+9隐藏或右键菜单中点删除。

    3、多列按区间筛选

    【例】如下图所示表中,要求选取1~6月各产品销量数量>80的单元格,并填充绿色背景。

    操作步骤:

    选取数据区域,CTRL+F打开查找窗口,并进行如下设置

    查找框中输入"*"

    点“查找全部”

    点标题“值”排序

    选取第一个大于80的行,按shift再选中最后一行

    关闭“查找”窗口,填充绿色。

    填充效果如下图所示:

    4、查找所有合并单元格

    如查需要查找工作表中的合并单元格,只需要先任选2个空单元格合并,然后从查找窗口中选取该合并单元格,再点查找合部即可。

    5、删除括号中的内容

    如果要删除一列字符串中括号内的内容。只需要查找(*)然后替换为空即可。

    很多人很少关注格式查找,其实利用格式查找,可以把一种单元格或字体格式替换成另一种,非常的实用。会的人就拿来看看,不会的人就好好学习哈,不足之处请谅解。

  • ?

    Excel | INDEX、VLOOKUP、HLOOKUP、LOOKUP排排站,查询函数任你选

    娇嗔

    展开

    问题来源

    数据查询是EXCEL数据处理的重要方面。EXCEL提供了很多数据查询函数,今天韩老师来给大家分享四个经常用于查找“行列交叉处”数据的函数。

    原数据

    函数分析

    第一个函数:INDEX函数

    语法:INDEX(array,row_num, [column_num])

    中文语法:INDEX(单元格区域或数组常量,数组中的某行,[数组中的某列])

    C13中输入公式:“=INDEX(A2:K10,MATCH(A13,A2:A10,0),MATCH(B13,A2:K2,0))”

    该公式的解释:

    其中MATCH函数查找指定项在单元格区域中的相对位置

    语法:MATCH(lookup_value,lookup_array, [match_type])

    中文语法:MATCH(指定项,单元格区域,[匹配方式])

    match_type,即匹配方式,参数有三个:

    -1,查找小于或等于 lookup_value的最大值;0,查找等于 lookup_value的第一个值;1,查找大于或等于 lookup_value的最小值。

    MATCH函数是查找函数最好的“搭档”,在与INDEX、VLOOKUP、HLOOKUP配合使用中起到重要作用。

    第二个函数:VLOOKUP函数

    功能:搜索某个单元格区域的第一列,然后返回该区域相同行上任何单元格中的值。

    语法:VLOOKUP(lookup_value,table_array, col_index_num, [range_lookup])

    中文语法:VLOOKUP(要在表格或区域的第一列中搜索的值, 包含搜索值和结果据的单元格区域, 单元格区域返回的匹配值的列号,[匹配方式])

    range_lookup,即匹配方式。

    range_lookup为 FALSE,查找精确匹配值;range_lookup为TRUE或省略,近似匹配值。

    D13中输入公式:“=VLOOKUP(A13,A2:K10,MATCH(B13,A2:K2,0),0)”

    该公式的解释:

    第三个函数:HLOOKUP函数

    功能:在表格或数值数组的首行查找指定的数值,并在表格或数组中指定行的同一列中返回一个数值。

    语法:HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])

    中文语法:HLOOKUP(查找的值, 其中查找数据的信息表, 匹配值返回的行号, [匹配方式])

    range_lookup,即匹配方式:

    range_lookup为FALSE,查找精确匹配值;range_lookup为TRUE或省略,近似匹配值。

    E13中输入公式:=HLOOKUP(B13,A2:K10,MATCH(A13,A2:A10,0),0)

    该公式的解释:

    VLOOKUP、HLOOKUP的根本区别:

    当比较值位于所需查找的数据的左边一列时,则可使用 VLOOKUP;当比较值位于数据表格的首行时,如果要向下查看指定的行数,则可使用 HLOOKUP。

    第四个函数:LOOKUP函数

    语法:LOOKUP(lookup_value, lookup_vector, [result_vector])

    中文语法:LOOKUP(搜索的值, 包含搜索值的一行或一列的区域, [只包含查询结果的一行或一列区域])

    F13中输入公式:"=LOOKUP(A13,A2:A10,OFFSET(A2:A10,,MATCH(B13,A2:K2,0)-1))"

    该公式的解释:

    其中:OFFSET(A2:A10,,MATCH(B13,A2:K2,0)-1) 指由A2:A10的"部门"列偏移到"产品5"所在的F2:F10列。

    最终效果:

  • ?

    excel中index和match函数定位查询信息,比你想象的简单!

    紫布丁

    展开

    之前有位学员来上课的时候,小编听到她在抱怨说看了半天index函数和match函数,但是不知道该怎么样去使用它们?确实这两个函数看着挺简单,分开使用也还好,但是想要发挥最大的效果就必须要交叉使用才可以。

    精确定位:MATCH函数

    MATCH函数(lookup-value,lookup-array,match-type),返回查找内容所在的位置。

    lookup-value:表示需要查找的值,数组或单元格引用都可以;

    lookup-array:表示包含所要查找数值的区域,数组或数组引用;

    match-type:表示用于精确查找或模糊查找。取值为-1、1、0 。其中0为精确查找。

    检索查询和交叉查询:index函数

    INDEX函数(array,row-num,column-num),返回制定位置中的内容。

    array:要查找值的单元格区域或数组;

    row-num:返回值所在的行号;

    column-num:返回值所在的列号(行号和列号有一个即可)。

    实训习题:

    左边是公司所有人员的信息统计表,右边是我们需要查找的信息。我们想用名字去查找这个人所在的部门。

    我们需要将名字所在的位置使用match定位出来,再和index函数配合使用。选择姓名所在位置,再选择姓名所在单元格范围,使用精确定位即可。

    在使用了match后,在使用index函数会出现这样的对话框,选择第一个点击确定即可。配合index函数,选择部门所在单元格范围即可完成操作。

    当然在使用函数的过程中,小编也犯了一个错误,就是没有使用绝对应用,到时候出现的结果会不正确,所以我们需要在要改变的数据前面加上$锁死数据。

  • ?

    Excel常见查询套路,你用过几个?

    Janet

    展开

    模糊及精准查询

    如图:Excel文件中包含多个数值,它们都有一个特点就是都含有6这样一个数值。

    CTRL+F打开查找对话框,我在查找内容是“6”但大家可以清楚看到,只要单元格含6都可以查找出来。这其实与我们本来是查找“6”的真实目的不一致。因为Excel中默认的查找方式是模糊查找

    怎么样才能够达到精确查找呢?在查找对话框中点击“选项”

    在“选项”中点击勾选“单元格匹配”单元格匹配什么意思?就是查找内容与单元格完全一致时还是才查找。再看一下查找结果,是不是达到了我们要的精确查找的结果?

    vlookup查找

    如图所示,要根据I2单元格活动形式,在E-G区域中查询出对应的价格

    经典套路:

    =VLOOKUP(I2,E:G,3,0)

    lookup查询

    如下图所示,根据H2单元格姓名,在A-B数据区域中查询对应的工号

    =LOOKUP(1,0/(H2=B2:B31),A2:A31)

    公式指南:

    =LOOKUP(1,0/(条件区域=指定条件),要返回的区域)

    组合查找

    利用MATCH和INDEX函数

    如下图所示,根据姓名查询城市及职务。

    G2单元格公式为:

    =INDEX(A:A,MATCH($F2,$B:$B,0),0)

    H2单元格公式为:

    =INDEX(C:C,MATCH($F2,$B:$B,0),0)

    如果看了这篇文章还是搞不定,可以直接给我留言

    关于作者

    专注分享Excel经验技巧

    一个人走得快,一群人走得远,与195位同学共同成长

  • ?

    556Excel技巧:VlookupMatch设计查询系统?

    叶兰

    展开

    最近在一家企业做Excel培训的时候,谈到了vlookup函数的使用,利用vlookup制作一个小型的数据库查询系统,期间财务总监问道系统设计中的一个细节问题,牛闪闪觉得有很普遍针对性,赶紧和大家进行一下分享。

    首先什么是列表查询系统,就是类似身份证掉了去公安局挂失,警察一定是想问你的身份证号码,然后在他的系统里进行查询,从而获得身份证对应的其他信息,比如姓名,家庭住址什么的。那用Excel当数据库,如何设计这类查询系统?

    本例给大家介绍一下。首先你需要一个“数据库”表格,第一列包含了每条记录的唯一性,下表中员工编号既是数据库每行的数据的唯一标识,俗称关键字字段。

    把上面的表格当成数据库,然后在另外的数据区域,创建一个查询窗口区域。下图红框处,注意字段的顺序与数据库表格的字段顺序不一样,也是本例的重点。

    接下来就可以利用vlookup函数,进行列表的查询匹配。

    =VLOOKUP(A12,D2:G8,3,0) 函数输入后,得到B1123编号的员工性别是女。从上表中看应该是Grace. 那如何做到其他字段,年龄,员工姓名 都成功匹配上呢,大家肯定会说,把函数里面的参数改为2或4就好了,但职场中的数据库表格字段通常都比较多,因此我们的财务总监希望,写好vlookup函数后,然后直接拖拽就可以获得数据库数据的自动匹配。

    所以单靠vlookup就不能解决这类问题,所以需要另外一个函数出场 match函数。

    Match函数又叫定位函数,利用可以知道查询窗口的字段,在数据库表中的位置,从而获得vlookup函数对应的列数。具体看操作:

    用MATCH(B11,D1:G1,0)代替了3,既性别在数据库表中的列数位置。

    最后拖拽前,将按f4将需要锁住的单元格位置,看动图操作:

    是不是还算简单呢!

    总结:Vlookup+match函数也可以看成是一个固定的搭配,解决这类小型列表查询系统设计的字段不统一的问题。

  • ?

    只会vlookup已经OUT了,Excel中12种查询方式全在这里

    牟访风

    展开

    在平时用Excel进行各类数据处理的时候,很多朋友都会碰到的一个问题就是数据查询,说到查询函数大家可能也会说到的就是Vlookup函数。其实在Excel中还有其他更加实用的数据查找函数公式,今天我们就来完整的学习一遍Excel中12种查询方式。

    场景1:正常情况下数据查找

    案例:查找出对应人员的语文成绩

    函数=VLOOKUP(F5,B:C,2,0)

    场景2:向左数据查找

    案例:根据学号查询出对应姓名

    函数=INDEX(B:B,MATCH(G5,C:C,0))

    场景3:多函数条件交叉查询

    案例:求出赵二第三周考试成绩

    函数=VLOOKUP(I6,B:G,MATCH(J6,B$2:G$2,0),0)

    场景4:LOOKUP多条件查询

    案例:求出B产品在京东平台的销量

    函数=LOOKUP(1,0/(B:B=F6)*(C:C=G6),D:D)

    场景5:数据等级区间查询

    案例:求出销售额对应的提成比例

    函数=LOOKUP(F5,$B$3:$C$6)

    场景6:横向纵向区间数据查询

    案例:根据当月销售额及完成比例求出对应提成

    函数=INDEX(C3:F9,MATCH(I4,B3:B9),MATCH(I5,C2:F2))

    场景7:根据规律自动提取数值对应系数

    案例:按照规律根据我们需要的数值提取出对应的系数

    函数=TREND(OFFSET(B1,MATCH(D3,A2:A6,1),,2,1),OFFSET(A1,MATCH(D3,A2:A6,1),,2,1),D3)

    场景8:查找符合条件的最后一个数

    案例:查找出王五最后一天的销售额

    函数=LOOKUP(1,0/(B:B=J4),F:F)

    场景9:通配符模糊查找

    案例:查找出姓王的人的销售额

    函数=VLOOKUP(G5&"*",C:D,2,0)

    场景10:高级匹配查找

    案例:从对应完整地址中提取所在城市的提成点数

    =lookup(9^9.find(A$3:A$6,A10),B$3:B$6)

    场景11:查找最后一个非空的单元格内容

    案例:求出对应人员最近一次缴纳社保的月份

    函数=LOOKUP(1,0/(E4:E10<>""),$A$4:$A$10)

    场景12:轻松实现一对多查询

    案例:轻松提取部门人员全天的门禁记录

    函数=IFERROR(VLOOKUP(ROW(A1),A:D,4,0),""),首先需要在A列做辅助列,函数=COUNTIF(B$2:B2,G$2)

    现在Excel关于数据查询你学会了吗?

  • ?

    看到先收藏!excel制作身份证查询系统大解读!

    老酒

    展开

    学习excel这么多年,不知道大家是否尝试过用excel来制作一个身份证查询系统?即输入身份证号码即可以查询出性别、年龄、出生年月日、生肖、星座、所以地区等信息,这样的身份证查询系统用excel来做难吗?

    事实告诉我们,相当容易,只需要用到excel中一些常用函数即可搞定,不信且往下看!

    excel身份证查询系统

    首先,在开始制作时,我们了解清楚身份证中每一个号码所代表的信息:

    1、身份证号码与一个人的性别、出生年月、籍贯等信息是紧密相连的,无论是15位还是18位的身份证号码,其中都保存了相关的个人信息。

    2、15位身份证号码:第7、8位为出生年份(两位数),第9、10位为出生月份,第11、12位代表出生日期,第15位代表性别,奇数为男,偶数为女。

    3、18位身份证号码:第7、8、9、10位为出生年份(四位数),第11、第12位为出生月份,第13、14位代表出生日期,第17位代表性别,奇数为男,偶数为女。

    4、"中国大陆居民身份证号码中的地址码的数字编码规则为:

    第一、二位表示省(自治区、直辖市、特别行政区)。

    第三、四位表示市(地级市、自治州、盟及国家直辖市所属市辖区和县的汇总码)。其中,01-20,51-70表示省直辖市;21-50表示地区(自治州、盟)。

    第五、六位表示县(市辖区、县级市、旗)。01-18表示市辖区或地区(自治州、盟)辖县级市;21-80表示县(旗);81-99表示省直辖县级市。"

    清楚上面身份证信息之后我们开始制表:

    第一列:性别

    性别

    分别用到函数IF,MOD和MID,其用法分别如下:

    =IF(条件判断, 结果为真返回值, 结果为假返回值) 用来判断是男是女

    if函数语法

    =MOD(被除数,除数)

    mod函数语法

    = MID(被截取的字符, 从左起第几位开始截取, 从左起向右截取的长度是多少)

    mid函数语法

    综合上面三个函数,第一列性别=IF(MOD(MID(A2,17,1),2),"男","女"),第一17位开始截取一位数字求余后判断是男还是女,基数代表男,偶数代表女

    第二列:年龄

    年龄

    分别用到datedif、text、len和mid四个函数,初看上面公式有点吓人,但拆分出来,理解每一个函数的用法就觉得难了,先分别看下这个三个函数的用法(mid函数已在上面介绍过)

    =DATEDIF(start_date,end_date,unit)

    datedif函数语法

    =text(数据值,设置单元格格式中自己所要选用的文本格式)

    text函数语法

    =LEN(文本字符串)

    len函数语法

    综合上面四个函数,第二列年龄=DATEDIF(--TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),"0-00-00"),TODAY(),"y")&"周岁零"&DATEDIF(--TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),"0-00-00"),TODAY(),"ym")&"月"&DATEDIF(--TEXT((LEN(A2)=15)*19&MID(A2,7,6+(LEN(A2)=18)*2),"0-00-00"),TODAY(),"md")&"天",大家可将这公式的每一部分单独拿出来理解,然后再合并到一个公式里即可

    第三列:出生年月日

    出生年月日

    这一列用到的函数都已介绍过,具体参考上面,详细公式=TEXT(MID(A2,7,8),"0年00月00日")

    第四列:生肖

    生肖

    这一列用到的函数都已介绍过,具体参考上面,详细公式=IF(LEN(A2)=15,MID("鼠牛虎兔龙蛇马羊猴鸡狗猪",MOD("19"&MID(A2,7,2)-4,12)+1,1),MID("鼠牛虎兔龙蛇马羊猴鸡狗猪",MOD(MID(A2,7,4)-4,12)+1,1))

    第五列:星座

    星座

    =VALUE(需要转换成数值格式的文本字符串)

    value函数语法

    =VLOOKUP(找什么,在哪找,找到后返回其右侧对应的第几列数据,精确还是模糊查找)

    vlookup函数语法

    综合上面两个函数,第五列星座=VLOOKUP(VALUE("1900-"&TEXT(MID(A2,LEN(A2)/2+2,4),"#-##")),{1,"摩羯座";20,"水瓶座";50,"双鱼座";81,"白羊座";111,"金牛座";142,"双子座";174,"巨蟹座";205,"狮子座";236,"处女座";267,"天秤座";298,"天蝎座";328,"射手座";357,"摩羯座"},2,TRUE)

    第六列:所在地区

    所在地区

    这一列用到的函数都已介绍过,具体参考上面,详细公式=VLOOKUP(LEFT(A2,6),身份证地址码对照表!A:B,2,1)

    至此,关于excel制作身份证查询系统的内容已全部介绍完,如果大家第一次没看懂可以多看几次,把每一个函数的语法搞清楚,然后根据身份证号码本身代表的含义用公式连接起来即能得到我们想要的答案。

  • ?

    用Excel制作动态查询信息系统

    闵海之

    展开

    通过准备数据源以及查询表格两个步骤我们准备好了图片并批量导入了数据源表中。本篇我们就做出查询表。查询表的最终效果如下:

    动态查询系统

    我们根据上一步骤完成的带有图片的数据源,做一个动态查询档案,输入姓名即可查询到照片、性别、出生日期等。做好了之后是这样的:怎么操作呢?步骤如下:(1)首先创建以下表格。

    查询表格模版

    并且准备好数据源

    数据源

    (2)在姓名对应的B3单元格输入“张飞”。

    (3)接下来“性别”“出生年月”等其他信息的获取,我们根据姓名“张飞”采用一个公式来完成。在性别对应的B5单元格输入

    查询公式

    性别: =IFERROR(OFFSET(数据源!$A$3,MATCH($A$3,数据源!$A:$A,0)-1,MATCH(查询!A5,数据源!$1:$1,0)-1),"")

    出生年月: =IFERROR(OFFSET(数据源!$A$3,MATCH($A$3,数据源!$A:$A,0)-1,MATCH(查询!A8,数据源!$1:$1,0)-1),"")

    血型: =IFERROR(OFFSET(数据源!$A$3,MATCH($A$3,数据源!$A:$A,0)-1,MATCH(查询!A10,数据源!$1:$1,0)-1),"")

    星座: =IFERROR(OFFSET(数据源!$A$3,MATCH($A$3,数据源!$A:$A,0)-1,MATCH(查询!D8,数据源!$1:$1,0)-1),"")

    职业: =IFERROR(OFFSET(数据源!$A$3,MATCH($A$3,数据源!$A:$A,0)-1,MATCH(查询!D10,数据源!$1:$1,0)-1),"")

    解析:

    MATCH(查找内容,查找区域,0):表示查找第一个参数在第二个参数的位置,第三个参数为0代表精确匹配。这里分别返回的是B2单元格“张飞”在数据源A列(姓名列)对应的位置2和A3单元格“性别”在数据源第1行(标题行)对应的位置2。

    OFFSET(参照位置,偏移的行位置,偏移的列位置):表示以第一个参数为位置参照,偏移到第二参数定义的行数和第三参数定义的列数所在的单元格,返回其值。这里的含义是以“数据源”表里的A1单元格为准,向下偏移2-1行向右偏移2-1列,获取到B3单元格值“男”。

    在上述OFFSET函数中,如果B3单元格为空,则返回错误信息“N/A”。我们利用IFERR0R函数,当单元格返回错误“N/A”则输出为空值。因为后续还要查询“出生年月”“星座”等,所以公式中“查询!A10”这个是相对引用,其他都采用了绝对引用。 然后把这个公式复制应用到“出生年月”“星座”等对应的单元格里。注意修改相对引用项。

    (4) 接下来我们要把图片动态引用过来。单击【公式】选项卡下的名称管理器旁边的“定义名称”。=INDEX(数据源!$G:$G,MATCH(查询!$B$3,数据源!$A:$A,0))在在弹出的对话菜单中,【名称】处输入“照片”,【引用位置】输入公式:=INDEX(数据源!$G:$G,MATCH(查询!$B$2,数据源!$A:$A,0))

    定义名称

    解析:

    MATCH:表示查找第一个参数,也就是姓名“张飞”单元格在第二个参数数据源姓名列的位置,返回3。INDEX(数据区域,数据位置):表示用第二个参数给出的位置在第一个参数中查找对应的值。上述公式的意思就是利用INDEX函数返回数据源G列(图片列)中对应行号(由MATCH函数获取)位置的图片。

    (5)复制数据源表任意一张照片,粘贴到“查询”表的D3单元格。单击该照片,在编辑栏中输入公式:=照片,点击Enter。这样当B3单元格输入姓名后点击确定,对应的照片和其他信息就会一起动态更新了。注意:使用这种方法时,当姓名为空的时候或者姓名错误的时候,仍然会显示上一次操作之后的照片。 Ok,整个查询系统就建立好了。简单回顾一下:利用PS的动作批处理实现图像不变形下统一大小;利用表格标签table代码实现图像批量插入;利用INDEX函数定义“照片”实现照片的动态查询。其他信息的动态查询则是利用OFFSET函数实现的。

    假如你学习到了这个新技能不妨转发推荐给你的小伙伴。并动动小指头收藏,以免下次走丢。

excel查询系统

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP