Powershell-CompareCsv-Export-Values-From-Each Я опубликовал этот вопрос, и он в значительной степени идентичен, за исключением того, что у моего правого CSV есть несколько строк с одинаковыми First, Last и DOB, но разныеимена файлов и мой левый файл имеют только первый, последний, DOB только один раз.
Я думаю, что ответ будет достаточно другим, поэтому я решил опубликовать второй вопрос.
У меня есть 2 CSV
left.csv
Ref_ID,First_Name,Last_Name,DOB
321364060,User1,Micah,11/01/1969
946497594,User2,Acker,05/28/1960
887327716,User3,Aco,06/26/1950
588496260,User4,John,05/23/1960
565465465,User5,Jack,07/08/2020
right.csv
First_Name,Last_Name,DOB,City,Document_Type,Filename
User1,Micah,11/01/1969,Parker,Transcript,T4IJZSYO.pdf
User1,Micah,11/01/1969,Parker,Letter,BADBADC.pdf
User1,Micah,11/01/1969,Parker,Resume,AJMLMOC.pdf
User2,Acker,05/28/1960,,Transcript,R4IKTRYN.pdf
User3,Aco,06/26/1950,,Transcript,R4IKTHMK.pdf
User4,John,05/23/1960,,Letter,R4IKTHSL.pdf
Мне нужно сопоставить их с First_Name, Last_Name, DOB, затем вернуть Ref_ID из left.csv и First, Last, DOB, Document_Type, Filename из right.csv для каждой строки.
Таким образом, конечный результат будет выглядеть так:
Combined.csv
Ref_ID,First_Name,Last_Name,DOB,Document_Type,Filename
321364060,User1,Micah,11/01/1969,Transcript,T4IJZSYO.pdf
321364060,User1,Micah,11/01/1969,Letter,BADBADC.pdf
321364060,User1,Micah,11/01/1969,Resume,AJMLMOC.pdf
946497594,User2,Acker,05/28/1960,Transcript,R4IKTRYN.pdf
887327716,User3,Aco,06/26/1950,Transcript,R4IKTHMK.pdf
588496260,User4,John,05/23/1960,Letter,R4IKTHSL.pdf
Используя ответ из другого поста, возвращает только первое совпадение.Я попытался изменить -eq на -in, что дает мне все совпадения, но возвращает это так:
Ref_ID,First_Name,Last_Name,DOB,Document_Type,Filename
321364060,{User1,User1,User1},{Micah,Micah,Micah},{11/01/1969,11/01/1969,11/01/1969},{Transcript,Letter,Resume},{T4IJZSYO.pdf,BADBADC.pdf,AJMLMOC.pdf}
Приведенный ниже запрос работает для получения каждого отдельного результата, но я не знаю, какдобавить REF_ID мне нужно из left.csv
$right.Where( {$_.DOB -in $left.DOB -and $_.First_Name -in $left.First_Name -and $_.Last_Name -in $left.Last_Name}) |
export-csv C:\Combined.csv -notypeinformation
Результаты: Это позволяет мне делать -in, исключая User5, так как он не совпадает, но мне нужно, чтобы REF_Id вернул
First_Name,Last_Name,DOB,City,Document_Type,Filename
User1,Micah,11/01/1969,Parker,Transcript,T4IJZSYO.pdf
User1,Micah,11/01/1969,Parker,Letter,BADBADC.pdf
User1,Micah,11/01/1969,Parker,Resume,AJMLMOC.pdf
User2,Acker,05/28/1960,,Transcript,R4IKTRYN.pdf
User3,Aco,06/26/1950,,Transcript,R4IKTHMK.pdf
User4,John,05/23/1960,,Letter,R4IKTHSL.pdf
Я чувствую, что мне просто не хватает оператора, который бы поставил результаты так, как мне нужно / нужно, но я попытался добавить -join или -split в pscustomobject, но безуспешно, или счетчик + 1, чтобы он перебирал этиили вложенный объект foreach, действительно в растерянности.