Ultimo valore di un campo delemitato da / L’argomento è risolto
Moderatore: Utilizzo_prof_Excel
-
- Messaggi: 23 | Topic creati
- Iscritto il: gio 4 mag 2023, 21:14
Ultimo valore di un campo delemitato da /
Un saluto al Forum.
Avrei bisogno di un aiuto per esportare da vari campi, solo l'ultimo valore di una stringa delimitato da /
esempio:
clarabella/topolino/paperino/minni
paperoga/clarabella
pluto/clarabella/paperoga/pippo
solo la stringa rossa, ulteriore difficoltà è che ogni record può avere uno o più /.
Allego file di esempio, grazie per l'aiuto
Avrei bisogno di un aiuto per esportare da vari campi, solo l'ultimo valore di una stringa delimitato da /
esempio:
clarabella/topolino/paperino/minni
paperoga/clarabella
pluto/clarabella/paperoga/pippo
solo la stringa rossa, ulteriore difficoltà è che ogni record può avere uno o più /.
Allego file di esempio, grazie per l'aiuto
- Allegati
-
- Esempio MondoBi.xlsx
- (13.94 KiB) Scaricato 15 volte
-
- Messaggi: 2327 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 680 volte
- Contatta:
Ultimo valore di un campo delemitato da /
H725,
Prima di aprire nuove discussioni dovresti chiudere quelle precedenti per le quali hai ricevuto un riscontro positivo (mettendo "Risolto").
Se non sai come fare leggi qui: viewtopic.php?t=127
Andrea
Prima di aprire nuove discussioni dovresti chiudere quelle precedenti per le quali hai ricevuto un riscontro positivo (mettendo "Risolto").
Se non sai come fare leggi qui: viewtopic.php?t=127
Andrea
-
Autore del topic - Messaggi: 23 | Topic creati
- Iscritto il: gio 4 mag 2023, 21:14
Ultimo valore di un campo delemitato da /
Sorry, non avevo capito. Ho messo RISOLTO alla discussione precedente
-
- Messaggi: 2327 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 680 volte
- Contatta:
Ultimo valore di un campo delemitato da /
H725,
Puoi usare la logica di trasformazione applicata nella tua precedente discussione.
Per ottenere da una stringa di testo l'ultima porzione in base ad un delimitatore puoi utilizzare una sintassi simile:
Text.AfterDelimiter() lo puoi ottenere direttamente dall'interfaccia di Power Query Editor. L'unica cosa è che devi aprire il menu "Avanzate" nella finestra che apparirà e selezionare l'opzione "From the end of the input" (io uso la versione inglese).
Il pulsante lo trovi all'interno della sezione "Trasforma" ... trovi il menu "Estrai"... e da lì ci sarà l'opzione "Testo prima di delimitatore". Una volta cliccato il pulsante si avvierà la finestra che ti dicevo dal quale dovrai selezionare l'opzione avanzata ed inserire "/" come delimitatore.
Andrea
Puoi usare la logica di trasformazione applicata nella tua precedente discussione.
Per ottenere da una stringa di testo l'ultima porzione in base ad un delimitatore puoi utilizzare una sintassi simile:
Codice: Seleziona tutto
Text.AfterDelimiter([Value], "/", {0, RelativePosition.FromEnd})
Il pulsante lo trovi all'interno della sezione "Trasforma" ... trovi il menu "Estrai"... e da lì ci sarà l'opzione "Testo prima di delimitatore". Una volta cliccato il pulsante si avvierà la finestra che ti dicevo dal quale dovrai selezionare l'opzione avanzata ed inserire "/" come delimitatore.
Andrea
-
Autore del topic - Messaggi: 23 | Topic creati
- Iscritto il: gio 4 mag 2023, 21:14
Ultimo valore di un campo delemitato da /
Ho trovato questa soluzione:
Codice: Seleziona tutto
// Tabella1
let
Origine = Excel.CurrentWorkbook(){[Name="Tabella1"]}[Content],
#"Stringhe Divise" = Table.TransformColumns(Origine, {{"Column2", each Text.Split(_, "/")}, {"Column3", each Text.Split(_, "/")}, {"Column4", each Text.Split(_, "/")}, {"Column5", each Text.Split(_, "/")}, {"Column6", each Text.Split(_, "/")}, {"Column7", each Text.Split(_, "/")}}),
#"Ultima Parte Estratta" = Table.TransformColumns(#"Stringhe Divise", {{"Column2", each List.Last(_)}, {"Column3", each List.Last(_)}, {"Column4", each List.Last(_)}, {"Column5", each List.Last(_)}, {"Column6", each List.Last(_)}, {"Column7", each List.Last(_)}}),
#"Modificato tipo" = Table.TransformColumnTypes(#"Ultima Parte Estratta",{{"Column1", Int64.Type}, {"Column2", type text}, {"Column3", type text}, {"Column4", type text}, {"Column5", type text}, {"Column6", type text}, {"Column7", type text}})
in
#"Modificato tipo"
-
- Messaggi: 2327 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 680 volte
- Contatta:
Ultimo valore di un campo delemitato da /
H725,
La soluzione che hai applicato non è dinamica nel momento in cui avrai un numero di colonne diverso da quello da te indicato.
Meglio ricorrere ad un operazione di unpivot, eseguire la trasformazione, e poi riportare il tutto in colonna. Che è poi la soluzione applicata la volta precedente.
Andrea
La soluzione che hai applicato non è dinamica nel momento in cui avrai un numero di colonne diverso da quello da te indicato.
Meglio ricorrere ad un operazione di unpivot, eseguire la trasformazione, e poi riportare il tutto in colonna. Che è poi la soluzione applicata la volta precedente.
Andrea
-
Autore del topic - Messaggi: 23 | Topic creati
- Iscritto il: gio 4 mag 2023, 21:14
Ultimo valore di un campo delemitato da /
Hai ragione, molto meglio la tua soluzione:
Codice: Seleziona tutto
// Tabella2
let
Origine = Excel.CurrentWorkbook(){[Name="Tabella1"]}[Content],
#"Testo estratto dopo il delimitatore" = Table.TransformColumns(Origine, {{"Column2", each Text.AfterDelimiter(_, "/", {0, RelativePosition.FromEnd}), type text}, {"Column3", each Text.AfterDelimiter(_, "/", {0, RelativePosition.FromEnd}), type text}, {"Column4", each Text.AfterDelimiter(_, "/", {0, RelativePosition.FromEnd}), type text}, {"Column5", each Text.AfterDelimiter(_, "/", {0, RelativePosition.FromEnd}), type text}, {"Column6", each Text.AfterDelimiter(_, "/", {0, RelativePosition.FromEnd}), type text}, {"Column7", each Text.AfterDelimiter(_, "/", {0, RelativePosition.FromEnd}), type text}})
in
#"Testo estratto dopo il delimitatore"
-
- Messaggi: 2327 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 680 volte
- Contatta:
Ultimo valore di un campo delemitato da /
H725,
Diciamo che il problema delle colonne fisse rimane. Hai cambiato solo la formula per estrarre il testo.
Andrea
Diciamo che il problema delle colonne fisse rimane. Hai cambiato solo la formula per estrarre il testo.
Andrea
-
Autore del topic - Messaggi: 23 | Topic creati
- Iscritto il: gio 4 mag 2023, 21:14
Ultimo valore di un campo delemitato da /
Per quello creerò una Lista di nomi delle Colonne:
che userò nel passaggio successivo, grazie
Codice: Seleziona tutto
ColNames = List.RemoveFirstN(Table.ColumnNames(#"Passaggio Precedente"), 2)
-
- Messaggi: 2327 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 680 volte
- Contatta:
Ultimo valore di un campo delemitato da /
H725,
Meglio cosi:
Andrea
Meglio cosi:
Codice: Seleziona tutto
let
Source = Excel.CurrentWorkbook(){[Name="Tabella1"]}[Content],
#"Added Index" = Table.AddIndexColumn(Source, "Index", 0, 1, Int64.Type),
#"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Added Index", {"Column1", "Index"}, "Attribute", "Value"),
#"Extracted Text After Delimiter" = Table.TransformColumns(#"Unpivoted Other Columns", {{"Value", each Text.AfterDelimiter(_, "/", {0, RelativePosition.FromEnd}), type text}}),
#"Pivoted Column" = Table.Pivot(#"Extracted Text After Delimiter", List.Distinct(#"Extracted Text After Delimiter"[Attribute]), "Attribute", "Value"),
#"Removed Columns" = Table.RemoveColumns(#"Pivoted Column",{"Index"})
in
#"Removed Columns"