Найти значение предыдущей ячейки в CSV - PullRequest
0 голосов
/ 09 апреля 2019

Я пытаюсь найти значение ячейки предыдущей ячейки в том же столбце в CSV ниже. Я получу дату, получу соответствующее имя и найду предыдущее значение ячейки в столбце.

startDate  endDate     Name
20-03-2019 30-03-2019  marchLogs
01-03-2019 15-03-2019  aprilLogs

$dt = Get-Date
Import-CSV filepath.csv
foreach($item in $csv)
{
$Start = $($item.StartDate)
$End = $($item.EndDate)
if($dt -gt $Start -and $dt -lt $End )
{
$finalName = $($item.Name)
# $previousName 
}
}

В приведенном выше коде у меня будет $final имя в качестве aprilLogs, теперь мне нужно предыдущее имя marchLogs в новом значении $previousName.

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019
$dt = Get-Date
$csv = Import-Csv "filepath.csv"
foreach($item in $csv)
{
    $Start = $($item.StartDate)
    $End = $($item.EndDate)
    if($dt -gt $Start -and $dt -lt $End )
    {
        $index = $csv.Indexof($item)
        $previous = $csv[$index-1]
    }
}
$previous.Name
0 голосов
/ 09 апреля 2019

Есть несколько способов:

  • Доступ к данным CSV по индексу, если выполнено условие, использовать предыдущий индекс
  • используя ваше имя и сохраняя предыдущую запись, если условие выполнено ...

Или:

$finalName = (Import-CSV filepath.csv | 
 Where {[datetime]::parseexact($_.EndDate,"dd-MM-yyyy",[CultureInfo]::InvariantCulture) -lt (Get-Date)} | 
  Sort {[datetime]::parseexact($_.EndDate,"dd-MM-yyyy",[CultureInfo]::InvariantCulture)} | Select -Last 1).Name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...