"Tobia" ha scritto nel messaggio news:m3br87$5mm$2...@speranza.aioe.org...
Meglio la formula finale:
=SOMMA(1*SOSTITUISCI(SOSTITUISCI($A1;SINISTRA($A1;TROVA("#";SOSTITUISCI($A1;"(";"#";RIF.RIGA(INDIRETTO("r1:C"&LUNGHEZZA($A1)-LUNGHEZZA(SOSTITUISCI($A1;"(";""));1)))));"");DESTRA($A1;LUNGHEZZA($A1)-TROVA("#";SOSTITUISCI($A1;")";"#";RIF.RIGA(INDIRETTO("r1:C"&LUNGHEZZA($A1)-LUNGHEZZA(SOSTITUISCI($A1;"(";""));1))))+1);""))
sviluppa in forma matriciale la formula:
=1*SOSTITUISCI(SOSTITUISCI($A1;SINISTRA($A1;TROVA("#";SOSTITUISCI($A1;"(";"#";RIF.COLONNA(A1))));"");DESTRA($A1;LUNGHEZZA($A1)-TROVA("#";SOSTITUISCI($A1;")";"#";RIF.COLONNA(A1)))+1);"")
questa, se guardi bene non fa altro che, prima con la funzione SINISTRA,
sostituire alla prima parentesi tonda il segno # e quindi sostituire alla
parte a sinistra della parentesi, compresa la parentesi, una stringa vuota
"". Poi, con la funzione DESTRA fare altrettanto dalla parte destra,
isolando così solo il numero racchiuso fra parentesi.
Se questa formula la trascini a destra, a seguito dell'aggiornamento di
RIF.COLONNA da A1 a B1 agisci sul secondo gruppo di parentesi isolando il
secondo numero e così via.
Sommare questi valori trasformando la formula in matriciale, da
RIF.COLONNA(A1) a RIF.COLONNA($1:$1) comporta per ò un errore dato che
quando TROVA cerca una parentesi ( alla fine della stringa restituisce un
messaggio di errore che si replica in SOMMA.
Con:
RIF.RIGA(INDIRETTO("r1:C"&LUNGHEZZA($A1)-LUNGHEZZA(SOSTITUISCI($A1;"(";""));1))
calcolo esattamente quante parentesi ( vi sono nella stringa, quindi quanti
numeri, limitando la matrice al numero esatto di numeri presenti nella
stringa, senza quindi la necessità di controllare l'errore di overflow.
Spero di essere stato chiaro.
Ciao paoloard