You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按ITEM NUMBER类别填充C列对应空单元格的匹配数值?

解决方案:按ITEM NUMBER填充C列空单元格

原始数据

AITEM NUMBERC
22/10/202419951034
29/10/202419951034
29/10/202419951034
13/11/202419951034
15/11/202419951034222,434
27/09/202462322281,052
10/12/2024623222
16/12/2024623222
20/12/2024623222
31/10/20244562
27/11/2024456223,543
28/11/20244562
29/11/20244562
29/11/20244562

方法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批量处理(推荐)

适合数据量大或需重复操作的场景:

  1. 选中表格数据,点击「数据」选项卡 → 「从表格/区域」,导入Power Query编辑器
  2. 选中ITEM NUMBER和C列,点击「转换」→「填充」→「向下填充」
  3. 再次选中这两列,点击「转换」→「填充」→「向上填充」
  4. 点击「关闭并上载」,将处理后的数据替换原表格或导出到新位置

方法3:VBA宏自动填充

适合需自动化执行的场景:

  1. 按Alt+F11打开VBA编辑器,插入新模块
  2. 粘贴以下代码:
    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
    
  3. 返回Excel,按Alt+F8选择FillEmptyCells执行宏即可。

内容的提问来源于stack exchange,提问作者Killian Gavin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 09:05:04