Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 是否有方法在csv中添加与特定单元格匹配的列值?_Powershell_Csv_Variables_Math_Sum - Fatal编程技术网

Powershell 是否有方法在csv中添加与特定单元格匹配的列值?

Powershell 是否有方法在csv中添加与特定单元格匹配的列值?,powershell,csv,variables,math,sum,Powershell,Csv,Variables,Math,Sum,我尝试过搜索,但似乎找不到任何真正有助于这一点的东西。。。。 我有一个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

我尝试过搜索,但似乎找不到任何真正有助于这一点的东西。。。。 我有一个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"
因此,我基本上是在第1列中找到一个唯一的值(但它可能不是一个预设的名称,即它可能是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文件目前


非常感谢您的帮助

也许这是一个好的开始:

$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文件&将它们重新组合在一起,这真的很有帮助!!谢谢:)