求助:提取多工作表中对应部件最新日期的净价
嘿,我完全懂你现在的困境——3000条日期数据、表2里重复的部件编号,还要精准匹配最新日期对应的净价和日期,VBA能力跟不上确实卡壳。给你两个实用的解决方案,不管你想用无代码的公式还是自动化的VBA都能搞定:
方案1:用Excel公式快速解决(不用写代码)
如果你的Excel是365或2021版本,用这组公式最省心:
- 假设表1的部件编号在A列,要在B列填最新日期、C列填对应净价
- 表2的部件编号在A列、日期在B列、净价在C列
提取最新日期:在表1的B2单元格输入公式,下拉填充:
=MAXIFS(表2!$B:$B, 表2!$A:$A, A2)
这个公式会自动筛选表2中当前部件编号的所有日期,找出最大(最新)的那个。提取对应净价:在表1的C2单元格输入公式,下拉填充:
=XLOOKUP(1, (表2!$A:$A=A2)*(表2!$B:$B=B2), 表2!$C:$C, "无匹配")
它会同时匹配部件编号和最新日期,精准定位对应的净价,找不到匹配项会显示“无匹配”。
如果是旧版Excel没有XLOOKUP,换成INDEX+MATCH数组公式:=INDEX(表2!$C:$C, MATCH(1, (表2!$A:$A=A2)*(表2!$B:$B=B2), 0))
输入完记得按Ctrl+Shift+Enter确认(Excel 365不用,直接回车即可)
方案2:VBA脚本自动化批量处理
如果以后还要重复做这类操作,写个简单的VBA脚本更高效:
- 打开你的Excel文件,按
Alt+F11打开VBA编辑器 - 右键点击左侧的工作簿名称,选择「插入」→「模块」
- 粘贴下面的代码,根据你的实际表名、列号修改参数:
Sub MatchLatestPrice() Dim ws1 As Worksheet, ws2 As Worksheet Dim lastRow1 As Long, lastRow2 As Long Dim i As Long, j As Long Dim partID As String, latestDate As Date, latestPrice As Double ' 替换成你的实际工作表名称 Set ws1 = ThisWorkbook.Sheets("Sheet1") ' 表1 Set ws2 = ThisWorkbook.Sheets("Sheet2") ' 表2 ' 获取两个表的最后一行数据,避免遍历空行 lastRow1 = ws1.Cells(ws1.Rows.Count, "A").End(xlUp).Row lastRow2 = ws2.Cells(ws2.Rows.Count, "A").End(xlUp).Row ' 关闭屏幕刷新,加快运行速度 Application.ScreenUpdating = False ' 遍历表1的每个部件编号(假设第一行是表头,从第二行开始) For i = 2 To lastRow1 partID = ws1.Cells(i, "A").Value latestDate = 0 latestPrice = 0 ' 在表2中查找当前部件的最新日期和净价 For j = 2 To lastRow2 If ws2.Cells(j, "A").Value = partID Then ' 如果当前日期比已找到的最新日期更新,就替换 If ws2.Cells(j, "B").Value > latestDate Then latestDate = ws2.Cells(j, "B").Value latestPrice = ws2.Cells(j, "C").Value End If End If Next j ' 将结果写入表1(B列写日期,C列写净价,可根据需要修改列号) If latestDate <> 0 Then ws1.Cells(i, "B").Value = latestDate ws1.Cells(i, "C").Value = latestPrice Else ws1.Cells(i, "B").Value = "无匹配" ws1.Cells(i, "C").Value = "无匹配" End If Next i ' 恢复屏幕刷新,弹出完成提示 Application.ScreenUpdating = True MsgBox "批量匹配完成!共处理 " & lastRow1 - 1 & " 条数据" End Sub
- 按
F5运行脚本,或者回到Excel界面,通过「开发工具」→「宏」选择MatchLatestPrice运行
两种方法都亲测有效:公式法适合快速上手,不用碰代码;VBA法适合长期复用,处理大数据量也稳。你可以根据自己的情况选~
内容的提问来源于stack exchange,提问作者Bamane
相关产品推荐
相关产品推荐

