PowerShell中的Vlookup
我需要这个PowerShell中的Vlookup,powershell,Powershell,我需要这个vlookup代码才能在PowerShell中工作 =VLOOKUP(A1,File_2.csv!$B:$C,2,false) 基本上,我有2个CSV,我需要从文件_2.CSV(第2列)中的特定列检索数据,并将其插入文件_1.CSV中的新列 文件_1.csv ID NAME --- ------ 1 Alpha 2 Bravo 3 Charlie ID STATUS --- ------- 1 Active 2 Inactive 3 Ac
vlookup
代码才能在PowerShell中工作
=VLOOKUP(A1,File_2.csv!$B:$C,2,false)
基本上,我有2个CSV,我需要从文件_2.CSV(第2列)中的特定列检索数据,并将其插入文件_1.CSV中的新列
文件_1.csv
ID NAME
--- ------
1 Alpha
2 Bravo
3 Charlie
ID STATUS
--- -------
1 Active
2 Inactive
3 Active
目前我得到的结果是:
ID NAME STATUS
--- ------ -------
1 Alpha #NAME?
2 Bravo #NAME?
3 Charlie #NAME?
ID名称状态
--- ------ -------
1字母名称?
2好极了,你叫什么名字?
3查理的名字?
但是,当我在Excel中手动输入
vlookup
公式时,它工作得非常完美。不确定我哪里弄错了。将一个CSV读入将ID映射到值的哈希表:
$data = @{}
Import-Csv 'File_2.csv' | ForEach-Object { $data[$_.ID] = $_.STATUS }
然后使用将这些值作为新字段添加到其他CSV的数据中:
Import-Csv 'File_1.csv' |
Select-Object *, @{n='STATUS';e={if ($data.Contains($_.ID)) {$data[$_.ID]} else {'N/A'}}}
如果需要将结果返回Csv,请将结果导入导出Csv。后续问题-如果没有任何匹配项,如何添加默认备注(例如“N/a”)
$data = @{}
Import-Csv 'File_2.csv' | ForEach-Object { $data[$_.ID] = $_.STATUS }
Import-Csv 'File_1.csv' |
Select-Object *, @{n='STATUS';e={if ($data.Contains($_.ID)) {$data[$_.ID]} else {'N/A'}}}