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

拆分混存学校站点与学生编号的Excel列

解决方案

方法一:Excel公式法(新手友好,快速上手)

  • 插入新列:在Name列右侧新增一列,命名为School。
  • 填充站点信息:假设Student Number列是A列,School列是C列,在C2单元格输入公式:
    =IF(LEFT(A2,5)="Site:",A2,C1)
    
    公式逻辑:如果A列单元格以Site:开头,就把该内容填入当前C列单元格;否则继承上一行的站点信息。下拉公式覆盖所有行。
  • 清理无效行:选中A列,启用筛选功能,筛选出含Site:的行并删除;再筛选Name列的NAN/Nan行,同样删除。

方法二:Power Query法(批量处理高效)

  • 导入数据到Power Query:选中数据区域,点击「数据」→「从表格/区域」(Excel 2016及以上版本),确认表头存在。
  • 新建站点列:在编辑器中点击「添加列」→「自定义列」,输入公式并命名为School:
    = if Text.StartsWith([Student Number], "Site:") then [Student Number] else null
    
  • 填充站点信息:选中School列,点击「转换」→「填充」→「向下填充」,让学生行自动继承上方站点信息。
  • 清理无效行:筛选Student Number列,取消勾选含Site:的选项,删除这些行;最后点击「关闭并上载」,处理后的数据会导出到新工作表。

方法三:VBA宏(适合重复处理同类数据)

按下Alt+F11打开VBA编辑器,插入模块,粘贴以下代码后运行宏,自动完成所有处理:

Sub SplitSchoolInfo()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim currentSchool As String
    
    Set ws = ActiveSheet
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    '插入School列
    ws.Columns("C").Insert
    ws.Cells(1, "C").Value = "School"
    
    currentSchool = ""
    For i = 2 To lastRow
        If Left(ws.Cells(i, "A").Value, 5) = "Site:" Then
            currentSchool = ws.Cells(i, "A").Value
            ws.Cells(i, "C").Value = currentSchool
        Else
            ws.Cells(i, "C").Value = currentSchool
        End If
    Next i
    
    '删除包含Site:的行
    For i = lastRow To 2 Step -1
        If Left(ws.Cells(i, "A").Value, 5) = "Site:" Then
            ws.Rows(i).Delete
        End If
    Next i
    
    '删除Name列为NAN/Nan的行
    For i = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row To 2 Step -1
        If UCase(ws.Cells(i, "B").Value) = "NAN" Then
            ws.Rows(i).Delete
        End If
    Next i
End Sub

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 02:35:24