Excel中,如果有两个单元格,向其中一个输入内容,另一个会自动显示出相对应的内容。
例如:有两张表,表1中A列和B列分别储存了科室代码和科室名称,表2则是人员资料,A列为员工号,B列为姓名,C列为科室代码,D列为科室名称。我如果在表2的C列的一个单元格中...
例如:有两张表,表1中A列和B列分别储存了科室代码和科室名称,表2则是人员资料,A列为员工号,B列为姓名,C列为科室代码,D列为科室名称。我如果在表2的C
列的一个单元格中输入一个科室代码,则它同一行的D列的单元格中会显示出相应的科室名称。
那位高手知道请告诉我,我要宏的完整代码,万分感谢!答案满意的话,会另外加分的。 展开
列的一个单元格中输入一个科室代码,则它同一行的D列的单元格中会显示出相应的科室名称。
那位高手知道请告诉我,我要宏的完整代码,万分感谢!答案满意的话,会另外加分的。 展开
5个回答
展开全部
一、个人觉得没必要用宏来完成。先给你公式(在D2单元格输入下面的公式):
=IF(C2="","",IF(ISERROR(VLOOKUP(C2,表1!A:B,2,0)),"错误!!",VLOOKUP(C2,表1!A:B,2,0)))
公式完成后复制D2单元格,沿D列从D3向下粘贴到合适的位置。
注意:一定要用你的表1所在的工作表标签(一般为Sheet1)替换公式中的两个表1
说明:
如果C列单元格为空,同行的D列单元格也为空,
如果在表1的A列找不到C列单元格的内容,同行的D列单元格返回“错误!!”,
否则返回与表1的A列同行的B列单元格的内容。
二、VBA代码法,把下面的代码放到VBA的表2中:
Private Sub Worksheet_Change(ByVal Target As Range)
i = Target.Row
'用表2输入科室代码的首行(行号-1)替换下面i>1中的1
If i > 1 And Target.Column = 3 Then
For j = 1 To Sheet1.UsedRange.Rows.Count
If Cells(i, 3) = "" Then
Cells(i, 4) = ""
Exit For
ElseIf Cells(i, 3) = Sheet1.Cells(j, 1) Then
Cells(i, 4) = Sheet1.Cells(j, 2)
Exit For
End If
Cells(i, 4) = "错误!!"
Next
End If
End Sub
=IF(C2="","",IF(ISERROR(VLOOKUP(C2,表1!A:B,2,0)),"错误!!",VLOOKUP(C2,表1!A:B,2,0)))
公式完成后复制D2单元格,沿D列从D3向下粘贴到合适的位置。
注意:一定要用你的表1所在的工作表标签(一般为Sheet1)替换公式中的两个表1
说明:
如果C列单元格为空,同行的D列单元格也为空,
如果在表1的A列找不到C列单元格的内容,同行的D列单元格返回“错误!!”,
否则返回与表1的A列同行的B列单元格的内容。
二、VBA代码法,把下面的代码放到VBA的表2中:
Private Sub Worksheet_Change(ByVal Target As Range)
i = Target.Row
'用表2输入科室代码的首行(行号-1)替换下面i>1中的1
If i > 1 And Target.Column = 3 Then
For j = 1 To Sheet1.UsedRange.Rows.Count
If Cells(i, 3) = "" Then
Cells(i, 4) = ""
Exit For
ElseIf Cells(i, 3) = Sheet1.Cells(j, 1) Then
Cells(i, 4) = Sheet1.Cells(j, 2)
Exit For
End If
Cells(i, 4) = "错误!!"
Next
End If
End Sub
展开全部
不用宏,函数轻松搞定:
在表2的D2单元格输入“=vlookup(c2,sheet1!a:b,2,0)”
注意不包含引号,然后向下填充或复制
其中sheet1是表1的名称,注意核对下
在表2的D2单元格输入“=vlookup(c2,sheet1!a:b,2,0)”
注意不包含引号,然后向下填充或复制
其中sheet1是表1的名称,注意核对下
更多追问追答
追问
有疑问,我的单元格格式是文本(因为有些内容是0打头的,常用格式往往会吧打头的0去掉),这样vlookup就无法用了。有啥办法不?
追答
文本格式没影响啊,或者你发我邮箱吧,heavenbreeze1@126.com
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
vlookup就能实现。
比如表2C1输入一个代码,那么,相应的D1的公式为
=vlookup(c1,A1,表1!A:B,2,false)
注,其中,表1是第一个表的名字,如果表1名字是sheet1那么公式中也是sheet1,注意区分英文括号和逗号。
上面的公式,如果你表1中没有表2C列填写的内容,返回的是#N/A,所以表1的代码要完善。
比如表2C1输入一个代码,那么,相应的D1的公式为
=vlookup(c1,A1,表1!A:B,2,false)
注,其中,表1是第一个表的名字,如果表1名字是sheet1那么公式中也是sheet1,注意区分英文括号和逗号。
上面的公式,如果你表1中没有表2C列填写的内容,返回的是#N/A,所以表1的代码要完善。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在D2中输入
=VLOOKUP(C2,Sheet1!A:B,2,0)
然后向下填充就可以
=VLOOKUP(C2,Sheet1!A:B,2,0)
然后向下填充就可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-11-18 · 知道合伙人软件行家
关注
展开全部
表2的D: =vlookup(C2,表1!A:B,2,)
下拉
下拉
追问
没用呀,这个函数一共需要4个参数,最后一个不用填么,有没有代码。
追答
最后一个省略就是0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询