Linguaggio M: aggiungere prefisso di lunghezza variabile ad un campo 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

alex77
Messaggi: 160 | Topic creati
Iscritto il: sab 24 ott 2020, 23:04
Luogo: Treviso
Ringraziato: 11 volte

Linguaggio M: aggiungere prefisso di lunghezza variabile ad un campo

Messaggio da alex77 »

Ciao a tutti,
ho necessità di aggiungere un prefisso ad un campo ("CodFase") con degli "0" ripetuti. Il risultato deve essere una stringa di 5 caratteri. Il numero di è definito dalla lunghezza iniziale di "CodFase", quindi se CodFase è ad esempio "10" devo ottenere "00010" e quindi ripetere 3 volte "0", se CodFase è 100 devo ottenere "00100" e quindi ripetere 2 volte "0".
Ho provato con il codice qui sotto:

Codice: Seleziona tutto

  #"Inserita funzione lunghezza testo" = Table.AddColumn(#"Modificato tipo3", "Lunghezza", each Text.Length([CodFase]), Int64.Type),
    #"Prefisso aggiunto" = Table.TransformColumns(#"Inserita funzione lunghezza testo", {{"CodFase", each Text.Repeat("0",5 - [Lunghezza]) & _, type text}})
Ma ricevo questo errore:
Expression.Error: Non è possibile applicare l'accesso al campo al tipo Text.
Dettagli:
Value=20
Key=Lunghezza

In verità invece di creare la colonna con la lunghezza, inizialmente avevo cercato di usare direttamente Text.Lenght([CodFase]) annidata in Text.Repeat, ma sempre errore ricevo. Penso sia proprio un errore di "concetto" di come funziona M, ma... da solo non ci arrivo.

Grazie per un eventuale aiuto


Avatar utente

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

Linguaggio M: aggiungere prefisso di lunghezza variabile ad un campo

Messaggio da Andrea90 »

alex77,

Usa Text.PadStart

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
alex77
Messaggi: 160 | Topic creati
Iscritto il: sab 24 ott 2020, 23:04
Luogo: Treviso
Ringraziato: 11 volte

Linguaggio M: aggiungere prefisso di lunghezza variabile ad un campo

Messaggio da alex77 »

Grazie mille @Andrea90
sintetico ed efficace :thumbup:
ho usato Text.PadStart aggiungendo una colonna personalizzata, perchè non mi pare si potesse usare annidata in "Table.TrasfromColumns" (o non ci sono riuscito, ecco). Dico male?

A.
Avatar utente

Autore del topic
alex77
Messaggi: 160 | Topic creati
Iscritto il: sab 24 ott 2020, 23:04
Luogo: Treviso
Ringraziato: 11 volte

Linguaggio M: aggiungere prefisso di lunghezza variabile ad un campo

Messaggio da alex77 »

Mi correggo, ce l'ho fatta, facendo uno "sforzino" di testa in più!

Grazie ancora

LukeReds
Messaggi: 15 | Topic creati
Iscritto il: ven 17 lug 2020, 9:47
Luogo: Milano
Contatta:

Linguaggio M: aggiungere prefisso di lunghezza variabile ad un campo

Messaggio da LukeReds »

ciao,
tanto per partecipare si può usare anche Text.End("00000"&[codice],5)
Rispondi