当1=南,-1=北时,用VLOOKUP函数时,-1不显示,咋解决

查看: 9157|回复: 17
注册时间金币984 积分3093威望8222
系统分析师
该用户从未签到金币984 威望8222 帖子精华3
函数一直是ET里面一个比较常用和强大的函数。但是事物总是很难完美,Vlookup函数有一个缺陷就是:
当有多个匹配值时,只返回第一个。
为此,我利用开发了一个自定义函数VlookupEx来解决这个问题。它能返回多个匹配值中的任意一个。
用户A在有多个用户组,利用VLookup函数查找A的用户组时,我们只能得到第一个匹配值:技术团。
21:47 上传
现在利用VlookupEx函数,我们能得到用户A的四个用户组中的任意一个。
21:47 上传
工作表函数VLookup的增强版本VLookupEx函数有四个参数
参数意义:
findStr& &查找值
rng& && &&&查找区域
colNum&&查找区域中第几列数据,默认2
IDNum& &第几个匹配值,默认1
参数越界说明:
colNum小于1或者大于查找区域的实际列数时,返回空值
IDNum小于1或者大于实际匹配个数时,返回空值
实现代码:Function VLookupEx(findStr As String, rng As Range, Optional colNum As Integer = 2, Optional IDNum As Integer = 1) As String
Application.ScreenUpdating = False '关闭屏幕更新,加快速度
On Error GoTo Err
Dim i As Long, cell As Range, Str As String
If colNum & 1 Or colNum & rng.Columns.Count Then VLookupEx = &&: Exit Function
If IDNum & 1 Then VLookupEx = &&: Exit Function
With rng.Columns(1)&&'引用查找区域中第1列数据
& & '如果查找区域中第1列数据第一个单元格等于查找的对象,那么将该单元格赋予变量cell。否则使用Find方法查找,将找到的单元格赋予变量cell
& & If .Cells(1) = findStr Then
& && &&&Set cell = .Cells(1)
& & Else
& && &&&Set cell = .Find(findStr, LookIn:=etValues, Lookat:=etWhole)
& & End If
& & If Not cell Is Nothing Then&&'如果找到匹配值
& && &&&Str = cell.Address&&'记录第一个匹配值的单元格地址
& && &&&Do& && && && &&&'通过循环继续查找
& && && && &i = i + 1
& && && &&&'如果变量等于最后一个参数,那么将查找到的单元格右边的值赋予Look函数
& && && && &If i = IDNum Then VLookupEx = cell.Offset(0, colNum - 1): Exit Function
& && && && &Set cell = .Find(findStr, After:=cell, Lookat:=etWhole) '查找下一个
& && && && &If cell.Address = Str Then VLookupEx = &&: Exit Function '如果又找到的是第一个,说明无匹配值,退出
& && &&&Loop Until cell Is Nothing
& & Else
& && &&&VLookupEx = &&&&'如果找不到则直接返回空白
& & End If
End With
Err:
Application.ScreenUpdating = True&&'恢复屏幕更新
End Function复制代码附件为测试函数时所用的ET文档:
(28.5 KB, 下载次数: 63)
21:55 上传
点击文件名下载附件
下载积分: 威望 -2
太给力了,真棒!
总评分:&威望 + 65&
热爱分享和学习。希望WPS论坛越办越好,WPS软件越做越好。也希望能在这里交到更多志同道合的朋友。我的邮箱:
我在WPS论坛上的教程帖子合集:
注册时间金币984 积分3093威望8222
系统分析师
该用户从未签到金币984 威望8222 帖子精华3
还是自己先顶,事物总是很难完美,我开发的这个函数也有一个缺点:就是不能像VLookup函数一样指定是模糊匹配还是精确匹配。
VLookupEx函数只能精确匹配。
内部实现原理用到了VBA中的的Find函数(区别于工作表中的Find函数),我会继续深挖这个Find,看看能不能做到模糊匹配。
也请高手们指点!
热爱分享和学习。希望WPS论坛越办越好,WPS软件越做越好。也希望能在这里交到更多志同道合的朋友。我的邮箱:
我在WPS论坛上的教程帖子合集:
注册时间金币634 积分6715威望13773
签到天数: 126 天[LV.7]常住居民III金币634 威望13773 帖子精华2
本帖最后由 轩少 于
22:07 编辑
一个屁股坐下,嘻嘻,慢慢学习{:soso_e113:}
点击了解最新动态:【轩少】__实用教程索引(更新)
注册时间金币3442 积分2189威望5612
LV.8, 积分 2189, 距离下一级还需 111 积分
该用户从未签到金币3442 威望5612 帖子精华0
嗯,确实不错,真的很好哦,学习了,谢谢 的分享哦~~
注册时间金币33 积分266威望520
LV.4, 积分 266, 距离下一级还需 134 积分
该用户从未签到金币33 威望520 帖子精华0
函数还是难以攻克啊{:1_11:}
/catalog.asp
注册时间金币257 积分5047威望9809
该用户从未签到金币257 威望9809 帖子精华0
注册时间金币446 积分1968威望4606
该用户从未签到金币446 威望4606 帖子精华0
很好~~~{:1_2:}{:1_2:}{:1_2:}{:1_2:}
敬请关注我的新浪微博,在这里有问题请私信,一定帮助,有问必答!!!
注册时间金币5316 积分5338威望11825
签到天数: 5 天[LV.2]偶尔看看I金币5316 威望11825 帖子精华1
谢谢天远,这个升级版的VLOOKUP太实用了!{:soso_e179:}
注册时间金币2022 积分11399威望25336
签到天数: 1050 天[LV.10]以坛为家III金币2022 威望25336 帖子精华0
注册时间金币0 积分31威望50
LV.1, 积分 31, 距离下一级还需 19 积分
该用户从未签到金币0 威望50 帖子精华0
天远太厉害了
加入WPS粉团QQ群可领取!
技术分享团
申请前请查看 /thread--1.html
解答支持团
申请前请查看 /thread--1.html
测试体验团
申请前请查看 /thread--1.html
重阳节勋章
重阳节勋章
技巧教程分享达人
技巧教程分享达到10篇以上
最佳教程奖
发布教程帖子达到精华帖大于等于2以上可领取!
优秀会员奖
论坛金币满500且在线时间达到100小时的S党可领取!
乐于助人奖
在问答求助区积极帮助S党解答问题
活跃会员奖
发帖数达到2000以上且在线时间超过200个小时可领取!
WPS论坛版主可申请!
勤奋版主奖
勤奋版主奖,版主发帖数大于2000且注册天数满足180天可领取
测试体验官
通过评测WPS,评奖获得
优秀模板奖
分享的模板,达到2个或2个以上的精华贴可领取!
荣誉版主奖
荣誉版主奖
Powered byvlookup函数的使用方法
vlookup函数的使用方法  &Lookup&的汉语意思是&查找&,在Excel中与&Lookup&相关的函数有三个:VLOOKUP、HLOOKUO和LOOKUP。下面介绍VLOOKUP函数的用法。Vlookup函数的作用为在表格的首列查找指定的数据,并返回指定的数据所在行中的指定列处的数据。其标准格式为:  VLOOKUP(lookup_value,table_array,col_index_num , range_lookup)  步骤1、VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)可以写为:  VLOOKUP(需在第一列中查找的数据,需要在其中查找数据的数据表,需返回某列值的列号,逻辑值True或False)  步骤2、Lookup_value为&需在数据表第一列中查找的数据&,可以是数值、文本字符串或引用。  步骤3、Table_array 为&需要在其中查找数据的数据表&,可以使用单元格区域或区域名称等。  ⑴如果 range_lookup 为 TRUE或省略,则 table_array 的第一列中的数值必须按升序排列,否则,函数 VLOOKUP 不能返回正确的数值。  如果 range_lookup 为 FALSE,table_array 不必进行排序。  ⑵Table_array 的第一列中的数值可以为文本、数字或逻辑值。若为文本时,不区分文本的大小写。  步骤4、Col_index_num 为table_array 中待返回的匹配值的列序号。  Col_index_num 为 1 时,返回 table_array 第一列中的数值;  Col_index_num 为 2 时,返回 table_array 第二列中的数值,以此类推。  如果Col_index_num 小于 1,函数 VLOOKUP 返回错误值 #VALUE!;  如果Col_index_num 大于 table_array 的列数,函数 VLOOKUP 返回错误值 #REF!。  步骤5、Range_lookup 为一逻辑值,指明函数 VLOOKUP 返回时是精确匹配还是近似匹配。如果为 TRUE 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于lookup_value 的最大数值;如果 range_value 为 FALSE,函数 VLOOKUP 将返回精确匹配值。如果找不到,则返回错误值 #N/A。应用实例  1、如下图,已知表sheet1中的数据如下,如何在数据表二 sheet2 中如下引用:当学号随机出现的时候,如何在B列显示其对应的物理成绩?  2、根据问题的需求,这个公式应该是:  =vlookup(a2,sheet1!$a$2:$f$100,6,true)  3、结果如下图:注意点:  1、如果生成的结果显示为&#N/A&,说明没有找到匹配数值。  2、此方法在&RRU挂高&这一列生成的值为通过公式计算得出的结果,无法直接引用。如果要引用可以复制这一列的数值粘贴到后面一列。不会操作的,可以参考下面步骤。  步骤:复制&RRU挂高&列&新的粘贴位置点鼠标右键&选择&选择性粘贴&&选中&数值&&点&确定&。
最新更新栏目
您可能喜欢
大家都在搜EXCEL中如何使用VLOOKUP函数查找引用其他工作表数据和自动填充数据
我的图书馆
EXCEL中如何使用VLOOKUP函数查找引用其他工作表数据和自动填充数据
如何在EXCEL中对比两张表(不是对比两列)?
两张都是人员在职信息表,A表长,B表短,A表中的记录比较多,有的人A表中有而B表中没有,有的人AB两表都有但是在A表中的行数比B表中多(举例说明,就是这个人在A表中可能有三行,分别是7.8.9三月的在职信息,同样的人在B表中可能只有7月一个月的在职信息),如何把A表中有而B表中没有的行挑选出来单列成一张表?
假设姓名在A列,在职月份在B列,两个表的第一行都是表头.
在B表插入一个新A列,这样B表的姓名就在B列,月份在C列,在A2单元格输入 =B2&C2
在A表表头的最后一个空白列(假设为H1)写上"与B表的关系"
在H2输入公式 =IF(ISERROR(VLOOKUP(A2&B2,Sheet2!A:A,1,FALSE)),"B表没有此记录","B表有此记录")
如何在EXCEL中筛选出相同的名字?
我现在有2张表:一张有1000个用户,另一张有800个用户;如何快速的找出两张表中相同的名字啊。
方法一、sheet!b1輸入 =IF(COUNTIF(Sheet2!$A$1:$A$1000,A1)&=1,"重複","")
方法二、在1000个用户的sheet1!B1輸入(假设你的记录在A1而且是竖列扩展)=if(isna(vlookup(a1, sheet2$a$1:$a$800,2,0)), " ", "重复“)
两列数据查找相同值对应的位置
=MATCH(B1,A:A,0)
EXCEL中如何使用VLOOKUP函数查找引用其他工作表数据和自动填充数据
  VLOOKUP函数,在表格或数值数组(数据表)的首列查找指定的数值(查找值),并由此返回表格或数组当前行中指定列(列序号)处的数值。
  VLOOKUP(查找值,数据表,列序号,[匹配条件])
  例如在SHEET2表中有全部100个学生的资料,B列为学号、C列为姓名、D列为班级,现在在SHEET1表的A列有学号,我们需要使用该函数,将SHEET2表中对应学号的姓名引用到SHEET1表的B列。我们只需在SHEET1的B2输入以下公式 =VLOOKUP(A2,SHEET2!$B:$D,2,FALSE) (或者=VLOOKUP(A2,SHEET2!$B$2:$D$101,2,0),就得到了A2单元格学号对应的学生姓名。同理, 在SHEET1表的C2输入公式 =VLOOKUP(A2,SHEET2!$B:$D,3,FALSE),即可得到对应的班级.
  VLOOKUP(A2,SHEET2!$B:$D,2,FALSE) 四个参数解释
  1、“A2”是查找值,就是要查找A2单元格的某个学号。
  2、“SHEET2!$B:$D”是数据表,就是要在其中查找学号的表格,这个区域的首列必须是学号。
  3、“2”表示我们最后的结果是要“SHEET2!$B:$D”中的第“2”列数据,从B列开始算第2列。
  4、“FALSE”(可以用0代替FALSE)是匹配条件,表示要精确查找,如果是TRUE表示模糊查找。
&  如果我们需要在输入A列学号以后,B列与C列自动填充对应的姓名与班级,那么只需要在B列,C列预先输入公式就可以了。为了避免在A列学号输入之前,B列与C列出现"#N/A"这样错误值,可以增加一个IF函数判断A列是否为空,非空则进行VLOOKUP查找.这样B2与C2的公式分别调整为
  B2=IF(A2="","",VLOOKUP(A2,SHEET2!$B:$D,2,0))
  C2=IF(A2="","",VLOOKUP(A2,SHEET2!$B:$D,3,0))
Excel课表生成中应用的两种方法
课表是学校最基本的教学管理依据,课表形成的传统方法是先安排好原始数据,再设计好表格的固定格式,一项项往表里填内容。上百张课表的形成都要人工录入或人工粘贴复制,既繁琐又容易出差错,而且不利于检索查询。笔者介绍一种方法,在原始数据录入后利用“数据透视表”,可以实现课表生成的自动化。   一、功能   1. 一张“数据透视表”仅靠鼠标移动字段位置,即可变换出各种类型的课表,例如:班级课表。每班一张一周课程表。可选框内选择不同的学院和班号,即可得到不同班的课表。按教师索引。即每位教师一周所有的信息。按时间索引,即每天每节课有哪些教师来、上什么课。按课程索引。课程带头人可能只关心和自己有关的内容。按学院索引。可能只需要两三项数据,了解概况。按本专科索引。按楼层索引。专家组听课时顺序走过每个教室,需要随时随地查看信息。按教室或机房索引。安排房间时要随时查看。   2. 字段数量的选择是任意的,即表格内容可多可少,随时调整。   3. 任何类型的表都能够实现连续打印或分页打印。如班级课表可以连续显示,也可快速、自动生成每班一张;某部门所有教师的课表可以汇总在一张表上,也可每个老师一页纸,分别打印。   4. 遇到调课,只要更改原始表,再重新透视一次,可在瞬间完成,就意味着所有表的数据都已更新。而传统的方法必须分别去改班级表、教室表、机房表、教师表……稍有疏忽就可能遗漏。   5. 所有的表都不用设计格式,能够自动形成表格,自动调整表格大小,自动合并相同数据单元格。   二、建立数据库   规范数据库的建立是满足查询、检索、统计功能的基本要求。   1. 基本字段:班级、星期、节次、课程、地点、教师。   2. 可选字段:学院、班级人数、学生类别、金工实习周次、教师单位、地点属性、备注字段名横向排列形成了“表头”,每个字段名下是纵向排列的数据。   3. 库中的数据必须规范。如“地点”中不能出现除楼号、房间号以外的任何文字(包括空格);“课程”中必须是规范的课程名,不允许有“单、双”等字样。建议上机课增加一个字段“上机”,而不是在课程名中增添“上机”说明,后者不利于课程检索。   4. 库中的每条数据清单的每个格只要存在数据就必须填满。不允许因为与上一行数据相同就省略了,更不能合并单元格。   5. 增加的整条记录在库中的位置可以任意。如规律课表的课程只有8节,某班增加“9~10节”或双休日上课,新增记录则可插在该班其他课的末尾,也可附在库的最底端。无论在什么位置,都不影响透视后的效果。   三、做数据透视表   在选择透视范围时要包含全部原始数据库,如果录制“宏”,最好比原始表多增加若干行,以备增加记录用。但字段的数量可根据需要选择。把选中的字段分别放置在表的“行字段”中,在每个字段名上双击,弹出“字段设置”框,选择“无”,即形成了显示美观的透视表。   1. 用鼠标拖动各字段,重新安排左右顺序、上下位置(指行字段与页字段之间的转换),或在可选框内选中所需,即可形成各种各样的新表。   2. 常用的班级课表可排好纸张版面、页眉页脚,专门供原始打印。“班级”字段最好放在“页字段”中,以便于每班打印1张。在“班级”字段的可选框内选择各班,即可显示出所有的班级课表。每班课表的大小是自动调整的,如 “节次”中的数据项只有8节,遇到增添“9~10节”课程的情况,表格会在7~8节后自动增加1行,把9~10节的内容填进去,下一个班则可自动恢复正常。既可以设置为无课显示空格,也可以设成无课不显示,即有哪节显示哪节。 Excel 2003查找重复姓名方法两则
每次统计年级学生基本情况时都会因为学生姓名相同而导致张冠李戴的错误。以往为避免类似错误都要将Excel表格按姓名进行排序,然后依次检查是否重名,非常麻烦还容易出问题。如果您也遇到过类似情况,那么在Excel中,我们可以采用以下的方法来区分那些有重复的姓名,以避免出错。
一、利用条件格式进行彩色填充
选中图1所示表格中数据所在单元格区域A2:I11,点击功能区“开始”选项卡“样式”功能组中的“条件格式”按钮,在弹出的菜单中点击“新建规则”命令,打开“新建格式规则”对话框,在“选择规则类型”列表中点击“使用公式确定要设置格式的单元格”,然后在“为符合此公式的值设置格式”下方的输入框中输入如下公式“=COUNTIF($B$2:$B$11,$B2)&=2”,然后点击下方的“格式”按钮,在打开的“设置单元格格式”对话框的“填充”选项卡中指定一种填充颜色,确定后如图2所示。
确定后关闭此对话框,则可以将重名同学所在行的全部数据都填充此颜色,如图3所示。有了此醒目的标志,那么我们在以后的操作中就不太容易出错了。
查找数据公式两个(基本查找函数为VLOOKUP,MATCH)
(1)、根据符合行列两个条件查找对应结果
=VLOOKUP(H1,A1:E7,MATCH(I1,A1:E1,0),FALSE)
(2)、根据符合两列数据查找对应结果(为数组公式)
=INDEX(C1:C7,MATCH(H1&I1,A1:A7&B1:B7,0)
使用 INDEX 函数和 MATCH 函数查找数据
假设您在单元格 A1:C5 中创建了以下信息表,且此表包含单元格 C1:C5 中的年龄 (Age) 信息:
假设您希望根据某人的姓名 (Name) 查找此人的年龄 (Age)。为此,请按如下公式示例,配合使用 INDEX 函数和 MATCH 函数:
=INDEX($A$1:$C$5, MATCH("Mary",$A$1:$A$5,),3)
此公式示例使用单元格 A1:C5 作为信息表,并在第三列中查找 Mary 的年龄 (Age)。公式返回 22
一些Excel公式的实用运用例子
&=COUNTIF(D2:D10,"&400")统计D2:D10的值大于400的个数=COUNTIF(B2:B10,"东北部")统计B2:B10的内容为"东北部"的个数
=TODAY()显示当前系统日期=NOW()显示当前系统日期和具体时间=YEAR(B2)获得B2单元格内(当前系统日期和具体时间)的年=MONTH(B2)获得B2单元格内(当前系统日期和具体时间)的月=DAY(B2)获得B2单元格内(当前系统日期和具体时间)的日=HOUR(B2)获得B2单元格内(当前系统日期和具体时间)的时
=RANK(D2,$D$2:$D$10)取D2的值在D2-D10范围内的排名是多少=MATCH(99,C2:C10,0)统计出C2-C10范围内值为99的个数
=EXACT(A4,B4)比较A4,B4两个单元格内的字符串内容是否相等,返回布尔值TRUE/FALSE
=IF(C2&=60,IF(C2&=90,"优秀","及格"),"不及格")如果C2&=60 (如果C2&=90则显示"优秀"否则显示"及格") 否则显示"不及格"
=IF(AND(B2&=60,C2&=60),IF(OR(B2&=90,C2&=90),"优秀","及格"),"不及格")与上例相似,只不过是2个单元格都要进行条件判断
=VLOOKUP(B3,D2:G14,4,0)VLOOKUP(需在第一列中查找的数值,需要在其中查找数据的数据表,需返回某列值的列号,逻辑值True或False)经常用Excel建立一些表格,有时我们需要给一些表格建立很多个副表,那么如何使这些复制表格中的数据随原表的修改而修改呢?VLOOKUP函数可以帮我们做到这一点=HLOOKUP(B7,B1:F3,2,0)HLOOKUP与VLOOKUPHLOOKUP用于在表格或数值数组的首行查找指定的数值,并由此返回表格或数组当前列中指定行处的数值。VLOOKUP用于在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。当比较值位于数据表的首行,并且要查找下面给定行中的数据时,请使用函数 HLOOKUP。当比较值位于要进行数据查找的左边一列时,请使用函数 VLOOKUP。语法形式为:HLOOKUP(lookup_value,table_array,row_index_num,range_lookup)VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)其中,Lookup_value表示要查找的值,它必须位于自定义查找区域的最左列。Lookup_value 可以为数值、引用或文字串。Table_array查找的区域,用于查找数据的区域,上面的查找值必须位于这个区域的最左列。可以使用对区域或区域名称的引用。Row_index_num为 table_array 中待返回的匹配值的行序号。Row_index_num 为 1 时,返回 table_array 第一行的数值,row_index_num 为 2 时,返回 table_array 第二行的数值,以此类推。Col_index_num为相对列号。最左列为1,其右边一列为2,依此类推.Range_lookup为一逻辑值,指明函数 HLOOKUP 查找时是精确匹配,还是近似匹配。
检查单元格 A2 是否为空白 (FALSE)&=ISBLANK(A2)检查 #REF! 是否为错误值 (TRUE)&&=ISERROR(A4)检查 #REF! 是否为错误值 #N/A (FALSE)&=ISNA(A4)检查 #N/A 是否为错误值 #N/A (TRUE)&=ISNA(A6)检查 #N/A 是否为错误值 (FALSE)&&=ISERR(A6)检查 10.72 是否为数值 (TRUE)&&=ISNUMBER(A5)检查 COUNTRY 是否为文本 (TRUE)&&=ISTEXT(A3)检查 5 是否为偶数 &&&ISEVEN(5)&&FALSE检查 -1 是否为奇数 &&&ISODD(-1)&&TRUE
&2.如何去掉execl单元格中文字前面的数字? 自己写个函数放在模块里,然后在单元格调用函数& =delnum(A1)
Public Function delnum(zifu As String) As StringDim l As Integer, m As Integer, n As String, a As Stringl = Len(zifu)For m = 1 To ln = Mid(zifu, m, 1)If Asc(n) & 48 Or Asc(n) & 57 Thena = a & nEnd IfNext mdelnum = aEnd Function
3.excel中,列很多,行很少,怎么能让打印在一页上? 使用公式先进行一下转换就是了。
以下为示例:源数据为数据区域A1:O2,即一个2行15列的数据,如下:A& B& C& D& E& F& G& H& I& J&& K&& L&& M&& N&& O1& 2& 3& 4& 5& 6& 7& 8& 9& 10& 11& 12& 13&& 14&& 15
先使用公式转变为6行5列的数据,公式如下:[假设我们在A6单元格开始输入公式,转变后的数据区域为A6:E11]在单元格A6输入以下公式:=INDIRECT(ADDRESS(IF(MOD(ROW(),2)=0,1,2),IF(MOD(COLUMN(),5)=0,5,MOD(COLUMN(),5))+INT((ROW()-6)/2)*5))并将该公式复制到数据区域A6:E11,我们可以看到,现在数据已经进行了转换。
结果为:A&&& B&&& C&&& D&&& E1&&& 2&&& 3&&& 4&&& 5F&&& G&&& H&&& I&&& J6&&& 7&&& 8&&& 9&&& 10K&&& L&&& M&&& N&&&& O11&& 12&& 13&& 14&& 15
公式说明:1.由于假定从单元格A6开始,因此IF(MOD(ROW(),2)=0,1,2)的结果为若为偶数行则指向第一行,否则指向第二行。2.MOD(COLUMN(),5)由于示例中指定了为5列。3.INT((ROW()-6)/2)*5),示例中是从A6单元格开始的,因此减6行,5为列数。
附加:如果不是正好满列数,那么应该进行一次判断,如下:=If(Indirect(...)="","",Indirect(...))[Indirect(...)即上面示例中的公式]
&5.excel里A列为身份证号码,要求在B列得出其出身日期?
A列为个人的身份证号或企业代码,身份证包括2类:15位的身份证,18位身份证。15位(453)的身份证的生日为;18位&(150053)的身份证生日为。企业代码不满足15位或18位。
现在要求在B列得到A列身份证号人的出生日期;若是企业代码的不需要。=if(len(A1)=15,"19" & mid(A1,7,2) & "-" & mid(A1,9,2) & "-" & mid(A1,11,2),mid(A1,7,4) & "-" & mid(A1,11,2) & "-" & mid(A1,13,2))为15位时,应该没2000年后出生的吧所以,以上应该行得通,试试看当A列是企业代码时,公式有问题.如:A1=10,得到的是
公式上做了点修改.
=IF(OR(LEN(A1)={15,18}),IF(LEN(A1)=15,"19" & MID(A1,7,2) & "-" & MID(A1,9,2) & "-" & MID(A1,11,2),MID(A1,7,4) & "-" & MID(A1,11,2) & "-" & MID(A1,13,2)),"")
=IF(LEN(A1)=15,"19" & MID(A1,7,2) & "-" & MID(A1,9,2) & "-" & MID(A1,11,2),IF(LEN(A1)=18,MID(A1,7,4) & "-" & MID(A1,11,2) & "-" & MID(A1,13,2),A1))
当A列是企业代码时,返回原企业代码
TA的最新馆藏[转]&[转]&[转]&[转]&[转]&[转]&
喜欢该文的人也喜欢excel 函数公式中 “=VLOOKUP(A1,Sheet2!A:D,1,0)”各表示什么?_excel吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:148,603贴子:
excel 函数公式中 “=VLOOKUP(A1,Sheet2!A:D,1,0)”各表示什么?收藏
EXCEL帮助里复制来的
语法VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)Lookup_value&&&& 为需要在数组第一列中查找的数值。Lookup_value 可以为数值、引用或文本字符串。Table_array&&&& 为需要在其中查找数据的数据表。可以使用对区域或区域名称的引用,例如数据库或列表。如果 range_lookup 为 TRUE,则 table_array 的第一列中的数值必须按升序排列:…、-2、-1、0、1、2、…、-Z、FALSE、TRUE;否则,函数 VLOOKUP 不能返回正确的数值。如果 range_lookup 为 FALSE,table_array 不必进行排序。通过在“数据”菜单中的“排序”中选择“升序”,可将数值按升序排列。Table_array 的第一列中的数值可以为文本、数字或逻辑值。文本不区分大小写。Col_index_num&&&& 为 table_array 中待返回的匹配值的列序号。Col_index_num 为 1 时,返回 table_array 第一列中的数值;col_index_num 为 2,返回 table_array 第二列中的数值,以此类推。如果 col_index_num 小于 1,函数 VLOOKUP 返回错误值值 #VALUE!;如果 col_index_num 大于 table_array 的列数,函数 VLOOKUP 返回错误值 #REF!。Range_lookup&&&& 为一逻辑值,指明函数 VLOOKUP 返回时是精确匹配还是近似匹配。如果为 TRUE 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值;如果 range_value 为 FALSE,函数 VLOOKUP 将返回精确匹配值。如果找不到,则返回错误值 #N/A。说明如果函数 VLOOKUP 找不到 lookup_value,且 range_lookup 为 TRUE,则使用小于等于 lookup_value 的最大值。 如果 lookup_value 小于 table_array 第一列中的最小数值,函数 VLOOKUP 返回错误值 #N/A。 如果函数 VLOOKUP 找不到 lookup_value 且 range_lookup 为 FALSE,函数 VLOOKUP 返回错误值 #N/A。
登录百度帐号推荐应用

我要回帖

更多关于 获取当前时间的函数 的文章

 

随机推荐