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

如何按分数条件将Sheet1客户名分类复制到Sheet2对应列

按分数拆分客户到对应列的解决方案

方法1:Excel公式动态提取(自动同步数据)

在Sheet2的A2单元格(对应分数1的第一行)输入以下公式,向右拖动到C2,再向下填充至需要的行:

=IFERROR(INDEX(Sheet1!$A:$A, SMALL(IF(Sheet1!$B:$B=COLUMN(A1), ROW(Sheet1!$B:$B), ""), ROW(A1))), "")
  • 注意:非Excel 365/2021版本输入后需按Ctrl+Shift+Enter触发数组公式;365/2021版本直接回车即可。
  • 逻辑:用IF筛选对应分数的行号,SMALL按顺序提取行号,INDEX匹配客户名称,IFERROR把错误值转为空单元格。

方法2:手动筛选复制(适合小数据量)

  1. 打开Sheet1,选中分数列(B列),点击「数据」选项卡的「筛选」按钮。
  2. 点击B列筛选箭头,只勾选「1」,选中所有显示的客户名称,复制到Sheet2的A列。
  3. 重复操作:勾选「2」复制到Sheet2的B列,勾选「3」复制到Sheet2的C列。
  4. 取消Sheet1的筛选即可。

方法3:VBA批量处理(适合频繁更新场景)

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

Sub SplitCustomersByScore()
    Dim wsSource As Worksheet, wsTarget As Worksheet
    Dim lastRow As Long, i As Long, cnt1 As Long, cnt2 As Long, cnt3 As Long
    
    Set wsSource = ThisWorkbook.Sheets("Sheet1")
    Set wsTarget = ThisWorkbook.Sheets("Sheet2")
    
    ' 清空目标表已有数据(保留表头)
    wsTarget.Range("A2:C" & wsTarget.Cells(wsTarget.Rows.Count, "A").End(xlUp).Row).ClearContents
    
    cnt1 = 2: cnt2 = 2: cnt3 = 2
    lastRow = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row
    
    For i = 2 To lastRow
        Select Case wsSource.Cells(i, "B").Value
            Case 1
                wsTarget.Cells(cnt1, "A").Value = wsSource.Cells(i, "A").Value
                cnt1 = cnt1 + 1
            Case 2
                wsTarget.Cells(cnt2, "B").Value = wsSource.Cells(i, "A").Value
                cnt2 = cnt2 + 1
            Case 3
                wsTarget.Cells(cnt3, "C").Value = wsSource.Cells(i, "A").Value
                cnt3 = cnt3 + 1
        End Select
    Next i
    
    MsgBox "拆分完成!", vbInformation
End Sub

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 23:47:42