Ris*_*abh 0 powershell powershell-2.0
我从我们的一个客户那里收到一个文件,看起来像这样:(我向它添加了标题以便于处理)。样本输入:
PlanID,Date,Transaction,Type,Ticker,Amount,Cash
01,121211,div,mf,fjk,25,cash
01,121211,div,mf,fjk,30,cash
01.121211,buy,mf,fjk,55,cash
02,121211,div,sd,ejd,10,cash
02,121211,div,sd,ejd,15,cash
02,121211,buy,sd,ejd,25,cash
Run Code Online (Sandbox Code Playgroud)
我需要一种方法,通过总结每个 PlanID 的金额来将所有行与 Transaction='div' 组合在一起。这就是我希望我的输出看起来像的样子:
示例输出:
PlanID,Date,Transaction,Type,Ticker,Amount,Cash
01,121211,div,mf,fjk,55,cash
01.121211,buy,mf,fjk,55,cash
02,121211,div,sd,ejd,25,cash
02,121211,buy,sd,ejd,25,cash
Run Code Online (Sandbox Code Playgroud)
因此,在购买行之前只有一个 div 行(金额相加,将始终是购买金额)。任何想法如何解决这个问题将不胜感激?
非常感谢提前!
Import-Csv input.csv | Group-Object planid, transaction |
Select @{n="PlanId";E={($_.name -split ',')[0]}},
@{n="Date";e={($_.group)[0].date}},
@{n="Transaction";E={(($_.name -split ',')[1]).trim()}},
@{n="Type";e={($_.group)[0].type}},
@{n="Ticker";e={($_.group)[0].ticker}},
@{n="Amount";e={($_.group | measure-object amount -sum).sum}},
@{n="Cash";e={($_.group)[0].cash}} |
Export-Csv output.csv -NoTypeInformation
Run Code Online (Sandbox Code Playgroud)
脚步:
| 归档时间: |
|
| 查看次数: |
2469 次 |
| 最近记录: |