Concatenazione campi con indice numerico L’argomento è risolto
Moderatore: Utilizzo_prof_Excel
-
- Messaggi: 23 | Topic creati
- Iscritto il: gio 4 mag 2023, 21:14
Concatenazione campi con indice numerico
Un saluto a tutto il forum
Ho un file csv che importo in un foglio Excel. Questo file si compone di vari campi che variano da 2 a 12.
Nel primo campo c'è un ID univoco e gli altri campi sono formati da testo.
Devo combinare i vari campi con un determinato testo in ogni campo (esempio [numero=1], ) ma il numero deve aumentare per ogni campo
Column1 Column2 Column3 Column4 Column5 Column6 Column7 Column8 Column9
79940 testo1 testo2 testo3 testo4
60370 testo1 testo2 testo3 testo4 testo5
38540 testo1 testo2
76460 testo1 testo2
25130 testo1 testo2 testo3
81750 testo1 testo2 testo3 testo4 testo5
88380 testo1 testo2 testo3 testo4 testo5 testo6
83470 testo1 testo2 testo3
34800 testo1 testo2 testo3
45700 testo1 testo2 testo3 testo4
77900 testo1 testo2
----
Column1 Column2
79940 testo1[numero=1],testo2[numero=2],testo3[numero=3],testo4[numero=4]
60370 testo1[numero=1],testo2[numero=2],testo3[numero=3],testo4[numero=4],testo5[numero=5]
38540 testo1[numero=1],testo2[numero=2]
76460 testo1[numero=1],testo2[numero=2]
25130 testo1[numero=1],testo2[numero=2],testo3[numero=3]
81750 testo1[numero=1],testo2[numero=2],testo3[numero=3],testo4[numero=4],testo5[numero=5]
88380 testo1[numero=1],testo2[numero=2],testo3[numero=3],testo4[numero=4],testo5[numero=5],testo6[numero=6]
83470 testo1[numero=1],testo2[numero=2],testo3[numero=3]
34800 testo1[numero=1],testo2[numero=2],testo3[numero=3]
45700 testo1[numero=1],testo2[numero=2],testo3[numero=3],testo4[numero=4]
77900 testo1[numero=1],testo2[numero=2]
Ringrazio chiunque mi possa aiutare
Ho un file csv che importo in un foglio Excel. Questo file si compone di vari campi che variano da 2 a 12.
Nel primo campo c'è un ID univoco e gli altri campi sono formati da testo.
Devo combinare i vari campi con un determinato testo in ogni campo (esempio [numero=1], ) ma il numero deve aumentare per ogni campo
Column1 Column2 Column3 Column4 Column5 Column6 Column7 Column8 Column9
79940 testo1 testo2 testo3 testo4
60370 testo1 testo2 testo3 testo4 testo5
38540 testo1 testo2
76460 testo1 testo2
25130 testo1 testo2 testo3
81750 testo1 testo2 testo3 testo4 testo5
88380 testo1 testo2 testo3 testo4 testo5 testo6
83470 testo1 testo2 testo3
34800 testo1 testo2 testo3
45700 testo1 testo2 testo3 testo4
77900 testo1 testo2
----
Column1 Column2
79940 testo1[numero=1],testo2[numero=2],testo3[numero=3],testo4[numero=4]
60370 testo1[numero=1],testo2[numero=2],testo3[numero=3],testo4[numero=4],testo5[numero=5]
38540 testo1[numero=1],testo2[numero=2]
76460 testo1[numero=1],testo2[numero=2]
25130 testo1[numero=1],testo2[numero=2],testo3[numero=3]
81750 testo1[numero=1],testo2[numero=2],testo3[numero=3],testo4[numero=4],testo5[numero=5]
88380 testo1[numero=1],testo2[numero=2],testo3[numero=3],testo4[numero=4],testo5[numero=5],testo6[numero=6]
83470 testo1[numero=1],testo2[numero=2],testo3[numero=3]
34800 testo1[numero=1],testo2[numero=2],testo3[numero=3]
45700 testo1[numero=1],testo2[numero=2],testo3[numero=3],testo4[numero=4]
77900 testo1[numero=1],testo2[numero=2]
Ringrazio chiunque mi possa aiutare
-
- Messaggi: 2318 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 677 volte
- Contatta:
-
Autore del topic - Messaggi: 23 | Topic creati
- Iscritto il: gio 4 mag 2023, 21:14
Concatenazione campi con indice numerico
Ecco un esempio con 2 foglio:
origine e risultato voluto
origine e risultato voluto
- Allegati
-
- Esempio MondoBi.xlsx
- (13.13 KiB) Scaricato 11 volte
-
- Messaggi: 2318 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 677 volte
- Contatta:
Concatenazione campi con indice numerico
H725,
Qualcosa di simile:
Andrea
Qualcosa di simile:
Codice: Seleziona tutto
let
Source = Excel.CurrentWorkbook(){[Name="Tabella1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", Int64.Type}, {"Column2", type text}, {"Column3", type text}, {"Column4", type text}, {"Column5", type text}, {"Column6", type text}, {"Column7", type text}, {"Column8", type any}, {"Column9", type any}}),
#"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 0, 1, Int64.Type),
#"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Added Index", {"Column1", "Index"}, "Attribute", "Value"),
#"Grouped Rows" = Table.Group(#"Unpivoted Columns", {"Column1"}, {{"TempTab", each Table.AddIndexColumn(_, "Index_Row", 1, 1), type table [Column1=nullable number, Index=number, Attribute=text, Value=text]}}),
#"Removed Other Columns" = Table.SelectColumns(#"Grouped Rows",{"TempTab"}),
#"Expanded TempTab" = Table.ExpandTableColumn(#"Removed Other Columns", "TempTab", {"Column1", "Index", "Attribute", "Value", "Index_Row"}, {"Column1", "Index", "Attribute", "Value", "Index_Row"}),
#"Added Prefix" = Table.TransformColumns(#"Expanded TempTab", {{"Index_Row", each "[numero=" & Text.From(_, "it-IT"), type text}}),
#"Added Suffix" = Table.TransformColumns(#"Added Prefix", {{"Index_Row", each _ & "]", type text}}),
#"Merged Columns" = Table.CombineColumns(#"Added Suffix",{"Value", "Index_Row"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Merged"),
#"Pivoted Column" = Table.Pivot(#"Merged Columns", List.Distinct(#"Merged Columns"[Attribute]), "Attribute", "Merged"),
#"Merged Columns1" = Table.CombineColumns(#"Pivoted Column",{"Column2", "Column3", "Column4", "Column5", "Column6", "Column7"},Combiner.CombineTextByDelimiter(",", QuoteStyle.None),"Result"),
#"Added Custom" = Table.AddColumn(#"Merged Columns1", "Custom", each Text.Trim([Result], {",", " "})),
#"Removed Other Columns1" = Table.SelectColumns(#"Added Custom",{"Column1", "Custom"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Other Columns1",{{"Column1", "Idx"}, {"Custom", "Text"}}),
#"Changed Type1" = Table.TransformColumnTypes(#"Renamed Columns",{{"Text", type text}})
in
#"Changed Type1"
-
Autore del topic - Messaggi: 23 | Topic creati
- Iscritto il: gio 4 mag 2023, 21:14
Concatenazione campi con indice numerico
Soluzione quasi perfetta, ma alla riga 3 e 13 vengono indicate n. colonne ma il file che viene importato, capita di avere da 2 a 12 colonne e il comando deve essere continuamente variato per ogni file. C'è la possibilità di renderlo dinamico?
-
- Messaggi: 2318 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 677 volte
- Contatta:
Concatenazione campi con indice numerico
H725,
Il codice che ti ho fornito riporta esattamente il risultato da te desiderato, indicato nel foglio "Risultato".
Andrea
Il codice che ti ho fornito riporta esattamente il risultato da te desiderato, indicato nel foglio "Risultato".
Non ho capito, riformula la frase o fai un esempio pratico.
Andrea
-
- Messaggi: 890 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:03
- Luogo: San Giovanni in Persiceto (BO)
- Ringraziato: 325 volte
- Contatta:
Concatenazione campi con indice numerico
Mi inserisco: credo intenda dire che nei passaggi a riga 3 (modificato tipo, che forse si può eliminare) e 13 (combina colonne), viene indicato un numero particolare di colonne (i nomi sono hard-coded). Ma il file di origine può variare nel numero di colonne
Enrico Galli
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione
Link utili: I nostri tutorial | Come inserire: Immagini - Codice - Risolto
Se il forum ti è stato utile, considera di supportarlo con una libera donazione
-
- Messaggi: 2318 | Topic creati
- Iscritto il: dom 28 giu 2020, 19:41
- Luogo: Bologna
- Ringraziato: 677 volte
- Contatta:
Concatenazione campi con indice numerico
Grazie Enrico Galli,
se la questione sollevata dall'utente è quella allora penso che per renderla dinamica possa bastare qualcosa come:
Andrea
se la questione sollevata dall'utente è quella allora penso che per renderla dinamica possa bastare qualcosa come:
Codice: Seleziona tutto
let
Source = Excel.CurrentWorkbook(){[Name="Tabella1"]}[Content],
#"Added Index" = Table.AddIndexColumn(Source, "Index", 0, 1, Int64.Type),
#"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Added Index", {"Column1", "Index"}, "Attribute", "Value"),
#"Grouped Rows" = Table.Group(#"Unpivoted Columns", {"Column1"}, {{"TempTab", each Table.AddIndexColumn(_, "Index_Row", 1, 1), type table [Column1=nullable number, Index=number, Attribute=text, Value=text]}}),
#"Removed Other Columns" = Table.SelectColumns(#"Grouped Rows",{"TempTab"}),
#"Expanded TempTab" = Table.ExpandTableColumn(#"Removed Other Columns", "TempTab", {"Column1", "Index", "Attribute", "Value", "Index_Row"}, {"Column1", "Index", "Attribute", "Value", "Index_Row"}),
#"Added Prefix" = Table.TransformColumns(#"Expanded TempTab", {{"Index_Row", each "[numero=" & Text.From(_, "it-IT"), type text}}),
#"Added Suffix" = Table.TransformColumns(#"Added Prefix", {{"Index_Row", each _ & "]", type text}}),
#"Merged Columns" = Table.CombineColumns(#"Added Suffix",{"Value", "Index_Row"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Merged"),
#"Pivoted Column" = Table.Pivot(#"Merged Columns", List.Distinct(#"Merged Columns"[Attribute]), "Attribute", "Merged"),
ColNames = List.RemoveFirstN(Table.ColumnNames(#"Pivoted Column"), 2),
#"Merged Columns1" = Table.CombineColumns(#"Pivoted Column",ColNames,Combiner.CombineTextByDelimiter(",", QuoteStyle.None),"Result"),
#"Added Custom" = Table.AddColumn(#"Merged Columns1", "Custom", each Text.Trim([Result], {",", " "})),
#"Removed Other Columns1" = Table.SelectColumns(#"Added Custom",{"Column1", "Custom"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Other Columns1",{{"Column1", "Idx"}, {"Custom", "Text"}}),
#"Changed Type1" = Table.TransformColumnTypes(#"Renamed Columns",{{"Text", type text}})
in
#"Changed Type1"
-
Autore del topic - Messaggi: 23 | Topic creati
- Iscritto il: gio 4 mag 2023, 21:14