我从我们的一个客户端收到一个文件,如下所示:(我为此添加了标题以便于处理)。样本输入:
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
我需要一种方法来将所有行与Transaction ='div'组合起来,总结每个PlanID的数量。这就是我希望我的输出看起来像:
示例输出:
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
因此,在买入行之前只有一个div行(总计金额,总是买入金额)。任何想法如何处理这一点将不胜感激?
非常感谢!!
答案 0 :(得分:4)
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
<强>步骤:强>