数百の行がある場合、各行は個別の作業チケットであり、各行には最大53の時間列を入力できますが、ほとんどの場合、これらの列の一部のみが入力され、その間の列は空白になります。
したがって、行#1の場合、列1、列23、列36だけがタイムスタンプを含む列であるとしましょう。36> 23と23> 1であることを知っておく必要があります。
行#2の場合、すべての列にタイムスタンプがあるため、[53> 52、............、2> 1]であることを知っておく必要があります。
ありがとうございました
フィオナ
明確にするために;それらはすべて正しいはずなので、最も簡単な方法は、上記が当てはまらない行の最後に「1」を表示するフラグ付きの列を作成することだと思います。
これが目的であるかどうかは正確にはわかりませんが、以下のスクリプトは列全体をスキャンして、すべての日付値が前の日付から増加していることを確認します。そうでない場合は、前の日付よりも前の日付を検出した列の名前を配置します。
Names Default To Here( 1 );
dt = Current Data Table();
If( Try( dt:flag << get name, "" ) == "",
dt << New Column( "Flag", Character )
);
For( rowNum = 1, rowNum <= N Rows( dt ), rowNum++,
For( startCol = 1, startCol <= N Cols( dt ), startCol++,
If( Is Missing( Column( startCol )[rowNum] ) == 0,
holdVal = Column( startCol )[rowNum];
Break();
)
);
For( col = startCol + 1, col <= N Cols( dt ) - 1, col++,
If( Is Missing( Column( Col )[rowNum] ) == 0,
If( Column( Col )[rowNum] < holdVal,
dt:Flag[rowNum] = (Column( Col )) << get name;
holdVal = Column( col )[rowNum];
Break();
,
holdVal = Column( Col )[rowNum]
)
)
);
);