使用两个公用键合并两个CSV文件

使用两个公用键合并两个CSV文件,csv,powershell,Csv,Powershell,您好,我使用下面的代码合并CSV文件,使用一个公用键将一列从Child.CSV添加到Parent.CSV { Import-Csv "D:\CSV check\Sourcecount.csv" -Header Sourcecount, MONTH_YEAR | ForEach-Object -Begin { $Employees = @{} } -Process { $Employees.Add($_.MON

您好,我使用下面的代码合并CSV文件,使用一个公用键将一列从
Child.CSV
添加到
Parent.CSV

    {
        Import-Csv "D:\CSV check\Sourcecount.csv" -Header Sourcecount, MONTH_YEAR | ForEach-Object -Begin {
            $Employees = @{}
        } -Process {
            $Employees.Add($_.MONTH_YEAR,$_.Sourcecount)
        }

        Import-Csv "D:\CSV check\RenameFinal.csv" | ForEach-Object {
            $_ | Add-Member -MemberType NoteProperty -Name Sourcecount -Value $Employees."$($_.MONTH_YEAR)" -PassThru
        } | Export-Csv -NoTypeInformation "D:\CSV check\sourcefinal.csv"
    }
问题:
您能否帮助实现将两个常用键(按数据和用户ID)的一列值从child.csv获取到Parent.csv的场景连接。

下面是我用于解决上述查询的代码:

$f2=Import-Csv "D:\Sourcecount.csv" -Header Sourcecount,MONTH_YEAR,UserID
$f1= Import-csv "D:\Final.csv" -Header MONTH_YEAR,DestinationCount,UserID,Result,SourceCount

$f1|
%{
  $Month_YEAR=$_.MONTH_YEAR
  $UserID=$_.UserID
  $m=$f2|?{$_.MONTH_YEAR -eq  $Month_YEAR}|?{$_.UserID -eq  $UserID}
  $_.SourceCount=$m.Sourcecount
}
$f1| Export-Csv "D:\SourceFinal.csv" -NoTypeInformation

下面是我用来解决上述查询的代码:

$f2=Import-Csv "D:\Sourcecount.csv" -Header Sourcecount,MONTH_YEAR,UserID
$f1= Import-csv "D:\Final.csv" -Header MONTH_YEAR,DestinationCount,UserID,Result,SourceCount

$f1|
%{
  $Month_YEAR=$_.MONTH_YEAR
  $UserID=$_.UserID
  $m=$f2|?{$_.MONTH_YEAR -eq  $Month_YEAR}|?{$_.UserID -eq  $UserID}
  $_.SourceCount=$m.Sourcecount
}
$f1| Export-Csv "D:\SourceFinal.csv" -NoTypeInformation

你能给我们看一个样本数据集吗?谢谢Mathias的回复。我尝试使用添加的代码,并能够得到所需的结果。太棒了!请将您的解决方案作为答案发布,这样它就不会被列为“未回答”:)请单击下面的“添加答案”按钮分别添加您的答案。不要在问题本身中添加答案。你能给我们看一个样本数据集吗?谢谢Mathias的回答。我尝试使用添加的代码,并能够得到所需的结果。太棒了!请将您的解决方案作为答案发布,这样它就不会被列为“未回答”:)请单击下面的“添加答案”按钮分别添加您的答案。不要在问题本身中添加答案。