Limite di caratteri di indirizzamento Excel

Attualmente sto analizzando gli indirizzi. L'unico requisito che ho è che non ci dovrebbero essere più di 40 caratteri in each cella Indirizzo (Indirizzo 1, Indirizzo 2, Indirizzo 3 ecc.). Il problema è che gli indirizzi hanno tutti formati diversi e voglio impedire che le parole vengano tagliate al centro. Esempio di un indirizzo (nella colonna G): Naaaaaaaaaaaaaaaaaaaaaaaame, 342 Streeeeeet, città, 452342 Codice postale, Paese Questo è quanto ho ottenuto:

Adress3=IF(LEN(G3)>40;RIGHT(G3;LEN(G3)-FIND("*";SUBSTITUTE(G3;" ";"*";LEN(G3)-LEN(SUBSTITUTE(G3;" ";"")))));"") Adress1==IF(I3<>""; IF(RIGHT(IF(I3<>"";TRIM(SUBSTITUTE(G3; I3; "")); G3);1)=",";LEFT(IF(I3<>"";TRIM(SUBSTITUTE(G3; I3; "")); G3);LEN(IF(I3<>"";TRIM(SUBSTITUTE(G3; I3; "")); G3))-1);IF(I3<>"";TRIM(SUBSTITUTE(G3; I3; "")); G3)); IF(I3<>"";TRIM(SUBSTITUTE(G3; I3; "")); G3)) 

Questo funziona, tuttavia devo trovare un modo per eseguire questa operazione più volte (poiché alcuni indirizzi sono molto lunghi) in modo da get qualcosa di simile:

Indirizzo1: 40 caratteri

Indirizzo2: 40 caratteri

Indirizzo3: caratteri rimanenti

C'è un modo per risolvere questo problema senza utilizzare VBA? Spero che sto facendo il senso e apprezzerò qualsiasi consiglio !!

Queste tre formule progressive sembrano funzionare per il tuo singolo esempio.

Parse e Truncate Indirizzo con funzioni di foglio di lavoro

Le formule in G5: K5 sono:

 =TRIM(LEFT(SUBSTITUTE(G3, " ", REPT(" ", 99), 40-LEN(SUBSTITUTE(LEFT(G3, 40), " ", ""))), 40)) =IFERROR(TRIM(LEFT(SUBSTITUTE(MID(G3, LEN(G5&REPT(" ", 1)), 40), " ", REPT(" ", 99), 40-LEN(SUBSTITUTE(LEFT(MID(G3, LEN(G5&REPT(" ", 1)), 40), 40), " ", ""))), 40)), "") =IFERROR(TRIM(LEFT(SUBSTITUTE(MID(G3, LEN(G5&H5&REPT(" ", 2)), 40), " ", REPT(" ", 99), 40-LEN(SUBSTITUTE(LEFT(MID(G3, LEN(G5&H5&REPT(" ", 2)), 40), 40), " ", ""))), 40)), "") =IFERROR(TRIM(LEFT(SUBSTITUTE(MID(G3, LEN(G5&H5&I5&REPT(" ", 3)), 40), " ", REPT(" ", 99), 40-LEN(SUBSTITUTE(LEFT(MID(G3, LEN(G5&H5&I5&REPT(" ", 3)), 40), 40), " ", ""))), 40)), "") =IFERROR(TRIM(LEFT(SUBSTITUTE(MID(G3, LEN(G5&H5&I5&J5&REPT(" ", 4)), 40), " ", REPT(" ", 99), 40-LEN(SUBSTITUTE(LEFT(MID(G3, LEN(G5&H5&I5&J5&REPT(" ", 4)), 40), 40), " ", ""))), 40)), "") 

Si noti che la formula in H5 dipende dal risultato in G5 e la formula in I5 dipende dai risultati in H5 e G5.

Non sei sicuro di quello che vuoi fare con la virgola in output in H5.