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

如何拆分Excel多值单元格生成CVE与单设备对应行?

拆分MDE导出Excel中的CVE-多设备行数据

方法1:使用Power Query(推荐,无代码)

  1. 选中数据区域,点击「数据」选项卡 → 「从表格/区域」(Excel会自动将数据转为表格)
  2. 在Power Query编辑器中,找到存储受影响设备的列(比如列名为「受影响设备」),点击列标题旁的拆分按钮 → 「按分隔符拆分列」→ 选择设备列表的分隔符(比如逗号、分号,根据你的表格实际情况选),选择「拆分为行」
  3. 确认拆分后,点击「关闭并上载」,拆分后的新表格会自动生成在新工作表中,所有其他列的内容会自动对应到每一行设备数据

方法2:使用公式组合(适合小数据量)

假设你的表格:

  • A列是CVE编号,B列是受影响设备(用逗号分隔),C-Z列是其他需要保留的字段
  1. 插入辅助列(比如AA列),在AA2单元格输入公式:=LEN(B2)-LEN(SUBSTITUTE(B2,",",""))+1,下拉填充,计算每行的设备数量
  2. 插入辅助列(AB列),在AB2单元格输入公式:=SUM(AA$2:AA2)-AA2+1,下拉填充,计算每行的起始行号
  3. 在新工作表的A2单元格输入公式:=INDEX(原表!A:A,MAX(IF(AB$2:AB$1000<=ROW()-1,ROW(AB$2:AB$1000),0))),按Ctrl+Shift+Enter(Excel 365直接回车),下拉填充获取CVE编号
  4. 新工作表的B2单元格输入公式:=TEXTSPLIT(INDEX(原表!B:B,MATCH(A2,原表!A:A,0)),",")(ROW()-INDEX(AB:AB,MATCH(A2,原表!A:A,0))+1),下拉填充获取单台设备
  5. 其他列直接用=INDEX(原表!C:C,MATCH(A2,原表!A:A,0))这类公式匹配,下拉填充即可

方法3:VBA脚本(适合大数据量批量处理)

按Alt+F11打开VBA编辑器,插入模块,粘贴以下代码:

Sub SplitCVEDevices()
    Dim wsSource As Worksheet, wsTarget As Worksheet
    Dim lastRow As Long, targetRow As Long
    Dim deviceArr As Variant, i As Integer
    
    Set wsSource = ThisWorkbook.Sheets("原表") '替换成你的源工作表名称
    Set wsTarget = ThisWorkbook.Sheets.Add
    wsTarget.Name = "拆分结果"
    
    '复制表头
    wsSource.Rows(1).Copy wsTarget.Rows(1)
    targetRow = 2
    
    lastRow = wsSource.Cells(Rows.Count, "B").End(xlUp).Row '假设设备列是B列,按需修改
    
    For i = 2 To lastRow
        deviceArr = Split(wsSource.Cells(i, "B").Value, ",") '按逗号拆分设备,按需修改分隔符
        For Each device In deviceArr
            wsSource.Rows(i).Copy wsTarget.Rows(targetRow)
            wsTarget.Cells(targetRow, "B").Value = Trim(device) '去除设备名称前后空格
            targetRow = targetRow + 1
        Next device
    Next i
    
    MsgBox "拆分完成!"
End Sub

修改代码中的「原表」和设备列序号(比如"B"),按F5运行脚本,拆分结果会自动生成在新工作表中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 02:04:50