53 colonnes de temps, certaines vides et d'autres remplies. Comment puis-je écrire une formule garantissant que la colonne la plus remplie est > que la colonne remplie suivante, etc.Si j'ai des centaines de lignes, chaque ligne est un bon de travail séparé, chaque ligne peut contenir jusqu'à 53 colonnes de temps, mais la plupart n'ont que certaines de ces colonnes remplies et celles entre les deux sont vides.
Dites donc pour la ligne n°1 : j'ai la colonne 1, la colonne 23 et la colonne 36 sont les seules colonnes contenant un horodatage, j'aurai besoin de savoir que 36>23 et 23>1.
Pour la ligne 2, toutes les colonnes ont des horodatages, j'aurai donc besoin de savoir que [53>52,............,2>1].
Merci
Fiona
Tableau de donnéesRe: 53 colonnes de temps, certaines vides et d'autres remplies. Comment puis-je écrire une formule garantissant que la colonne la plus remplie est > que la colonne remplie suivante, etc.Juste pour clarifier; Ils devraient tous être corrects, donc je pense que le moyen le plus simple est d'avoir une colonne de signalisation qui affichera un "1" à la fin de toute ligne où ci-dessus n'est pas le cas.
Re: 53 colonnes de temps, certaines vides et d'autres remplies. Comment puis-je écrire une formule garantissant que la colonne la plus remplie est > que la colonne remplie suivante, etc.Je ne suis pas exactement sûr que c'est ce que vous voulez, mais le script ci-dessous parcourt les colonnes et s'assure que toutes les valeurs de date augmentent par rapport à la date précédente.Sinon, il place le nom de la colonne qui a détecté une date antérieure à la date précédente.
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]
)
)
);
);