我有两个不同的Excel工作表,第一个是Formular,第二个用作Little数据库。我和VBA一起工作。
这个想法是,当您在工作表1的第一列中键入Id编号时,它会在数据库工作表中搜索该ID编号,并获取位于ID编号列右侧的文本。
答案 0 :(得分:4)
你可以在没有VBA的情况下做到这一点。在工作表中,在B列中使用此公式:
=VLOOKUP(A:A,database!A:B,2,FALSE)
其中database
是数据库工作表的名称。
如果您需要自动填充该公式,可以使用Worksheet_Change
事件。但请注意,这可能会降低您的工作表速度,并可能产生奇怪的副作用,我不会推荐它。
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Columns("A")) Is Nothing Then
Target.Columns(2).Formula = "=VLOOKUP(A:A,database!A:B,2,FALSE)"
End If
End Sub
根据以下评论进行编辑:
如果要在2个不同的列中查找,则需要在第一列中查找,如果它不存在,则查找另一列:
=IFNA(VLOOKUP(A:A,database!A:B,2,FALSE),VLOOKUP(A:A,database!C:D,2,FALSE))
此公式假设您在A:B中已有C:D列中的另一个集合。因此它首先在A和结果B中查找,如果没有找到,则在C中查找并且结果为D.