créer une nouvelle colonne avec une valeur assignée par une autre valeur de colonneJ'ai une colonne avec date, et je veux créer une nouvelle colonne, j'ai besoin d'attribuer avec {A, B, C, D, E} en jugeant une autre date unique de colonne.
Jugez par la valeur de la cellule "rundate" (reportez-vous à la photo ci-dessous), veuillez aider à générer un script :
1. assignez une nouvelle colonne Cell[1] == "A", i++, si "rundate" Cell[i] = "rundate" Cell[i++], continuez d'assigner une nouvelle colonne Cell[i++]=="A".
2. si "rundate" Cell[i] < "rundate" Cell[i++], signifie que la date et l'heure ont changé, il faut attribuer une nouvelle colonne Cell[i++]=="B".
3. si "rundate" Cell[i] = "rundate" Cell[i++], continuez à affecter la nouvelle colonne Cell[i++]=="B".
4. si "rundate" Cell[i] < "rundate" Cell[i++], signifie que la date et l'heure ont changé à nouveau, il faut attribuer la colonne Cell[i++]=="C".
rundate
01/04/2020 7:18
01/04/2020 7:18
01/04/2020 7:18
01/04/2020 7:47
01/04/2020 08:13
01/04/2020 08:13
01/04/2020 08:13
01/04/2020 08:13
01/04/2020 08:13
01/04/2020 8:43
01/04/2020 8:43
01/04/2020 8:43
01/04/2020 8:43
01/04/2020 8:43
01/04/2020 8:43
01/04/2020 8:43
01/04/2020 9:13

Re : créer une nouvelle colonne avec une valeur attribuée par une autre valeur de colonneApproche légèrement différente, et je n'utilise pas de lettres car il n'y en a que 26, et j'ai souvent beaucoup plus de catégories.
Tant que la valeur de votre colonne : ID (ou heure) reste la même, la colonne du compteur reste la même, mais lorsqu'elle change, la colonne du compteur augmente de un.
If( Row() == 1,
1,
If( :ID == Lag( :ID, 1 ),
Lag( :counter, 1 ),
Lag( :counter, 1 ) + 1
)
)
Ces instructions If imbriquées peuvent être très pratiques, ou être des monstres géants, selon votre point de vue.
Acclamations,
B
Re : créer une nouvelle colonne avec une valeur attribuée par une autre valeur de colonneSalut,
Voici une solution possible qui n'utilise que des fonctions intégrées en supposant que vos valeurs de temps sont réellement codées en temps (et non en caractères)
If( Row() == 1,
"A",
If( :Column 1 == Lag( :Column 1, 1 ),
Lag( :New Column, 1 ),
Hex To Char( Char( Num( Hex( Lag( :New Column, 1 ) ) ) + 1 ) )
)
)
Il existe peut-être des moyens plus élégants d'y parvenir, mais je ne connais pas de fonction permettant de convertir facilement des caractères en code numérique et inversement.
Meilleures salutations,
TS