53 Zeitspalten, einige leer, andere gefüllt. Wie schreibe ich eine Formel, die sicherstellt, dass die höchste gefüllte Spalte > als die nächste gefüllte Spalte ist usw.Wenn ich Hunderte von Zeilen habe, ist jede Zeile ein separates Arbeitsticket, jede Zeile kann bis zu 53 Zeitspalten ausgefüllt haben, aber die meisten haben nur einige dieser Spalten ausgefüllt und die dazwischen sind leer.
Sagen wir für Zeile 1: Ich habe Spalte 1, Spalte 23 und Spalte 36 sind die einzigen Spalten, die einen Zeitstempel enthalten, ich muss wissen, dass 36>23 und 23>1 sind.
Für Zeile #2 haben alle Spalten Zeitstempel, daher muss ich wissen, dass [53>52,............,2>1].
Dankeschön
Fiona
DatentabelleBetreff: 53 Zeitspalten, einige leer und andere gefüllt. Wie schreibe ich eine Formel, die sicherstellt, dass die höchste gefüllte Spalte > als die nächste gefüllte Spalte ist usw.Nur um klarzustellen; Sie sollten alle korrekt sein, daher denke ich, dass der einfachste Weg darin besteht, eine Markierungsspalte zu verwenden, die am Ende jeder Zeile eine "1" anzeigt, wo oben nicht der Fall ist.
Betreff: 53 Zeitspalten, einige leer und andere gefüllt. Wie schreibe ich eine Formel, die sicherstellt, dass die höchste gefüllte Spalte > als die nächste gefüllte Spalte ist usw.Ich bin mir nicht ganz sicher, ob dies das ist, was Sie wollen, aber das folgende Skript scannt die Spalten und stellt sicher, dass alle Datumswerte gegenüber dem vorherigen Datum steigen.Wenn nicht, wird der Name der Spalte platziert, die ein früheres Datum als das vorherige Datum erkannt hat.
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]
)
)
);
);