Conversione data Power Query L’argomento è risolto

Non è propriamente un programma di BI, ma nelle sue versioni più recenti anche Excel può fare grandi cose!

Moderatore: Utilizzo_prof_Excel

Rispondi
Avatar utente

by sal
Messaggi: 41 | Topic creati
Iscritto il: gio 23 lug 2020, 7:49
Ringraziato: 1 volta

Conversione data Power Query

Messaggio da by sal »

Ciao, ho delle estrazioni del lotto che mi rilascia la data in questo modo

Immagine

vorrei riportarla in questo modo

29/06/2023 20:30

con il VBA con questa macro
Sub Data()
Dim r, c, x, d, k, k1

For x = 2 To Cells(Rows.Count, 1).End(xlUp).Row
d = Split(Cells(x, 1), " ")
Select Case d(2)
Case "Gennaio": k1 = 1
Case "Febbraio": k1 = 2
Case "Marzo": k1 = 3
Case "Aprile": k1 = 4
Case "Maggio": k1 = 5
Case "Giugno": k1 = 6
Case "Luglio": k1 = 7
Case "Agosto": k1 = 8
Case "Settembre": k1 = 9
Case "Ottobre": k1 = 10
Case "Novembre": k1 = 11
Case "Dicembre": k1 = 12
End Select
k = d(1) & "/" & k1 & "/" & d(3) & " " & d(6)
Cells(x, 1) = CDate(Format(k, "dd/mm/yyyy hh:mm"))
Next x
End Sub
riesco a trasformare la data come desidero, però vorrei farlo fare in Power Query, in modo da non lanciare la macro dopo l'importazione dati.

ma non riesco a capire come fare.
allego anche il file

un Saluto By Sal
Allegati
MillionDay v.001.xlsm
(112.28 KiB) Scaricato 39 volte


Avatar utente

Andrea90
Messaggi: 2255 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 672 volte
Contatta:

Conversione data Power Query

Messaggio da Andrea90 »

by sal,

Non allegare file in formato xlsm o comunque contenenti macro.

Hai diverse discussioni per le quali hai ricevuto riscontro, ma ancora lasciate aperte. Prima di aprirne di nuove chiudi quelle che consideri risolte.

Per quel che riguarda il tuo problema:

Codice: Seleziona tutto

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Extracted Text After Delimiter" = Table.TransformColumns(Source, {{"Data", each Text.AfterDelimiter(_, " "), type text}}),
    #"Split Column by Delimiter" = Table.SplitColumn(#"Extracted Text After Delimiter", "Data", Splitter.SplitTextByDelimiter(" ore", QuoteStyle.Csv), {"Data.1", "Data.2"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Data.1", type date}, {"Data.2", type time}})
in
    #"Changed Type1"
Considerando nella tabella una colonna chiamata [Data] che contiene la data nel formato da te indicato.

Andrea
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link
Avatar utente

Autore del topic
by sal
Messaggi: 41 | Topic creati
Iscritto il: gio 23 lug 2020, 7:49
Ringraziato: 1 volta

Conversione data Power Query

Messaggio da by sal »

Ciao Andrea grazie per la risposta, ma come integro il tuo codice con il mio nell'editor avanzato

Codice: Seleziona tutto

let
    Origine = Web.Page(Web.Contents("https://www.millionday.cloud/archivio-estrazioni.php")),
    Data1 = Origine{1}[Data],
    #"Modificato tipo" = Table.TransformColumnTypes(Data1,{{"Data", type text}, {"Numeri estratti", Int64.Type}, {"Numeri estratti2", Int64.Type}, {"Numeri estratti3", Int64.Type}, {"Numeri estratti4", Int64.Type}, {"Numeri estratti5", Int64.Type}, {"Numeri EXTRA", Int64.Type}, {"Numeri EXTRA2", Int64.Type}, {"Numeri EXTRA3", Int64.Type}, {"Numeri EXTRA4", Int64.Type}, {"Numeri EXTRA5", Int64.Type}}),
    #"Aggiunta colonna indice" = Table.AddIndexColumn(#"Modificato tipo", "Indice", 1, 1, Int64.Type),
    #"Ordinate righe" = Table.Sort(#"Aggiunta colonna indice",{{"Indice", Order.Descending}}),
    #"Aggiunta colonna indice1" = Table.AddIndexColumn(#"Ordinate righe", "Indice.1", 1, 1, Int64.Type),
    #"Riordinate colonne" = Table.ReorderColumns(#"Aggiunta colonna indice1",{"Indice.1", "Data", "Numeri estratti", "Numeri estratti2", "Numeri estratti3", "Numeri estratti4", "Numeri estratti5", "Numeri EXTRA", "Numeri EXTRA2", "Numeri EXTRA3", "Numeri EXTRA4", "Numeri EXTRA5", "Indice"}),
    #"Rimosse colonne" = Table.RemoveColumns(#"Riordinate colonne",{"Indice"}),
    #"Sostituito valore" = Table.ReplaceValue(#"Rimosse colonne",null,0,Replacer.ReplaceValue,{"Numeri EXTRA", "Numeri EXTRA2", "Numeri EXTRA3", "Numeri EXTRA4", "Numeri EXTRA5"}),
    #"Rinominate colonne" = Table.RenameColumns(#"Sostituito valore",{{"Indice.1", "Progr."}})
in
    #"Rinominate colonne"
dove lo inserisco?

ho aggiornato i messaggi

Ciao By Sal (8-D
Avatar utente

Andrea90
Messaggi: 2255 | Topic creati
Iscritto il: dom 28 giu 2020, 19:41
Luogo: Bologna
Ringraziato: 672 volte
Contatta:

Conversione data Power Query

Messaggio da Andrea90 »

by sal,

Per il tuo problema devi avere un minimo di conoscenza di Power Query, i passaggi che ho compiuto sono tutti stati eseguiti con l'interfaccia utente, in sostanza:

Codice: Seleziona tutto

Table.TransformColumns(Source, {{"Data", each Text.AfterDelimiter(_, " "), type text}})
Rimuove dalla data tutto ciò che viene prima del primo " " (spazio) che trova.

Codice: Seleziona tutto

Table.SplitColumn(#"Extracted Text After Delimiter", "Data", Splitter.SplitTextByDelimiter(" ore", QuoteStyle.Csv), {"Data.1", "Data.2"}),
Esegue semplicemente uno split di colonna andando a cercare questa stringa: " ore"
come delimitatore.

Ora sta a te integrare i passaggi nel tuo file di lavoro.

Andrea
Se hai gradito l'aiuto che hai ricevuto considera di contribuire alle spese per il mantenimento del forum facendo una libera DONAZIONE --> Link

Ricordarsi di segnare come "RISOLTE" le discussioni per le quali si è ricevuto un feedback positivo. Per vedere come fare --> Link
Avatar utente

Autore del topic
by sal
Messaggi: 41 | Topic creati
Iscritto il: gio 23 lug 2020, 7:49
Ringraziato: 1 volta

Conversione data Power Query

Messaggio da by sal »

Ciao Andrea, Grazie ho risolto con il tuo suggerimento

Ciao By Sal
Rispondi