如果我有數百行,每行都是一個單獨的工作票,每行最多可以填充 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]
)
)
);
);