Pagina 1 di 2 12 UltimaUltima
Risultati da 1 a 30 di 33

Discussione: Sommare valori compresi in una stringa di testo



  1. #1
    L'avatar di Pierpaolo
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Udine
    Età
    50
    Messaggi
    49
    Versione Office
    2013
    Likes ricevuti
    1

    Sommare valori compresi in una stringa di testo

    Ciao a tutti, il mio problemino è quello di sommare dei valori compresi in una stringa di testo separati da ";" come da esempio:

    A1: 50;30;100
    A2: 100;100;100;90;60;100;90
    A3: 100;90
    A4: 100
    A5: 80
    A6: 120;80;80;80
    .......
    Nella colonna B vorrei avere la somma dei valori compresa nella stringa di testo (es 180 dalla stringa in A1) o nel caso ci sia un singolo valore (es: 100 della cella A4) questo venga riportato senza modifica.

    Vi ringrazio molto per l'aiuto!!!!
    Saluti
    Pierpaolo
    Invia MPPM 

  2. #2
    L'avatar di Canapone
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Firenze
    Messaggi
    1075
    Versione Office
    2010 su Win
    Likes ricevuti
    598
    Likes dati
    202
    Ciao,

    potresti ottenere i valori usando una funzione definita dall'utente.

    Premi Alt+f11 per aprire il VBA editor. Seleziona inserisci modulo.

    Copia questo codice


    Function Ciao(Rng As Range) As Variant
    Ciao = Evaluate(Application.Substitute(Rng, ";", "+"))
    End Function

    Salva e nel foglio prova

    =Ciao(a1)

    Credo si possa arrivare al risultato con qualche formula.

    Saluti
    Ultima modifica fatta da:Canapone; 09/09/15 alle 15:38
    Invia MPPM 

  3. #3
    L'avatar di Pierpaolo
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Udine
    Età
    50
    Messaggi
    49
    Versione Office
    2013
    Likes ricevuti
    1
    grazie per la tempestiva risposta!
    Preferirei risolvere il problema con le formule senza usare le macro dato che questo foglio di lavoro deve essere girato a persone che non accettano files con macro.
    grazie comunque!
    ciao
    Invia MPPM 

  4. #4

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923
    Ciao a tutti,
    la proposta di Canapone è certamente la più corretta in quanto "lato formule" non esiste una funzione simile ad "Evaluate" (che io sappia) a parte VALUTA.TESTO che funziona solamente se definita come nome.
    Quindi, se proprio non vuoi usare macro, definisci un nuovo nome, chiamandolo macro e nel campo "Riferito a:" metti dentro questa formula:

    =VALUTA.TESTO("="&SOSTITUISCI(Foglio1!A1;";";"+"))

    Adesso nella cella B1 puoi scrivere semplicemente:

    =macro

    N.B.
    1. Quando richiami questo nome, la "funzione" farà i suoi calcoli SOLO con quello scritto nella cella che si trova alla sua sinistra.
    2. Il file deve essere salvato come "Cartella di lavoro con attivazione di macro" (xlsm) come se contenesse una macro.

    Ti riallego il file con questa "funzione"...

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  5. #5
    L'avatar di Pierpaolo
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Udine
    Età
    50
    Messaggi
    49
    Versione Office
    2013
    Likes ricevuti
    1
    Vi ringrazio vivamente per il vostro contributo! Entrambi i metodi funzionano alla grande, anche se rimane il fatto che vorrei risolvere il problema usando le formule. Io ho provato varie combinazioni usando STRINGA.ESTRAI, SOSTITUISCI, RIPETI, ecc. seguendo i video tutorials di Gerardo (che saluto e ringrazio per gli eccellenti video tutorials che mette a disposizione) ma non riesco ad andare avanti in quanto le stringhe di testo contenenti i valori hanno lunghezza variabile. Io vorrei automatizzare il tutto ed ottenere la somma così come avete fatto voi però salvando il tutto in un file .XLSX.
    Se qualcuno se la sente di provare a mettere giù qualche formula mi farebbe molto piacere.

    Ringrazio nuovamente!
    saluti
    Invia MPPM 

  6. #6

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923
    Ciao Pierpaolo,
    il motivo del perchè abbiamo usato una function VBA e una "pseudo-function" è proprio quello che hai descritto...
    Non è tanto la complessità delle formule quanto la lunghezza perchè ad ogni numero nella stringa (più precisamente ad ogni punto e virgola) dovresti annidare una funzione STRINGA.ESTRAI (o simile)...
    C'è per caso un limite ai numeri che si possono trovare nella stringa?
    Se così non fosse, non credo che riuscirai a cavartela con le formule... anche se è possibile che qualcun altro riesca a fare qualche "magia" :288:

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  7. #7
    L'avatar di Pierpaolo
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Udine
    Età
    50
    Messaggi
    49
    Versione Office
    2013
    Likes ricevuti
    1
    In genere si tratta di numeri di 2 o al massimo di 3 cifre (in pratica tutto quello che si trova da 10 a 100). Il numero di valori varia da un minimo di 2 (es: 100;90) ad un massimo di 15 (es: 100;100;90;100;100;100;90;100;100;90;100;20;80;40;90).
    Sinceramento pensavo fosse più semplice risolvere questo quesito, della seria: sostituisci i ";" con dei segni + e somma il tutto.
    Quindi secondo voi possiamo risolvere il mio quesito usando le macro e simili che avete proposto o c'è un'altra soluzione usando le formule che tengano in considerazioni i limiti di lunghezza delle stringe sopracitate?

    Un saluto a tutti!
    Invia MPPM 

  8. #8

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923
    Visto che il limite esiste, credo si possano annidare le funzioni necessarie per un massimo di 15 elementi.
    Userei le funzioni che stavi usando anche tu...
    Adesso non ho il pc con me. Domani, se nel frattempo non propone qualcosa qualcun altro, proverò a buttar giù qualcosa.

    Ciao

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  9. #9
    L'avatar di Pierpaolo
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Udine
    Età
    50
    Messaggi
    49
    Versione Office
    2013
    Likes ricevuti
    1
    bene, ti ringrazio, a domani. Ciao
    Invia MPPM 

  10. #10

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7146
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1300
    Ciò che ha chiesto Pierpaolo si può risolvere benissimo con le formule, basta estrarre le varie stringhe e poi elaborare una serie di SE nidificati; il limite di excel prevede fino a 64 SE nidificati, pertanto un limite ben oltre la richiesta di questo post.

    Il problema è che ci vuole un po' di pazienza per estrarre le stringhe, più sono lunghi i valori intervallati dal punto e virgola e più sono complesse le formule.

    Ho provato a fare le formule fino a 6 valori intervallati dal punto e virgola e già mi è venuto un formulone, però ripeto, con un po' di pazienza (qualche ora di lavoro) si arriva fino a 15.

    Il formulone è questo (pensate quando si arriva a 15 valori! :127::

    =SE(SE(LUNGHEZZA(ANNULLA.SPAZI(A1))=0;0;LUNGHEZZA(ANNULLA.SPAZI(A1))-LUNGHEZZA(SOSTITUISCI(A1;";";""))+1)=1;A1;SE(SE(LUNGHEZZA(ANNULLA.SPAZI(A1))=0;0;LUNGHEZZA(ANNULLA.SPAZI(A1))-LUNGHEZZA(SOSTITUISCI(A1;";";""))+1)=2;SOMMA(STRINGA.ESTRAI(A1;1;TROVA(";";A1)-1);ANNULLA.SPAZI(DESTRA(SOSTITUISCI(A1;";";RIPETI(" ";99));99)));SE(SE(LUNGHEZZA(ANNULLA.SPAZI(A1))=0;0;LUNGHEZZA(ANNULLA.SPAZI(A1))-LUNGHEZZA(SOSTITUISCI(A1;";";""))+1)=3;SOMMA(STRINGA.ESTRAI(A1;1;TROVA(";";A1)-1);STRINGA.ESTRAI(STRINGA.ESTRAI(A1;RICERCA(";";A1;1)+1;LUNGHEZZA(A1));1;TROVA(";";STRINGA.ESTRAI(A1;RICERCA(";";A1;1)+1;LUNGHEZZA(A1)))-1);ANNULLA.SPAZI(DESTRA(SOSTITUISCI(A1;";";RIPETI(" ";99));99)));SE(SE(LUNGHEZZA(ANNULLA.SPAZI(A1))=0;0;LUNGHEZZA(ANNULLA.SPAZI(A1))-LUNGHEZZA(SOSTITUISCI(A1;";";""))+1)=4;SOMMA(STRINGA.ESTRAI(A1;1;TROVA(";";A1)-1);STRINGA.ESTRAI(STRINGA.ESTRAI(A1;RICERCA(";";A1;1)+1;LUNGHEZZA(A1));1;TROVA(";";STRINGA.ESTRAI(A1;RICERCA(";";A1;1)+1;LUNGHEZZA(A1)))-1);STRINGA.ESTRAI(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));1;TROVA(";";DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1)))-1);ANNULLA.SPAZI(DESTRA(SOSTITUISCI(A1;";";RIPETI(" ";99));99)));SE(SE(LUNGHEZZA(ANNULLA.SPAZI(A1))=0;0;LUNGHEZZA(ANNULLA.SPAZI(A1))-LUNGHEZZA(SOSTITUISCI(A1;";";""))+1)=5;SOMMA(STRINGA.ESTRAI(A1;1;TROVA(";";A1)-1);STRINGA.ESTRAI(STRINGA.ESTRAI(A1;RICERCA(";";A1;1)+1;LUNGHEZZA(A1));1;TROVA(";";STRINGA.ESTRAI(A1;RICERCA(";";A1;1)+1;LUNGHEZZA(A1)))-1);STRINGA.ESTRAI(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));1;TROVA(";";DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1)))-1);STRINGA.ESTRAI(STRINGA.ESTRAI(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));RICERCA(";";DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));1)+1;LUNGHEZZA(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1))));1;TROVA(";";STRINGA.ESTRAI(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));RICERCA(";";DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));1)+1;LUNGHEZZA(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1)))))-1);ANNULLA.SPAZI(DESTRA(SOSTITUISCI(A1;";";RIPETI(" ";99));99)));SE(SE(LUNGHEZZA(ANNULLA.SPAZI(A1))=0;0;LUNGHEZZA(ANNULLA.SPAZI(A1))-LUNGHEZZA(SOSTITUISCI(A1;";";""))+1)=6;SOMMA(STRINGA.ESTRAI(A1;1;TROVA(";";A1)-1);STRINGA.ESTRAI(STRINGA.ESTRAI(A1;RICERCA(";";A1;1) + 1;LUNGHEZZA(A1));1;TROVA(";";STRINGA.ESTRAI(A1;RICERCA(";";A1;1) + 1;LUNGHEZZA(A1)))-1);STRINGA.ESTRAI(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));1;TROVA(";";DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1)))-1);STRINGA.ESTRAI(STRINGA.ESTRAI(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));RICERCA(";";DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));1) + 1;LUNGHEZZA(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1))));1;TROVA(";";STRINGA.ESTRAI(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));RICERCA(";";DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));1) + 1;LUNGHEZZA(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1)))))-1);STRINGA.ESTRAI(ANNULLA.SPAZI(A1);RICERCA(CODICE.CARATT(254);SOSTITUISCI(";" & ANNULLA.SPAZI(A1);";";CODICE.CARATT(254);5));RICERCA(CODICE.CARATT(254);SOSTITUISCI(";" & ANNULLA.SPAZI(A1) & ";";";";CODICE.CARATT(254);5+1))-RICERCA(CODICE.CARATT(254);SOSTITUISCI(";" & ANNULLA.SPAZI(A1);";";CODICE.CARATT(254);5))-1);ANNULLA.SPAZI(DESTRA(SOSTITUISCI(A1;";";RIPETI(" ";99));99)))))))))

    Allego file.
    Invia MPPM 

  11. #11

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7146
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1300
    Ciò che ha chiesto Pierpaolo si può ottenere benissimo con le formule, basta estrarre le stringhe dei vari valori e poi prevederne la somma tramite la funzione SE in base alle condizioni; la funzione SE sopporta fino a 64 formule nidificate e pertanto è ben oltre il dato richiesto in questo post.

    Il problema è che ci vuole un po' di pazienza e tempo a estrarre le varie stringhe, più aumenta il numero dei valori e più sono complesse le formule.

    Ho provato a estrarre fino a 6 stringhe e a nidificarle e già mi è venuto un bel formulone.

    Ecco il formulone - pensate quando si arriva a 15 valori!:127:

    =SE(SE(LUNGHEZZA(ANNULLA.SPAZI(A1))=0;0;LUNGHEZZA(ANNULLA.SPAZI(A1))-LUNGHEZZA(SOSTITUISCI(A1;";";""))+1)=1;A1;SE(SE(LUNGHEZZA(ANNULLA.SPAZI(A1))=0;0;LUNGHEZZA(ANNULLA.SPAZI(A1))-LUNGHEZZA(SOSTITUISCI(A1;";";""))+1)=2;SOMMA(STRINGA.ESTRAI(A1;1;TROVA(";";A1)-1);ANNULLA.SPAZI(DESTRA(SOSTITUISCI(A1;";";RIPETI(" ";99));99)));SE(SE(LUNGHEZZA(ANNULLA.SPAZI(A1))=0;0;LUNGHEZZA(ANNULLA.SPAZI(A1))-LUNGHEZZA(SOSTITUISCI(A1;";";""))+1)=3;SOMMA(STRINGA.ESTRAI(A1;1;TROVA(";";A1)-1);STRINGA.ESTRAI(STRINGA.ESTRAI(A1;RICERCA(";";A1;1)+1;LUNGHEZZA(A1));1;TROVA(";";STRINGA.ESTRAI(A1;RICERCA(";";A1;1)+1;LUNGHEZZA(A1)))-1);ANNULLA.SPAZI(DESTRA(SOSTITUISCI(A1;";";RIPETI(" ";99));99)));SE(SE(LUNGHEZZA(ANNULLA.SPAZI(A1))=0;0;LUNGHEZZA(ANNULLA.SPAZI(A1))-LUNGHEZZA(SOSTITUISCI(A1;";";""))+1)=4;SOMMA(STRINGA.ESTRAI(A1;1;TROVA(";";A1)-1);STRINGA.ESTRAI(STRINGA.ESTRAI(A1;RICERCA(";";A1;1)+1;LUNGHEZZA(A1));1;TROVA(";";STRINGA.ESTRAI(A1;RICERCA(";";A1;1)+1;LUNGHEZZA(A1)))-1);STRINGA.ESTRAI(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));1;TROVA(";";DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1)))-1);ANNULLA.SPAZI(DESTRA(SOSTITUISCI(A1;";";RIPETI(" ";99));99)));SE(SE(LUNGHEZZA(ANNULLA.SPAZI(A1))=0;0;LUNGHEZZA(ANNULLA.SPAZI(A1))-LUNGHEZZA(SOSTITUISCI(A1;";";""))+1)=5;SOMMA(STRINGA.ESTRAI(A1;1;TROVA(";";A1)-1);STRINGA.ESTRAI(STRINGA.ESTRAI(A1;RICERCA(";";A1;1)+1;LUNGHEZZA(A1));1;TROVA(";";STRINGA.ESTRAI(A1;RICERCA(";";A1;1)+1;LUNGHEZZA(A1)))-1);STRINGA.ESTRAI(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));1;TROVA(";";DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1)))-1);STRINGA.ESTRAI(STRINGA.ESTRAI(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));RICERCA(";";DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));1)+1;LUNGHEZZA(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1))));1;TROVA(";";STRINGA.ESTRAI(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));RICERCA(";";DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));1)+1;LUNGHEZZA(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1)))))-1);ANNULLA.SPAZI(DESTRA(SOSTITUISCI(A1;";";RIPETI(" ";99));99)));SE(SE(LUNGHEZZA(ANNULLA.SPAZI(A1))=0;0;LUNGHEZZA(ANNULLA.SPAZI(A1))-LUNGHEZZA(SOSTITUISCI(A1;";";""))+1)=6;SOMMA(STRINGA.ESTRAI(A1;1;TROVA(";";A1)-1);STRINGA.ESTRAI(STRINGA.ESTRAI(A1;RICERCA(";";A1;1) + 1;LUNGHEZZA(A1));1;TROVA(";";STRINGA.ESTRAI(A1;RICERCA(";";A1;1) + 1;LUNGHEZZA(A1)))-1);STRINGA.ESTRAI(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));1;TROVA(";";DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1)))-1);STRINGA.ESTRAI(STRINGA.ESTRAI(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));RICERCA(";";DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));1) + 1;LUNGHEZZA(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1))));1;TROVA(";";STRINGA.ESTRAI(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));RICERCA(";";DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1));1) + 1;LUNGHEZZA(DESTRA(A1;LUNGHEZZA(A1)-RICERCA(";";A1;RICERCA(";";A1;1)+1)))))-1);STRINGA.ESTRAI(ANNULLA.SPAZI(A1);RICERCA(CODICE.CARATT(254);SOSTITUISCI(";" & ANNULLA.SPAZI(A1);";";CODICE.CARATT(254);5));RICERCA(CODICE.CARATT(254);SOSTITUISCI(";" & ANNULLA.SPAZI(A1) & ";";";";CODICE.CARATT(254);5+1))-RICERCA(CODICE.CARATT(254);SOSTITUISCI(";" & ANNULLA.SPAZI(A1);";";CODICE.CARATT(254);5))-1);ANNULLA.SPAZI(DESTRA(SOSTITUISCI(A1;";";RIPETI(" ";99));99)))))))))

    Allego file.
    Invia MPPM 

  12. #12
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Io ho provato varie combinazioni usando STRINGA.ESTRAI, SOSTITUISCI, RIPETI, ecc. seguendo i video tutorials di Gerardo
    Cioa Pierpaolo Benvenuto nel forum
    Credo che la formula a cui tu fai riferimento che hai visto in un mio video, sia una formula che serve per estrarre dei numeri e non per sommarli, perchè sia Cromagno che Canapone stanno cercando di sommare qualcosa.

    Comunque questa è la mia soluzione che prende spunto da quello che hai detto sopra, e poi ovviameante questi numeri estratti li puoi sommare

    Fai la formula in B1 e poi la trascini a destra e in basso:

    =SE.ERRORE(ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(";"&$A1;";";RIPETI(" ";30));30*COLONNE($B1:B1);30))+0;0)

    A
    B
    C
    D
    E
    F
    1
    30;100;150;300
    30
    100
    150
    300
    0


    Fammi sapere!
    Ultima modifica fatta da:Gerardo Zuccalà; 10/09/15 alle 01:55
    Invia MPPM 

  13. #13

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7146
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1300
    @Gerardo, bellissima soluzione!!!! :255:Però forse devi bloccare A1 o sbaglio?

    Edit:
    Ops scusate .... devo aver cliccato più vuole nella stessa finestra, ho visto adesso che si sono inseriti più messaggi.
    Ultima modifica fatta da:ges; 10/09/15 alle 01:42
    Invia MPPM 

  14. #14
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126

    Oppss!! grazie ges
    Pensa che l'avevo messa in Rif.assoluto poi mi sono ricordato che dovevo copiarla verso il basso e ho Editato la formula direttamente dal post lasciando tutto in rif.relativo ma avrei dvuto bloccarlo solo sulle colonne


    =SE.ERRORE(ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(";"&
    $A1;";";RIPETI(" ";30));30*COLONNE($B1:B1);30))+0;0)

    ges
    La tua Formula è da guinnes
    :171: addirittura il softwear vB, mi ha mandato una segnalazione di richiesta di moderazione del messaggio perchè pensava fosse un attacoo Hacker hahahah
    Ovviamente poi l'ho sbloccata
    Ciao
    Invia MPPM 

  15. #15

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7146
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2063
    Likes dati
    1300
    Citazione Originariamente Scritto da Gerardo Zuccalà Visualizza Messaggio

    ....
    ges
    La tua Formula è da guinnes
    :171: addirittura il softwear vB, mi ha mandato una segnalazione di richiesta di moderazione del messaggio perchè pensava fosse un attacoo Hacker hahahah
    Ovviamente poi l'ho sbloccata
    Ciao
    Ahahhahh ...ecco perché ho premuto più volte credevo non fosse stata inviata !!!! :258:
    Invia MPPM 

  16. #16
    L'avatar di Canapone
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Firenze
    Messaggi
    1075
    Versione Office
    2010 su Win
    Likes ricevuti
    598
    Likes dati
    202
    Ciao a tutti

    riprendo la formula di Gerardo. Con una piccola variazione e confermata con il control+maiusc+invio dovrebbe fare la somma.

    =SOMMA(SE.ERRORE(ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(";"&A1;";";RIPETI(" ";30));30*RIF.RIGA($1:$100);30))+0;0))

    Saluti
    Ultima modifica fatta da:Canapone; 10/09/15 alle 07:41
    Invia MPPM 

  17. #17
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Citazione Originariamente Scritto da Canapone Visualizza Messaggio
    Ciao a tutti

    riprendo la formula di Gerardo. Con una piccola variazione e confermata con il control+maiusc+invio dovrebbe fare la somma.

    =SOMMA(SE.ERRORE(ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(";"&A1;";";RIPETI(" ";30));30*RIF.RIGA($1:$100);30))+0;0))

    Saluti
    hahhaha incredibile avevo la soluzione finale ad un soffio e non ci ho proprio pensato, accecato che questa formula servisse ad estrarre e ci ha pensato canapone a mettere la ciliegina sulla torta, il bello di un vero team on-line
    Adesso aspettiamo Pierpaolo cosa ci risponde
    Ciao Grazie
    Invia MPPM 

  18. #18
    L'avatar di Canapone
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Firenze
    Messaggi
    1075
    Versione Office
    2010 su Win
    Likes ricevuti
    598
    Likes dati
    202
    Gerardo,

    non ho aggiunto nulla.

    Non mi è riuscito levare lo stato matriciale.
    Invia MPPM 

  19. #19

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923
    Buongiorno a tutti,
    come dicevo ieri...mai dire mai, qualcosa può sempre accadere :286:

    C'è ancora posto nella classe di Hogwarts dove studiate ??? :255:

    [EDIT]
    Una domanda per accertarmi di aver capito bene la formula....
    Considerando che 15 è il limite massimo dei numeri che possono trovarsi all'interno della stringa da valutare, la parte della formula:
    30*RIF.RIGA($1:$100)

    si potrebbe anche scrivere:
    30*RIF.RIGA($1:$15)

    ???
    Ultima modifica fatta da:cromagno; 10/09/15 alle 10:48

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  20. #20
    L'avatar di Canapone
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Firenze
    Messaggi
    1075
    Versione Office
    2010 su Win
    Likes ricevuti
    598
    Likes dati
    202
    Ciao,



    30*RIF.RIGA($1:$15)

    è sufficiente.

    Così la formula inquina meno.
    Invia MPPM 

  21. #21

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923
    Ok, allora avevo capito bene :)
    Grazie ;)

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  22. #22
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Citazione Originariamente Scritto da cromagno Visualizza Messaggio
    Una domanda per accertarmi di aver capito bene la formula....
    Considerando che 15 è il limite massimo dei numeri che possono trovarsi all'interno della stringa da valutare, la parte della formula:
    30*RIF.RIGA($1:$100)

    si potrebbe anche scrivere:
    30*RIF.RIGA($1:$15)

    ???
    Ciao Cromagno
    Questa formula è un po particolare io infatti l'ho chiamata "formula evoluta" è un nuovo concetto per estrarre i dati da una stringa che va in sostituzione alle classiche formule tradizionali con tanti TROVA, LUNGHEZZA ecc ecc ...
    Per capire questa formula partiamo dal centro della formula
    =STRINGA.ESTRAI(SOSTITUISCI(";"&$A1;";";RIPETI(" ";30));30*COLONNE($B1:B1);30))
    i
    n questo pezzo in rosso io creo una stringa di testo nuova e anziche i punti e virgola (;) metto tanti spazi vuoti (in questo caso 30)e faccio attenzione ad anteporre";"& che significa che alla vecchia stringa si è aggiunto un'altro (;) all'inizio e di conseguenza mi ancora 30 spazi vuoti

    30*COLONNE($B1:B1) questo pezzo di formula serve a STRINGA.ESTRAI per capire il primo argomento l'inizio e dato che avevamo messo ";"& l'inizio sarà dopo dal trentesimo carattere, ovviamante trascinado la formula verso destra il COLONNE ci restituisce 1, 2, 3, 4, 5 per cui l'inizio sara 30*1=30 oppure 30*2=60 oppure 30*3=90 ecc

    =STRINGA.ESTRAI(SOSTITUISCI(";"&$A1;";";RIPETI(" ";30));30*COLONNE($B1:B1);30)) invece l'ultimo 30 serve alla STRINGA.ESTARI per l'ultimo argomento quanti caratteri? che non andrà mai ad accavallarsi con all'altro pezzo di stringa

    Cromagno prova a guardare questo video che sicuramente chiarsco meglio, perchè un video e meglio di 1000 parole
    Ciao grazie
    Invia MPPM 

  23. I seguenti utenti hanno dato un "Like"

    ges

  24. #23

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923
    Ciao Gerardo,
    si si, ho capito come funziona ed è ottima...:285:
    Grazie comunque per la tua spiegazione che sarà gradita anche da chi vorrà usarla per altre necessità :286:

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  25. #24
    L'avatar di Pierpaolo
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Udine
    Età
    50
    Messaggi
    49
    Versione Office
    2013
    Likes ricevuti
    1
    Un saluto a tutti!
    WOW ci siete riusciti, complimenti!
    Scusate il ritarno nel rispondervi ma, tra le altre, io lavoro con Office 2013 in tedesco perché sono fuori dall’Italia quindi non posso con un copia/incolla provare le vostre formule ma devo prima tradurre i comandi in tedesco.
    Non so ancora bene usare le funzioni del forum così procedo per gradi:

    Gerardo: ti ringrazio per il caloroso benvenuto al forum, comunque ti seguo da tanto su youtube e ti confesso che ho imparato tantissimo dai tuo video tutorials che ripeto sono fatti benissimo perché sono intuitivi, completi e molto didattici! La tua formula funziona veramente bene ed è molto leggera.

    La formula proposta da “ges”….mi ha fatto paura….pensando che è solo per 6 stringhe e non ancora per 15…..comunque complimenti e grazie per la pazienza!

    Forse una piccola precisione perché ho visto che ad esempio “cromagno” ha cambiato il RIF.RIGA da 100 a 15 pensando forse che 15 è il limite massimo delle righe(?). Forse mi sono spiegato male io all’inizio quando ho fatto l’esempio con un massimo di 15 (es: 100;100;90;100;100;100;90;100;100;90;100;20;80;40;90). In realtà nel mio foglio ci sono 913 righe con questo tipo problema dove la riga che ha il “testo” più lungo ha appunto 15 numeri separati dai “;”.

    Canapone: Penso che la tua versione sia quella +/- finale che va a risolvere il mio quesito. L’unico problema si presenta quando la formula incontra la mia stringa più lunga (quella appunto con 15 numeri: 100;100;90;100;100;100;90;100;100;90;100;20;80;40;90) restituendo come somma 1210 anziché 1300……praticamente non prende il 90. Cosa c’è ancora da modificare?
    Grazie!
    ciao
    Invia MPPM 

  26. I seguenti utenti hanno dato un "Like"


  27. #25

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923
    Ciao Pierpaolo,
    no, avevo capito che non ti riferivi alle righe :184:

    Comunque, il problema dipende dai numeri con tre cifre (il 100), quindi per ovviare a questo problema, la formula per gestire un massimo di 15 elementi diventerebbe così:

    =SOMMA(SE.ERRORE(ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(";"&A1;";";RIPETI(" ";30));28*RIF.RIGA($1:$17);30))+0;0))

    o almeno credo che sia cosi...

    [EDIT]
    Scusa, mi son dimenticato di modificare una cosa:

    =SOMMA(SE.ERRORE(ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(";"&A1;";";RIPETI(" ";30));28*RIF.RIGA($1:$17);28))+0;0))
    Ultima modifica fatta da:cromagno; 10/09/15 alle 13:29

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  28. #26
    L'avatar di Pierpaolo
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Udine
    Età
    50
    Messaggi
    49
    Versione Office
    2013
    Likes ricevuti
    1
    bene funziona!!!
    Per cortesia dimmi solo cosa dovrei cambiare nella formula se un domani mi si presentasse una stringa con più di 15 numeri (17 o 20) separati da ";" che io devo sommare.
    grazie
    Invia MPPM 

  29. #27

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923
    Basta cambiare questo pezzo:
    RIF.RIGA($1:$17)

    in questo modo (tanto per stare tranquilli) :

    RIF.RIGA($1:$1000)


    N.B.
    se dovessero esserci numeri con più di tre cifre, dovresti modificare anche questo pezzo:

    28*RIF.RIGA($1:$17);28

    mettendo via via un numero inferiore....
    27 per numeri a 4 cifre
    26 per numeri a 5 cifre etc....

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  30. #28
    L'avatar di Pierpaolo
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Udine
    Età
    50
    Messaggi
    49
    Versione Office
    2013
    Likes ricevuti
    1
    caro cromagno.......c'è qualcosa che non mi funziona, ti mando un esempio così vedi dove sbaglio...
    ciao
    Invia MPPM 

  31. #29

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923
    Con questa funziona (per la cella A3):

    =SOMMA(SE.ERRORE(ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(";"&A3;";";RIPETI(" ";30));27*RIF.RIGA($1:$1000);27))+0;0))

    quindi rettificando quello che detto prima, come "regola generale" tieni a mente di mettere 30 (nel nostro caso) meno il numero massimo di cifre (3 in questo caso).
    Quindi, per sommare numeri dove si arriva ad un max di 3 cifre:
    30-3 = 27 ---> 27 è il numero che utilizzerai nella formula, e così via...

    27*RIF.RIGA($1:$1000);27

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

  32. #30

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4019
    Versione Office
    2013
    Likes ricevuti
    1228
    Likes dati
    923
    Tieni presente che quel "30" nella formula, è un numero scelto arbitrariamente, quindi per essere tranquilli anche in caso aumentino sia i numeri che le cifre, puoi utilizzare un "cuscinetto" e usare "100" al posto di "30" e "80" al posto di "27":

    =SOMMA(SE.ERRORE(ANNULLA.SPAZI(STRINGA.ESTRAI(SOSTITUISCI(";"&A1;";";RIPETI(" ";100));80*RIF.RIGA($1:$1000);80))+0;0))

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."
    Invia MPPM 

Discussioni Simili

  1. [Risolto] Calcolo totale - Sommare valori positivi o sottrarre valori negativi
    Di kasar nel forum Domande su Excel in generale
    Risposte: 3
    Ultimo Messaggio: 16/11/17, 10:11
  2. Risposte: 6
    Ultimo Messaggio: 28/01/17, 00:18
  3. Come estrarre un testo da una stringa di testo
    Di ProgrammD69 nel forum Domande su Excel in generale
    Risposte: 21
    Ultimo Messaggio: 04/09/16, 13:58
  4. Determinare e visualizzare i valori compresi in un intervallo
    Di sirlancilot nel forum Domande su Excel in generale
    Risposte: 12
    Ultimo Messaggio: 02/08/16, 15:50
  5. sommare valori con parte del riferimento nella stringa della cella
    Di G.Bove nel forum Domande su Excel in generale
    Risposte: 6
    Ultimo Messaggio: 04/06/16, 06:46

Tag per Questa Discussione

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •