2016-11-21 12 views
1

私はF5 LTMデバイスの統計情報を収集してExcelで開くPowerShellスクリプトを作成しています。しかし、そこに私は人間が読めるdatetimeに変更したいタイムスタンプの列を取得しています。 Excelの式=(A2/86400)+25569+(-5/24)を使って手動で変更してから、セルを日付に変更することができました。その後、私はそれを人間が読める日時に変更することができました。Excelタイムスタンプ列全体をdatetimeに変換する

# Allocate a new Query Object 
    $Query = New-Object -TypeName iControl.SystemStatisticsPerformanceStatisticQuery 
    $Query.object_name = "throughput" 
    $Query.start_time = 1479686400 
    $Query.end_time = 1480327200 
    $Query.interval = 0 
    $Query.maximum_rows = 0 
+0

日付列の後に新しい列を挿入し、新しい列のすべてのセルに数式を入力し、値を左にコピーし、列をコピーして値を貼り付け、書式設定してから最初の列を削除します。これらの手順をマクロとして記録し、それをPowerShellに変換します(翻訳のガイドラインについては、[ここ](http://sdb.planetcobalt.net/vba2psh.shtml)を参照してください)。 –

+0

ありがとうございます。私はこれを試しましたが、式を追加すると、列bのすべてのセルに同じ値がペーストされます。 =(A2/86400)+25569 +( - 5/24)例では、列Bの下のすべてのセルでA2値を使用します。シェルスクリプトを使用してExcelのドラッグ機能を使用する方法はありますか? ? – user2769144

+0

シェルスクリプトはまったく別のものです。セルの自動充填を記録できるはずです。それ以外の場合は、各セルにインクリメントされたインデックスを持つ数式を入れるループに移ります。 –

答えて

1

あなたはすべてのセルを反復処理し、それらのそれぞれに数式を入力するつもりならかなりの時間を取るために起こっている400個のセルに数式を入力すると次のように

私のスクリプトです。 Excelのオートフィルメカニズムを使用する方がはるかに高速です。

$ws.Range("B2").Formula = "=(A2/86400)+25569+(-5/24)" 
$ws.Range("B2").AutoFill($ws.Range("B2:B400"), 0) 
+0

ありがとうAnsgar、それは働いた。私のスクリプトを見ると、私は開始時刻と終了時刻を「タイムスタンプ」として渡しています。そのためには、手動で日付計算機の時刻をタイムスタンプに変換してから、スクリプト実行前に貼り付けなければなりません。可能でしょうか?このスクリプトを実行すると、過去7日間のデータがフェッチされますか?たとえば、このスクリプトを毎週月曜日の朝に実行して、先週の月曜日から日曜日の午前12時までのデータを取得するか、スクリプトを実行するまでの時間を指定します。 – user2769144

+0

定期的なタイムスタンプをエポックに変換するには[この質問] ://stackoverflow.com/q/4192971/1630171)。 –

関連する問題