Post by elianoCiao Ivano.
Grazie grande Ivano, per aver ripreso con una certa continuità e per le
"seminate" che ci dai.
Per Benny (Ciao): cerca con Google le migliaia di post di "quest'omo" e
quando penserai di aver capito, continua a cercare; non finirai mai di
stupirti.
Con riferimento a Pippo (Ciao): Ivano, se aprissi un negozio di ferramenta
non avresti problemi di lievitazione o di cottura ed i prodotti sarebbero
sempre al dente. :-D)
Saluti a tutti
Eliano
Ciao di nuovo a tutti! Mi perdonerete la poca continuità, ma il dovere ha
chiamato tanto. Comunque:
in primo luogo grazie a Ivano per il tempo che mi ha dedicato e grazie a
tutti per l’attenzione, seguirò appena posso i consigli di Eliano (Ciao! E
piacere di fare la vostra conoscenza).
Come ho già detto
Post by elianoPost by BennyA me piacerebbe imparare!
1- RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(A1))
crea una matrice composta da tanti numeri come la lunghezza di A1 che
partono da 1 in incremento di 1
ho studiato un po':
nella guida on line di Excel, al percorso
Home Page Excel > Informazioni di base sulle formule e i nomi > Creazione di
formule >
Formule in forma di matrice: indicazioni ed esempi
Ho trovato quanto si riferisce al tuo modo di procedere:
“A questo punto può essere utile fornire alcune indicazioni sulle funzioni
RIF.RIGA e INDIRETTO. La funzione RIF.RIGA può essere utilizzata per creare
una matrice di numeri interi consecutivi. Ad esempio, selezionare una colonna
vuota di 10 celle nella cartella di lavoro utilizzata per l'esercitazione,
immettere questa formula in forma di matrice nelle celle A1:A10, quindi
premere CTRL+MAIUSC+INVIO:
=RIF.RIGA(1:10)
La formula crea una colonna di 10 numeri interi consecutivi. Per osservare
un possibile problema, inserire una riga sopra l'intervallo contenente la
formula in forma di matrice, in questo caso sopra la riga 1. I riferimenti di
riga vengono adeguati automaticamente e la formula genera numeri interi da 2
a 11. Per risolvere questo problema, aggiungere la funzione INDIRETTO alla
formula:
=RIF.RIGA(INDIRETTO("1:10"))
La funzione INDIRETTO utilizza stringhe di testo come argomenti e per questo
motivo l'intervallo 1:10 è racchiuso tra virgolette doppie. I valori di testo
non vengono adeguati automaticamente in caso di inserimento di righe o di
spostamento della formula in forma di matrice. Di conseguenza, la funzione
RIF.RIGA genera sempre la matrice di numeri interi desiderata.”
Credo allora di aver capito:
Ivano ha inserito come termine dell’intervallo / argomento della funz.
INDIRETTO() la lunghezza della stringa in cui inserire lo spazio. Si tratta
cioè di un escamotage per dar modo alla formula di procedere un carattere
alla volta all’interno della stringa fino a tutta la sua lunghezza.
Post by eliano2-STRINGA.ESTRAI() estrae un carattere alla volta in base alla formula al
punto 1
3-CODICE() permette di sapere se un carattere del punto 2 è lettera o numero
in base al suo codice ascii ( i codici dal 48 al 57 sono i numeri da 0 a 9)
=MIN(SE(VAL.NUMERO(1*STRINGA.ESTRAI(A1;RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(A1)));1));RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(A1)));""))
Se numero il "testo" (stringa.estrai restituisce sempre testo) viene
convertito in numero, altrimenti si ottiene un valore d'errore.
mettiamo in A1 la stringa
=MIN(SE((CODICE(STRINGA.ESTRAI(A1;RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(A1)));1))>=48)*(CODICE(STRINGA.ESTRAI(A1;RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(A1)));1))<=57);RIF.RIGA(INDIRETTO("1:"&LUNGHEZZA(A1)));""))
e confermi con ctrl+maiusc+invio
Il prodotto che sta al TEST sella funz. SE() serve a implementare un AND
logico, giusto!
La domanda potrebbe allora essere: è stata fatta questa scelta perché è
“conveniente” dal punto di vista del minor appesantimento del processore con
i calcoli? Una scelta, per così dire, di efficienza del programma?
Post by eliano=STRINGA.ESTRAI(A1;1;B1-1)&" "&STRINGA.ESTRAI(A1;B1;LUNGHEZZA(A1)-B1+1)
Ivano
Questa ultima formula invece effettua materialmente l’inserimento al posto
indicato dalla funzione precedente, giusto?
Per me allora tutto chiaro!
Grazie mille a tutti e “scusate il ritardo”.
P.S.: chiedo scusa a “***@gmail.com” se mi sono un po’ intrufolato e a
tutti gli altri se mi sono “allargato” così tanto.