如何按ITEM NUMBER类别填充C列对应空单元格的匹配数值?
解决方案:按ITEM NUMBER填充C列空单元格
原始数据
| A | ITEM NUMBER | C |
|---|---|---|
| 22/10/2024 | 19951034 | |
| 29/10/2024 | 19951034 | |
| 29/10/2024 | 19951034 | |
| 13/11/2024 | 19951034 | |
| 15/11/2024 | 19951034 | 222,434 |
| 27/09/2024 | 623222 | 81,052 |
| 10/12/2024 | 623222 | |
| 16/12/2024 | 623222 | |
| 20/12/2024 | 623222 | |
| 31/10/2024 | 4562 | |
| 27/11/2024 | 4562 | 23,543 |
| 28/11/2024 | 4562 | |
| 29/11/2024 | 4562 | |
| 29/11/2024 | 4562 |
方法1:Excel公式填充(手动操作)
假设数据从第2行开始(表头在第1行):
- 在C2单元格输入兼容全版本Excel的公式:
=IF(C2<>"",C2,INDEX($C$2:$C$15,MATCH(B2,$B$2:$B$15,0))) - 若使用Excel 365/2021及以上版本,可使用更简洁的
XLOOKUP:=IF(C2<>"",C2,XLOOKUP(B2,$B$2:$B$15,$C$2:$C$15,"",0)) - 下拉填充公式至所有行,最后复制C列,右键选择「粘贴值」,将公式替换为纯数值。
方法2:Power Query批量处理(推荐)
适合数据量大或需重复操作的场景:
- 选中表格数据,点击「数据」选项卡 → 「从表格/区域」,导入Power Query编辑器
- 选中
ITEM NUMBER和C列,点击「转换」→「填充」→「向下填充」 - 再次选中这两列,点击「转换」→「填充」→「向上填充」
- 点击「关闭并上载」,将处理后的数据替换原表格或导出到新位置
方法3:VBA宏自动填充
适合需自动化执行的场景:
- 按
Alt+F11打开VBA编辑器,插入新模块 - 粘贴以下代码:
Sub FillEmptyCells() Dim ws As Worksheet Dim lastRow As Long Dim i As Long Dim itemDict As Object Set ws = ActiveSheet lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row Set itemDict = CreateObject("Scripting.Dictionary") ' 收集每个ITEM NUMBER对应的非空C列值 For i = 2 To lastRow If ws.Cells(i, "C").Value <> "" And Not itemDict.Exists(ws.Cells(i, "B").Value) Then itemDict(ws.Cells(i, "B").Value) = ws.Cells(i, "C").Value End If Next i ' 填充空单元格 For i = 2 To lastRow If ws.Cells(i, "C").Value = "" Then ws.Cells(i, "C").Value = itemDict(ws.Cells(i, "B").Value) End If Next i Set itemDict = Nothing End Sub - 返回Excel,按
Alt+F8选择FillEmptyCells执行宏即可。
内容的提问来源于stack exchange,提问作者Killian Gavin
相关产品推荐
相关产品推荐

