如何实现表格中同一公司的applied列状态自动同步?
实现重复公司自动填充"applied"列的方法
方法一:用查找函数(无需编程)
假设你的公司名称在A列,"applied"列在B列,从第2行开始有数据:
- 选中B2单元格,输入以下公式(适合Excel 365/2021及以上版本):
=XLOOKUP(A2,$A$1:A1,$B$1:B1,"")
公式说明:向上查找当前公司在之前行的记录,找到就返回对应的"applied"值,没找到则留空。 - 把鼠标放在B2单元格右下角,当光标变成十字形时,下拉填充整个B列。
如果用的是旧版Excel(没有XLOOKUP),改用这个公式:=IFERROR(VLOOKUP(A2,$A$1:A1,2,FALSE),"")
公式说明:用VLOOKUP查找匹配的公司,IFERROR用来避免找不到时显示错误值。
方法二:用VBA宏实现实时自动填充
如果希望输入公司名称时自动触发填充,不用手动下拉公式,可以用VBA宏:
- 右键点击工作表标签(比如「Sheet1」),选择「查看代码」。
- 在弹出的VBA编辑器中,粘贴以下代码:
Private Sub Worksheet_Change(ByVal Target As Range) Dim rng As Range Dim cell As Range Dim lastRow As Long ' 只监控A列(公司列)的输入变化 If Not Intersect(Target, Me.Columns("A")) Is Nothing Then lastRow = Me.Cells(Me.Rows.Count, "A").End(xlUp).Row Set rng = Me.Range("A2:A" & lastRow) For Each cell In Target If cell.Row > 1 Then ' 查找当前公司在之前行的匹配记录 Dim matchCell As Range Set matchCell = rng.Find(What:=cell.Value, LookIn:=xlValues, LookAt:=xlWhole, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False) If Not matchCell Is Nothing And matchCell.Row < cell.Row Then ' 自动填充对应的applied值 Me.Cells(cell.Row, "B").Value = Me.Cells(matchCell.Row, "B").Value End If End If Next cell End If End Sub
- 关闭VBA编辑器,回到工作表。现在只要在A列输入已存在的公司名称,B列会自动填充该公司之前的"applied"条目。
内容的提问来源于stack exchange,提问作者JustLearning
相关产品推荐
相关产品推荐

