sostituzioni multiple descrizioni su righe 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

mb63
Messaggi: 123 | Topic creati
Iscritto il: gio 16 lug 2020, 15:09
Ringraziato: 5 volte

sostituzioni multiple descrizioni su righe

Messaggio da mb63 »

buon pomeriggio
io ho un foglio con 3 tabelle, ed ognuna di loro rappresenta una regione
partendo dal presupposto che ogni foglio non è rinominato ma si chiamano semplicemente foglio1 , foglio2, foglio3, io li unisco e poi faccio 3 righe di sostituzione come sotto indicato

Codice: Seleziona tutto

 #"Sostituito valore" = Table.ReplaceValue(#"Tabella Content espansa","Tabella1","piemonte",Replacer.ReplaceText,{"Name"}),
    #"Sostituito valore1" = Table.ReplaceValue(#"Sostituito valore","Tabella2","liguria",Replacer.ReplaceText,{"Name"}),
    #"Sostituito valore2" = Table.ReplaceValue(#"Sostituito valore1","Tabella3","valle d'aosta",Replacer.ReplaceText,{"Name"}),
è possibile inserire un comando replace dove posso scrivere "Tabella1" "piemonte", "Tabella2" "liguria", "Tabella3" "valled'aosta"

certo il top sarebbe rinominare tutti i fogli e far prendere il nome dal foglio stesso ma questo è fantascienza per me

Grazie
Allegati
rinomina.xlsx
(21.64 KiB) Scaricato 15 volte


Avatar utente

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

sostituzioni multiple descrizioni su righe

Messaggio da Andrea90 »

mb63,

Non fai prima a rinominare le tabelle con già il nome che ti serve? Invece che chiamarle come Tabella1, Tabella2, ecc...

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

Autore del topic
mb63
Messaggi: 123 | Topic creati
Iscritto il: gio 16 lug 2020, 15:09
Ringraziato: 5 volte

sostituzioni multiple descrizioni su righe

Messaggio da mb63 »

Ok
Ma poi come faccio a far prendere il nome del foglio
Infatti era la seconda domanda


certo il top sarebbe rinominare tutti i fogli e far prendere il nome dal foglio stesso ma questo è fantascienza per me

....

Grazie
Avatar utente

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

sostituzioni multiple descrizioni su righe

Messaggio da Andrea90 »

mb63,

Io ho suggerito di modificare il nome delle tabelle, non dei fogli… altrimenti se ti è più semplice usa una tabella di transcodifica di appoggio .. dove in una colonna avrai il nome della tabella, e nell’altra il nome che vorrai assegnarli .. e poi con un merge di query avrai il tuo nome desiderato per ciascuna riga.

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

Autore del topic
mb63
Messaggi: 123 | Topic creati
Iscritto il: gio 16 lug 2020, 15:09
Ringraziato: 5 volte

sostituzioni multiple descrizioni su righe

Messaggio da mb63 »

Andrea90 ha scritto: sab 16 lug 2022, 20:35 mb63,

Io ho suggerito di modificare il nome delle tabelle, non dei fogli… altrimenti se ti è più semplice usa una tabella di transcodifica di appoggio .. dove in una colonna avrai il nome della tabella, e nell’altra il nome che vorrai assegnarli .. e poi con un merge di query avrai il tuo nome desiderato per ciascuna riga.

Andrea
1000 grazie ho optato per l'opzione rinomina tabella è meno laboriosa e più semplice da gestire

dichiaro risolto il problema anche se ero curioso di sapere se esiste un metodo per scrivere una stringa di codice in cui rinominare più tabelle con nomi differenti

Alla prossima e buon fine settimana
Avatar utente

ggratis
Messaggi: 16 | Topic creati
Iscritto il: mar 14 lug 2020, 21:39
Luogo: Lecce-Pisa
Ringraziato: 5 volte

sostituzioni multiple descrizioni su righe

Messaggio da ggratis »

mb63 ha scritto: sab 16 lug 2022, 22:59 anche se ero curioso di sapere se esiste un metodo per scrivere una stringa di codice in cui rinominare più tabelle con nomi differenti
Per esercizio ho provato a dare seguito ai vari suggerimenti:
Soluzione1 (ho volutamente evitato di creare una tabella nella cartella)

Codice: Seleziona tutto

let
    TabTranscodifica= Table.FromRecords(
    {
    [ID = 1, Tabella= "Tabella1", Regione = "Piemonte"],
    [ID = 2, Tabella= "Tabella2", Regione = "Liguria"],
    [ID = 3, Tabella= "Tabella3", Regione = "Valle d'Aosta"]
    }),
    Origine = Excel.CurrentWorkbook(),
    NoRiepilogo = Table.SelectRows(Origine, each ([Name] <> "riepilogo_voti")),
    TabRiepilogoTabelle = Table.ExpandTableColumn(NoRiepilogo, "Content", {"nome", "voto"}, {"Nome", "Voto"}),
    TabRiepilogo=Table.SelectColumns(Table.ExpandTableColumn(Table.NestedJoin(TabRiepilogoTabelle , {"Name"}, TabTranscodifica, {"Tabella"}, "TabTranscodifica", JoinKind.LeftOuter), "TabTranscodifica", {"Regione"}, {"Regione"}),{"Nome", "Voto", "Regione"}),
    RimosseRigheVuote = Table.SelectRows(TabRiepilogo, each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null})))
in
    RimosseRigheVuote
Soluzione2

Codice: Seleziona tutto

let
    Origine = Excel.CurrentWorkbook(),
    NoRiepilogo = Table.SelectRows(Origine, each ([Name] <> "riepilogo_voti")),
    TabRiepilogoTabelle = Table.ExpandTableColumn(NoRiepilogo, "Content", {"nome", "voto"}, {"Nome", "Voto"}),
    TabRiepilogo  = Table.RemoveColumns(Table.AddColumn(TabRiepilogoTabelle, "Regione", each if [Name] = "Tabella1" then "Piemonte" else if [Name] = "Tabella2" then "Liguria" else if [Name] = "Tabella3" then "Valle D'Aosta" else null, type text),{"Name"}),
    RigheVuoteRimosse = Table.SelectRows(TabRiepilogo, each not List.IsEmpty(List.RemoveMatchingItems(Record.FieldValues(_), {"", null})))
in
    RigheVuoteRimosse
:wave:
Rispondi