Mese della formula col()Ho una tabella dati in cui ho più date con orari. Sto cercando di cambiare tutte le date solo nel formato mese e forse anche nel formato mese-anno.
So di averlo già fatto selezionando la colonna che va alla formula e mettendo insieme Mese (Data e Ora) rispetto a quando userei la ricodifica per cambiare i numeri in Gennaio - Dicembre.
Quando provo oggi, la formula Month() sta cambiando la mia data solo in punti. Ho guardato altri post e la formula è quella che suppongo di utilizzare. Non sono sicuro del motivo per cui non ottengo il risultato atteso?
Re: Mese della formula Col()Grazie mille 
Re: Mese della formula Col()Ecco una formula che funzionerà
Substr( Format( :Date, "Monddyyyy" ), 1, 3 ) || " " || Char( Year( :Date ) )
Re: Mese della formula Col()Ciao a tutti,
Sono in grado di utilizzare molto aiuto fornito su questo forum. Cerco aiuto con la tabella allegata. La colonna 2 contiene i mesi dell'anno 2019 e 2020. Devo aggiungere l'anno accanto al mese.
Re: Mese della formula Col()If(:month <= 2 | :month >=12,
season="Winter",
:month <=5, season="Spring",
:month <=8, season="Summer",
season="Fall"
); Re: Mese della formula Col()cosa posso fare se voglio creare una colonna della stagione dal mese?
@giuliano ha scritto:
CIAO @Herrera5238 ,
Substr() è una funzione di carattere davvero utile che può selezionare parte di una stringa. Gli argomenti di Substr() sono mostrati in Aiuto > Indice di script:
Substr(string, start, length)
Quindi, 1 e 3 nell'esempio dicono a Substr() di prendere la stringa e restituire 3 caratteri a partire dalla prima posizione ordinale della stringa. Il motivo per cui funziona è che il resto della formula che ho scritto
Format( :Date Time, "Monddyyyy" )
restituisce una versione formattata della data in base al formato specificato ("Lunedìaaa"). Se dovessi utilizzare solo quella funzione senza Substr() otterresti righe con valori come: "Jan012018" .
Se desideri un mese non abbreviato, dovresti fare qualcosa di diverso. Potremmo iniziare con:
Format( :Date Time, "Date Long" )
che restituirebbe qualcosa del tipo: lunedì 1 gennaio 2018. Poiché Substr() richiede di specificare una posizione iniziale e un numero di caratteri specifici, non sarà molto utile separare questa stringa poiché i giorni della settimana sono diversi numeri di caratteri. Ma abbiamo molte altre funzioni dei personaggi a nostra disposizione! Word() è ottimo: restituirà una parola particolare in una stringa basata su un delimitatore (il valore predefinito è uno spazio, ma potrebbe anche essere una virgola, o sia una virgola che uno spazio, che è ciò di cui abbiamo bisogno). Sapendo questo, potremmo usare la seguente formula:
Word( 2, Format( :Date Time, "Date Long" ), ", " )
Il modo di leggerlo è: prendi la seconda parola (che è la 2) dalla colonna formattata della data e dell'ora (usando Date Long) e usa come delimitatore delle parole ENTRAMBI una virgola e uno spazio (nota tra virgolette che ho un virgola e poi uno spazio: ecco come dico a JMP di usarli entrambi). Verrà restituito "Gennaio" per la prima riga nel set di dati.
Ma forse vuoi anche l'anno alla fine, o all'inizio, o alcuni personaggi che intervengono. Possiamo fare tutto questo utilizzando l'operatore di concatenazione || o la funzione Concat(). Ad esempio, supponiamo di voler inserire l'anno alla fine della stringa per ogni riga. Dobbiamo ottenere l'anno in qualche modo (potrebbe essere la funzione Year() che punta a :Date Time, oppure potremmo usare di nuovo Words(), entrambi funzionerebbero). Ecco un modo per farlo:
Word( 2, Format( :Date Time, "Date Long" ), ", " ) || "-" ||
Char( Year( :Date Time ) )
che restituirà "Gennaio-2018". C'è una cosa che ho fatto qui che potresti non aspettarti. Ho avvolto Anno ( :Date Time ) nella funzione Char(). Questo è importante perché Anno ( :Date Time ) restituirà un valore NUMERICO dell'anno e la funzione Concat() (o la sua versione dell'operatore inline ||) richiede argomenti di carattere. Quindi, aggiungendo un semplice Char() attorno a Year() ci si assicura che Concat() ottenga una rappresentazione del carattere dell'anno con cui lavorare.
C'è moltissimo che puoi fare con le funzioni dei caratteri e ti incoraggio a controllare la sezione Caratteri del riferimento alla formula in Aiuto > Indice di scripting.
Spero che aiuti!
@giuliano
Re: Mese della formula Col()@Herrera5238
IO fortemente ti consigliamo di familiarizzare con lo Scripting Index.
Aiuto==>Indice degli script
Tutte le funzioni che Julian e/o io abbiamo mostrato in questa discussione sono elencate nell'Indice, definite nell'Indice e gli esempi sono/sono mostrati nell'Indice.
Re: Mese della formula Col()CIAO @Herrera5238 ,
Substr() è una funzione di carattere davvero utile che può selezionare parte di una stringa. Gli argomenti di Substr() sono mostrati in Aiuto > Indice di script:
Substr(string, start, length)
Quindi, 1 e 3 nell'esempio dicono a Substr() di prendere la stringa e restituire 3 caratteri a partire dalla prima posizione ordinale della stringa. Il motivo per cui funziona è che il resto della formula che ho scritto
Format( :Date Time, "Monddyyyy" )
restituisce una versione formattata della data in base al formato specificato ("Lunedìaaa"). Se dovessi utilizzare solo quella funzione senza Substr() otterresti righe con valori come: "Jan012018" .
Se desideri un mese non abbreviato, dovresti fare qualcosa di diverso. Potremmo iniziare con:
Format( :Date Time, "Date Long" )
che restituirebbe qualcosa del tipo: lunedì 1 gennaio 2018. Poiché Substr() richiede di specificare una posizione iniziale e un numero di caratteri specifici, non sarà molto utile separare questa stringa poiché i giorni della settimana sono diversi numeri di caratteri. Ma abbiamo molte altre funzioni dei personaggi a nostra disposizione! Word() è ottimo: restituirà una parola particolare in una stringa basata su un delimitatore (il valore predefinito è uno spazio, ma potrebbe anche essere una virgola, o sia una virgola che uno spazio, che è ciò di cui abbiamo bisogno). Sapendo questo, potremmo usare la seguente formula:
Word( 2, Format( :Date Time, "Date Long" ), ", " )
Il modo di leggerlo è: prendi la seconda parola (che è la 2) dalla colonna formattata della data e dell'ora (usando Date Long) e usa come delimitatore delle parole ENTRAMBI una virgola e uno spazio (nota tra virgolette che ho un virgola e poi uno spazio: ecco come dico a JMP di usarli entrambi). Verrà restituito "Gennaio" per la prima riga nel set di dati.
Ma forse vuoi anche l'anno alla fine, o all'inizio, o alcuni personaggi che intervengono. Possiamo fare tutto questo utilizzando l'operatore di concatenazione || o la funzione Concat(). Ad esempio, supponiamo di voler inserire l'anno alla fine della stringa per ogni riga. Dobbiamo ottenere l'anno in qualche modo (potrebbe essere la funzione Year() che punta a :Date Time, oppure potremmo usare di nuovo Words(), entrambi funzionerebbero). Ecco un modo per farlo:
Word( 2, Format( :Date Time, "Date Long" ), ", " ) || "-" ||
Char( Year( :Date Time ) )
che restituirà "Gennaio-2018". C'è una cosa che ho fatto qui che potresti non aspettarti. Ho avvolto Anno ( :Date Time ) nella funzione Char(). Questo è importante perché Anno ( :Date Time ) restituirà un valore NUMERICO dell'anno e la funzione Concat() (o la sua versione dell'operatore inline ||) richiede argomenti di carattere. Quindi, aggiungendo un semplice Char() attorno a Year() ci si assicura che Concat() ottenga una rappresentazione del carattere dell'anno con cui lavorare.
C'è moltissimo che puoi fare con le funzioni dei caratteri e ti incoraggio a controllare la sezione Caratteri del riferimento alla formula in Aiuto > Indice di scripting.
Spero che aiuti!
@giuliano
Re: Mese della formula Col()Giuliano,
Cosa ci fanno 1 e 3 in questa formula?
E se non lo volessi abbreviato o abbreviato con l'anno? vale a dire il 18 gennaio o il 2018 gennaio.
C'è un posto dove posso fare riferimento alle opzioni di formattazione disponibili?
Scrivere la formula includendo il formato mi farà risparmiare quel passaggio aggiuntivo di ricodifica.
Grazie per il consiglio!!
Re: Mese della formula Col()Jim,
Mi stavo preparando a dire che ancora non funzionava e ho preparato la mia schermata.

Ho capito qual è il problema. Stavo cercando di utilizzare la formula sulla stessa colonna a cui facevo riferimento.
Quello che avrei dovuto fare era creare una nuova colonna e aggiungere la formula qui.
Una volta fatto ciò non ho avuto problemi.
Apprezzo l'aiuto, mi sento malissimo perché era qualcosa di così semplice che mi mancava.
Re: Mese della formula Col()Grazie per aver allegato un file.
Non ho avuto problemi nell'applicare una formula alla tabella dati allegata.
La formula che ho applicato è
Month( :Date Time )
Dato che la colonna Date Time è una colonna datetime JMP corretta, sospetto che potresti avere un problema di ambito, in cui stai specificando "Date Time" e non ":Date Time".Posizionando i due punti davanti al nome della colonna, indicando a JMP di utilizzare una colonna denominata Date Time e non una variabile di memoria denominata Date Time

Re: Mese della formula Col()CIAO @Herrera5238 ,
Sul tuo set di dati questo sembrava funzionare bene per me utilizzando la seguente formula:
Month( :Date Time )
Inoltre, se intendi ricodificare per modificare i numeri dei mesi in abbreviazioni dei mesi, puoi utilizzare direttamente la seguente formula:
Substr( Format( :Date Time, "Monddyyyy" ), 1, 3 )
Ho allegato qui la tua tabella dati di esempio con quelle formule di colonna.
@giuliano
Re: Mese della formula Col()Ciao Jim,
Ho allegato la tabella dei dati. Questo è un altro articolo che ho trovato in un altro post. Quindi ho controllato le informazioni sulla colonna. e dice che il tipo di dati è numerico. Sto importando questi dati da Excel ma questo non dovrebbe essere un problema, vero? Non ricordo di aver avuto questo problema l'ultima volta che l'ho fatto, anche se direi che l'ultima volta stavo lavorando con JMP12 e non con 13.
Re: Mese della formula Col()Presumo che il problema sia che la colonna a cui fai riferimento nella funzione Month() non è una data JMP o un valore data/ora.Potrebbe essere che la colonna a cui si fa riferimento sia una colonna di stringhe di caratteri e non un valore numerico?
Se potessi allegare un esempio della tabella dati su cui stai lavorando, sarebbe utile.