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

使用PowerShell计算CSV文件中各成本中心的许可证费用汇总

PowerShell按成本中心汇总M365许可证费用方案

假设你的原始CSV包含以下核心列:成本中心、许可证类型、单用户费用(如果列名不同,自行替换代码中的对应字段),以下是实现汇总的具体步骤和脚本:

核心实现脚本

# 1. 导入原始CSV文件,替换为实际文件路径
$rawData = Import-Csv -Path "C:\Accounting\M365_License_Costs.csv"

# 2. 按「成本中心+许可证类型」分组,计算数量与总费用
$detailedSummary = $rawData | Group-Object -Property 成本中心,许可证类型 | ForEach-Object {
    [PSCustomObject]@{
        成本中心       = $_.Values[0]
        许可证类型     = $_.Values[1]
        总用户数量     = $_.Count
        该类型总费用   = [math]::Round(($_.Group.'单用户费用' | Measure-Object -Sum).Sum, 2)
    }
}

# 3. (可选)生成按成本中心合并的汇总表(一行一个成本中心,列包含各许可证数据)
$ccCombinedSummary = $detailedSummary | Group-Object -Property 成本中心 | ForEach-Object {
    $ccRow = [PSCustomObject]@{ 成本中心 = $_.Name }
    $_.Group | ForEach-Object {
        $ccRow | Add-Member -NotePropertyName "$($_.许可证类型)_数量" -NotePropertyValue $_.总用户数量
        $ccRow | Add-Member -NotePropertyName "$($_.许可证类型)_总费用" -NotePropertyValue $_.该类型总费用
    }
    $ccRow
}

# 4. 导出汇总结果
# 导出明细格式(每行对应成本中心+许可证的组合)
$detailedSummary | Export-Csv -Path "C:\Accounting\License_Summary_Detailed.csv" -NoTypeInformation -Encoding UTF8

# 导出合并格式(每行对应一个成本中心)
# $ccCombinedSummary | Export-Csv -Path "C:\Accounting\License_Summary_By_CC.csv" -NoTypeInformation -Encoding UTF8

关键说明

  • 列名适配:如果你的原始CSV中费用列名为许可证费用,将代码中的单用户费用替换为对应名称即可
  • 去重处理:如果原始数据存在重复用户记录,可在导入后添加去重逻辑,例如:
    $rawData = $rawData | Select-Object 成本中心,许可证类型,单用户费用 -Unique
    
  • 精度控制:用[math]::Round保留两位小数,避免浮点计算的精度问题
  • 编码选择:使用-Encoding UTF8确保导出的CSV在Excel中打开无乱码

输出格式说明

  • 明细格式:适合查看每个成本中心下各许可证的具体统计,示例行:
    成本中心许可证类型总用户数量该类型总费用
    1051080Business Premium101200.00
    1051080F35250.00
  • 合并格式:适合按成本中心整体查看,示例行:
    成本中心Business Premium_数量Business Premium_总费用F3_数量F3_总费用
    1051080101200.005250.00

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 13:20:20