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

如何用PowerShell精准实现CSV去重:仅移除STAFF_STATUS为LEFT的重复行

CSV去重:仅移除STAFF_STATUS为"LEFT"的重复行

原始CSV数据

(注:原始数据存在引号未闭合的格式问题,以下为修正后的合法格式)

"STAFF_STATUS","SFKEY","FIRST_NAME","SURNAME","E_MAIL"
"ACTV","JON1","JOHN","DOE","John.Doe@email.com"
"LEFT","JAN1","JANE","DOE","Jane.Doe@email.com"
"ACTV","STE1","STEVE","BEEV","Steve.Beev@email.com"
"ACTV","JON5","JOHN","DOE","John.Doe@email.com"
"LEFT","JAN2","JANE","DOE","Jane.Doe@email.com"

需求说明

  • 以人员唯一标识(如FIRST_NAME、SURNAME、E_MAIL组合)判断重复行
  • 重复行处理规则:仅移除STAFF_STATUS为"LEFT"的记录;若同一人员同时存在"ACTV"和"LEFT"记录,保留"ACTV";若仅存在"LEFT"记录,则保留该记录

原脚本问题分析

原脚本使用Sort-Object -Property SURNAME,First_Name -unique存在两个核心问题:

  1. 仅按姓氏和名字分组,易导致不同邮箱的同姓名人员被误判为重复
  2. Sort-Object -unique会保留排序后的第一条记录,若"LEFT"记录排在"ACTV"之前,会错误保留"LEFT"、删除"ACTV",导致准确率不足

100%准确解决方案

PowerShell脚本

# 定义CSV路径
$csvPath = "\\Server\c$\Folder\CSVData.csv"
$outputPath = "\\Server\c$\Folder\CSVData(2).csv"

# 导入合法格式的CSV数据
$csvData = Import-Csv -Path $csvPath

# 按人员唯一标识分组(可根据实际调整分组字段)
$groupedData = $csvData | Group-Object -Property FIRST_NAME, SURNAME, E_MAIL

# 处理每个分组:优先保留ACTV状态记录,无ACTV则保留LEFT
$processedData = $groupedData | ForEach-Object {
    $activeRecords = $_.Group | Where-Object { $_.STAFF_STATUS -eq "ACTV" }
    if ($activeRecords.Count -gt 0) {
        # 保留ACTV记录,若存在多条ACTV则按SFKEY去重
        $activeRecords | Sort-Object -Property SFKEY -Unique
    } else {
        # 无ACTV时保留唯一的LEFT记录
        $_.Group | Sort-Object -Property SFKEY -Unique
    }
}

# 导出处理后的CSV
$processedData | Export-Csv -Path $outputPath -NoTypeInformation -Encoding UTF8

脚本说明

  1. 精准分组:通过Group-Object按FIRST_NAME、SURNAME、E_MAIL组合分组,确保仅同一人员的记录被归为一组,避免误判
  2. 优先级逻辑:每个分组优先筛选"ACTV"记录,确保这类有效记录被保留;仅当分组内无"ACTV"时,才保留"LEFT"记录
  3. 内部去重:针对同一人员的多条"ACTV"或"LEFT"记录,通过SFKEY字段去重,可根据实际需求调整去重字段

简化版本(仅按姓氏和名字分组)

若确实只需按姓氏和名字判断重复,可修改分组属性:

$groupedData = $csvData | Group-Object -Property SURNAME, FIRST_NAME

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 00:54:54