crea una nuova colonna con il valore assegnato da un altro valore di colonnaHo una colonna con data e voglio creare una nuova colonna, devo assegnare con {A, B, C, D, E} giudicando un'altra colonna data univoca.
Giudica in base al valore della cella "rundate" (fare riferimento alla foto sotto), gentilmente aiuto su come generare uno script:
1. assegna nuova colonna Cell[1] == "A", i++, se "rundate" Cell[i] = "rundate" Cell[i++], continua ad assegnare nuova colonna Cell[i++]=="A".
2. se "rundate" Cell[i] < "rundate" Cell[i++], significa data e ora modificata, è necessario assegnare una nuova colonna Cell[i++]=="B".
3. se "rundate" Cell[i] = "rundate" Cell[i++], continua ad assegnare una nuova colonna Cell[i++]=="B".
4. se "rundate" Cell[i] < "rundate" Cell[i++], significa che la data e l'ora sono state nuovamente modificate, è necessario assegnare la colonna Cell[i++]=="C".
data di esecuzione
01/04/2020 7:18
01/04/2020 7:18
01/04/2020 7:18
4/1/2020 7:47
01/04/2020 8:13
01/04/2020 8:13
01/04/2020 8:13
01/04/2020 8:13
01/04/2020 8:13
4/1/2020 8:43
4/1/2020 8:43
4/1/2020 8:43
4/1/2020 8:43
4/1/2020 8:43
4/1/2020 8:43
4/1/2020 8:43
01/04/2020 9:13

Re: creare una nuova colonna con il valore assegnato da un altro valore di colonnaApproccio leggermente diverso e non sto usando le lettere perché ce ne sono solo 26 e spesso ho molte più categorie.
Finché il valore nella colonna :ID (o ora) rimane lo stesso, la colonna del contatore rimane la stessa, ma quando cambia, la colonna del contatore aumenta di uno.
If( Row() == 1,
1,
If( :ID == Lag( :ID, 1 ),
Lag( :counter, 1 ),
Lag( :counter, 1 ) + 1
)
)
Queste istruzioni If annidate possono essere davvero utili, o mostri giganti, a seconda del tuo punto di vista.
Saluti,
B
Re: creare una nuova colonna con il valore assegnato da un altro valore di colonnaCiao,
Ecco una possibile soluzione che utilizza solo funzioni integrate presupponendo che i valori temporali siano effettivamente codificati come tempi (e non caratteri)
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 ) )
)
)
Potrebbero esserci modi più eleganti per ottenere ciò, ma non sono a conoscenza di una funzione che consenta una facile conversione di caratteri in codice numerico e viceversa
Distinti saluti,
TS