首页 >>  正文

excel+vlookup怎么用

来源:baiyundou.net   日期:2024-08-23

关于数据处理,我们都知道可以使用EXCEL,但处理大量数据时使用EXCEL会变得特别卡,并且分享处理后的数据也十分困难,这迫使我们寻找其他替代软件。今天我们将探讨报表工具中使用函数的基本操作。为了方便理解,本文将使用VLOOKUP函数,在国内的两款报表工具——Finereport和Spreadsheet版本中分别进行示例,进行比较学习,介绍这两款工具如何实现该函数计算。\n


介绍报表工具如何使用VLOOKUP函数之前,我们先浅谈一下该函数的使用场景。比如当您的企业有几千名员工时,需要筛选某个或某些人的地址信息时,如何根据名称数据自动匹配到所有员工信息结果表中?这时就需要使用VLOOKUP函数。它可以按名称作为条件查找数据,尤其在招聘面试中,会要求会使用VLOOKUP函数,因为它是最常用、最容易上手的函数,可以大大提高工作效率。当别人仍在磨磨唧唧手动复制粘贴一天才能完成的事情时,你用VLOOKUP函数只需一个小时就能完成。这也是人与人之间差别的一种体现。\n


既然如此重要,不学习就可惜了。VLOOKUP函数有4个参数,分别是VLOOKUP(要查找的内容,在哪里查找,要查找的列,是否精确匹配)。下面我们将通过一个案例来理解这4个参数的意义,并学会如何使用该函数解决多表关联查找问题。通俗总结该函数的使用方法就是如下图:



Spreadsheet是真正的Excel设计器,对于Excel的所有函数都是完全兼容的,可以延续使用。而Finereport的函数则是自主研发的。对于如何实现类似于VLOOKUP的功能,小编也进行了一番思考和研究。最终结果是,使用Finereport自主研发的函数未能实现VLOOKUP的效果,而使用Spreadsheet则可以轻松实现,因为Spreadsheet完全延续了Excel的公式,实现相对简单。\n


本次示例的应用场景:企业中有多个员工,包括姓名、性别、年龄、地址和所在城市等信息。最近一些出差的员工获得了最佳员工奖,公司想要寄送礼物到他们家中,因此需要通过查询他们的名字,找到他们的地址,以便邮寄礼物。\n


为了演示效果,本次选取了部分示例数据。如图所示,左边是所有员工信息,右边的橙色表头则是需要查找员工地址的人员。通过使用这两款工具,发现Spreadsheet可以轻松实现,而Finereport则缺乏VLOOKUP的函数能力。



虽然在我的研究里发现finereport缺乏VLOOKUP的函数能力。但还是进行了一些方案的思考,如果有更好的实现思路大家可以在再探讨下)。finereport的函数不同于EXCEL中的函数,如果想要在帆软中实现VLOOKUP函数时,查阅了过资料帆软官方给出过利用GREPARRAY这个函数来替代实现的办法。但翻查了他官网的文档介绍,GREPARRAY并不适用,原因如下:

GREPARRAY(array,fn):通过 fn 条件过滤 array 数组,返回过滤后的新数组。

示例:GREPARRAY([3,4,2,3,6,8,7], item != 3) 返回 [4,2,6,8,7]


由于这个函数GREPARRAY的过滤条件是不等于,vlookup是查找等于该值的匹配数据。所以放弃使用该函数了。


所以又去按照finereport提供的所有函数分类查看了一遍,找到indexofarray 和index这两个函数或许能替代实现。原因如下:


因为EXCEL中可以使用index和match函数同时使用来替代vlookup的方法。而finereport中的indexofarray 和index分别对应于EXCEL中对应的这两个函数。因此,是否可以使用这两个函数在帆软中来代替vlookup的功能。


组合的函数的写法为:INDEXOFARRAY(目标匹配数据对应列,INDEX(目标值,查找目标所在列))


于是乎就开始取数,为报表做准备,他家是纯sql取数的方式


然后在finereport报表设计器开始做这个示例:基于上一步做好的数据集,将字段拖到对应的区域,形成员工信息总表,然后在右侧的“员工地址查询”表格里,写组合函数INDEXOFARRAY(E3,INDEX(G7,B3))获取员工地址信息。



组合函数由INDEXOFARRAY、INDEX组成,首先来看INDEX函数

INDEX(key,val1,val2,...)

返回 key 在 val1,val2,... 所组成的序列中的位置,不存在于序列中则返回参数的个数。示例:=INDEX(2,2) 返回 1 ;INDEX(2,1,2) 返回 2

INDEXOFARRAY(array, index)

返回数组 array 的第 index 个元素,=indexofarray(["a","b","c","d"],3) 返回c

那先用INDEX获取到目标的行数,再将此结果嵌套在INDEXOFARRAY的index函数就可以达到效果了,因此在目标单元格写的组合函数为:

INDEXOFARRAY(E3,INDEX(G7,B3)) ,其中E3为邮箱地址字段(扩展后就是所有员工的地址信息);INDEX(G7,B3) 总体返回的数据是目标人员所在信息的行数,就是第一个人(这个人名称所在单元格为G7),从总体的B3单元格里面找其所在的行数。但最终结果却不尽人意,所有目标姓名范湖的地址结果都是““罗马花园 890 号”,很显然这是错误的。后面换了好多种方式尝试还是未能实现,最后不得不放弃来分析其原因,原因如下:


用C4单元格获取姓名的所有数据,返回的所有人名称都放在同一个单元格里,那么对于index函数而言,INDEX(G7,B3) 这里就是两个元素,无论第一个参数是什么,都找不到与其匹配的名称,因此就会返回改函数的元素总和2,导致INDEXOFARRAY(E3,INDEX(G7,B3)) 最后这个结果,无论匹配的目标名称是谁,返回的地址都是:“罗马花园 890 号“


反正我用finereport的函数也做不出这种场景,有没有大佬有思路来一起探讨一下呢?私聊或在评论区留言都可以哦~\n


唉,折腾了半天,不如换个报表工具试试?我就用国内成熟的Spreadsheet来做,听说它的报表设计器跟Excel差不多呢,看看能不能搞定这个难题咯。\n


Spreadsheet相当好用,只要原表数据质量好的话,直接基于原表做报表就可以省去数据准备这个环节啦。打开报表设计器,跳到smartbi页签(前提是你装了Spreadsheet报表设计器,装起来也很方便,只要4m,1分钟搞定)。然后在数据集面板找到存储员工信息的表,把字段拖到对应的区域。



直接在“员工地址查询”的地址这一列输入vlookup函数,=VLOOKUP(I7,C:G,4,FALSE),底下的单元格直接拖下去沿用即可。


只需要简单输入vlookup函数,不需要组合也不用调整,地址信息能准确无误的显示出来。果然,真Excel设计器简直就是站在巨人(Excel)的肩膀上,对于熟悉Excel公式函数的友友再友好不过了。


总的来说,对于熟悉Excel的用户来说,像这样从大量数据中准确匹配并查找需要的数据信息,可以轻松地通过使用VLOOKUP函数来实现。而Spreadsheet则是直接构建在Excel(或WPS表格)上的报表设计器,其操作方式与Excel完全相同,包括完美支持Vlookup等计算函数以及兼容多年的Excel函数积累,无需再费力学习。至于Finereport,它通过仿效Excel的使用习惯以及类Excel的设计器来实现函数能力,该软件自定义的函数具有学习成本和丰富度上的劣势。

","gnid":"9d2db467cc0245f53","img_data":[{"flag":2,"img":[{"desc":"","height":"512","title":"","url":"https://p0.ssl.img.360kuai.com/t016fdf9c354551cdd9.jpg","width":"928"},{"desc":"","height":"920","title":"","url":"https://p0.ssl.img.360kuai.com/t018a188e79215efe68.jpg","width":"3840"},{"desc":"","height":"613","title":"","url":"https://p0.ssl.img.360kuai.com/t01aec57361f1a4f54e.jpg","width":"1044"},{"desc":"","height":"1023","title":"","url":"https://p0.ssl.img.360kuai.com/t019a239e78a7948718.jpg","width":"1941"},{"desc":"","height":"773","title":"","url":"https://p0.ssl.img.360kuai.com/t01c266f3592ac976ca.jpg","width":"1460"},{"desc":"","height":"1020","title":"","url":"https://p0.ssl.img.360kuai.com/t01b460e9b53bf768f6.jpg","width":"1915"},{"desc":"","height":"555","title":"","url":"https://p0.ssl.img.360kuai.com/t0198a680369d42c4fd.jpg","width":"1289"},{"desc":"","height":"734","title":"","url":"https://p0.ssl.img.360kuai.com/t01fc4b87297f55b8b7.jpg","width":"1384"}]}],"original":"1","pat":"art_src_0,fts0,sts0","powerby":"hbase","pub_time":1688021232000,"pure":"","rawurl":"http://zm.news.so.com/10595d4a305fc5d4a8782aa525dfaa15","redirect":0,"rptid":"ee7e6df40f3e338b","rss_ext":[],"s":"t","src":"思迈特Smartbi","tag":[{"clk":"ktechnology_1:excel","k":"excel","u":""}],"title":"如何在报表工具使用Excel的经典VLOOKUP函数?

滑促舒4440怎么用VLOOKUP来匹配excel表里面的数据 -
逯斧幸13421667678 ______ Vlookup函数的用法=Vlookup(查找的数据,查找的区域,返回值在查找区域的列数,匹配方式).其中,查找区域第一列必须是查找数据所在的列,匹配方式有两种0或者false为精确匹配,1或者True为近似匹配. 软件版本:Office2007 用...

滑促舒4440excel 两个表合并问题 -
逯斧幸13421667678 ______ 在表1里的C1单元格输入:=VLOOKU(A1,表2!$A$1:&B$2000,2,0) 下拉复制到需要的行就行了.2000是指有2000行,可以根据需要修改. 如果不想显示非法没有找到的非法字符,就输入:=IF(ISERROR(VLOOKU(A1,表2!$A$1:&B$2000,2,0)),"",VLOOKU(A1,表2!$A$1:&B$2000,2,0))

滑促舒4440Excel VLOOKUP公式怎么用?
逯斧幸13421667678 ______ VLOOKUP在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值.语法VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)Lookup_value 为需要在数组第一列中查找的数值.Lookup_value 可...

滑促舒4440关于execl里的VLOOKUP函数,怎么让第三个条件自动序列往后拉.比如C2=VLOOKU -
逯斧幸13421667678 ______ C2=VLOOKUP($B2,Sheet1!$B:$T,column(c1),0)

滑促舒4440怎么用在excel中用vlookup函数检索两个表格中同时满足两个条件的数据? -
逯斧幸13421667678 ______ vlookup 只能查找一个区域内满足条件的数据看你的数据是数值,还是文本了.数值可以使用 =sum((条件=条件)*(条件=条件)*(累计列))文本可以用: =offset(定位点,偏移行,偏移列) 与其他组合函数 match ,find

滑促舒4440Excel VLOOKUP函数怎么实现多条件查找 -
逯斧幸13421667678 ______ Vlookup函数实现多条件查找,得将多个条件合并,并利用数组公式建立起一个同样是多条件合并后的数组作为查询区域进行查询 软件版本:Office2013 方法如下:1.查找G列和H列分别与A列和B列相同的值对应的C列的值:2.输入公式如下:=VLOOKUP(G1&H1,IF({1,0},$A$1:$A$8&$B$1:$B$8,$C$1:$C$8),2,0) 同时按下Ctrl+Shift+Enter三键结束公式,完成数组公式3.下拉填充得到结果:

滑促舒4440excel 条件格式 vlookup -
逯斧幸13421667678 ______ 方法一: 1、选中A1→格式→条件格式→公式 =VLOOKUP(A1,$D$1:$E$3,2,FALSE)=2→设置好格式后确定. 2、用格式刷,将格式复制到B1和C1等. 注意:a、上述公式中A1不能用绝对地址引用,$D$1:$E$3必须用绝对地址引用! b、只能先设置一个单元格,然后用格式刷,不能一起选中设置. 方法二: 选中A1:C1→格式→条件格式→单元格数值 等于 =LOOKUP(2,$E$1:$E$3,$D$1:$D$3)→设置好格式后确定.

滑促舒4440用Excel的VLOOKUP函数怎么做这题?(求最低工资人姓名). -
逯斧幸13421667678 ______ b10输入=max(a1:a9)b11输入=min(a1:a9)b12输入=vlookup(b11,a1:b9,2,0)说明若最低工资有两个及以上,只显示第一个出现的姓名.

滑促舒4440excel中vlookup函数的使用,为什么显示#N/A? -
逯斧幸13421667678 ______ 二种可能.一种是你公式中引入区域没有使用$,比如你写的是A1:B100,而不是$A$1:$B$100 二种是你查找到内容可能存在空格等不可见字符 当然,也有可能你根本公式写的就是错的.

滑促舒4440Excel用vlookup怎么查找出最近的数据 -
逯斧幸13421667678 ______ 度友,这个问题用数组公式就可以解决,如图, 公式为:=LARGE(IF((B2:B5=F2)*(D2:D5=MAX(D2:D5)),C2:C5,""),1), 数组公式,输入后需要按下 ctrl shift enter 三个键,有需要可以继续交流!

(编辑:自媒体)
关于我们 | 客户服务 | 服务条款 | 联系我们 | 免责声明 | 网站地图 @ 白云都 2024