【问题标题】:Is there a way to add column values in csv matching certain cells?有没有办法在 csv 中添加与某些单元格匹配的列值?
【发布时间】:2019-12-18 16:59:56
【问题描述】:

我已经尝试过搜索,但似乎找不到任何真正可以帮助解决这个问题的东西.... 我有一个 csv 文件(从外部公司入站),其内容如下:

Column1, Column2, Column3, Column4, etc
Bob, 61, 90, 105
Bob, 88, 21, 37
Bob, 20, 30, 40
Bill, 10, 15, 16
Bill, 90, 80, 70
Carl, 110, 115, 99
Carl, 10, 35, 90

理想情况下,我想做的是

import-csv csvfile | where { $_.Column1 is unique } | autosum column4 | insert newline | total of "bob"

所以我基本上是在 Column1 中找到一个唯一值(但它可能不是预设名称,即它可能是 Bob、Carl、Bill 或 Emma 等) - 然后添加这些的最后一行,然后在下面输入一个包含总数的新行??

所以它可能看起来像:

Column1, Column2, Column3, Column4, etc
Bob, 61, 90, 105
Bob, 88, 21, 37
Bob, 20, 30, 40
                Bob Totals = 182
Bill, 10, 15, 16
Bill, 90, 80, 70
                Bill Totals = 86
Carl, 110, 115, 99
Carl, 10, 35, 90
                Carl Totals = 189

我希望这是有道理的,我什至不知道这是否可能,它只会节省目前从 csv 文件中添加的大量手动操作..

非常感谢您的帮助!

【问题讨论】:

    标签: powershell csv variables math sum


    【解决方案1】:

    也许这是一个好的开始:

    $data = import-csv -path "pathtocsv" -delimiter ","
    
    $unique_names = $data.column1 | select -unique
    
    foreach ($unique_name in $unique_names){
        [int]$currSum = 0
        $currData = $data | ? {$_.column1 -eq $unique_name}
        foreach ($entry in $currData){
            write-host $entry
            $currSum += [int]$($entry.column4.trim())
        }
        write-host "Total for $($entry.column1): $currsum"
    }
    

    我的输出:

    @{Column1=Bob; Column2=61; Column3=90; Column4=105}
    @{Column1=Bob; Column2=88; Column3=21; Column4=37}
    @{Column1=Bob; Column2=20; Column3=30; Column4=40}
    Total for Bob: 182
    @{Column1=Bill; Column2=10; Column3=15; Column4=16}
    @{Column1=Bill; Column2=90; Column3=80; Column4=70}
    Total for Bill: 86
    @{Column1=Carl; Column2=110; Column3=115; Column4=99}
    @{Column1=Carl; Column2=10; Column3=35; Column4=90}
    Total for Carl: 189
    

    您必须进行一些格式化,但基本上它按预期工作。

    【讨论】:

    • 非常感谢!!我已经对上面的内容进行了调整,以添加多个 csv 文件并将它们重新组合在一起,这真的很有帮助!谢谢:)
    猜你喜欢
    • 1970-01-01
    • 2012-05-02
    • 1970-01-01
    • 2019-02-03
    • 2022-08-02
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 1970-01-01
    相关资源
    最近更新 更多