Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Quizzone di Excel] Quesito 40

94 views
Skip to first unread message

plinius

unread,
Nov 25, 2011, 12:18:46 PM11/25/11
to
Per approfondire:
https://sites.google.com/site/e90e50/documento-plinius/quizzone-di-excel


Ho ritrovato un mio vecchio file nel quale ricavavo il codice fiscale delle
persone fisiche seguendo le regole fissate dal Decreto del Presidente della
Repubblica 29 settembre 1973, n. 605.
http://it.wikipedia.org/wiki/Codice_fiscale
Ricavavo il CF utilizzando delle macro e, per quella via, era tutto molto
semplice e lineare.
Poi provavo ad ottenere lo stesso risultato servendomi di formule.
Rivedendo ora quel file, redatto quando ero alle prime armi con excel, mi
sono reso conto che alcune formule le avrei scritte in altro modo oggi.
Tra le altre ce ne sono un paio per le quali però, anche adesso, non mi
viene in mente un modo più semplice ed elegante:
- quella che a partire dal cognome (ma è lo stesso per il nome), già
ripulito di eventuali lettere accentate, spazi, apostrofi ecc., ricava una
stringa delle sole consonanti e...
- l'altra che ricava la stringa delle sole vocali.

Per esempio avendo il cognome QUATTROCCHI una formula deve restituire
QTTRCCH e un'altra UAOI.

Farlo non è difficile e, infatti, non ho trovato difficoltà neanche
all'epoca, ancorché fossi pressoché privo di esperienza, ma ho allora
seguito il più semplice e pedestre dei sistemi, frazionando in più celle
l'intera operazione.
Forse non c'è un metodo migliore, ma forse sì... so bene che le vostre
risorse sono imprevedibili...
Punteggio ribaltato:
3 punti a chi dà la prima soluzione funzionante
5 punti a chi scova un sistema più semplice ed efficiente rispetto al primo
postato

Si possono usare celle di appoggio, formule multiple, insomma quel che si
vuole, ma meno ci si allarga e migliore sarà la valutazione del metodo.

Buon divertimento,
E.


eliano

unread,
Nov 25, 2011, 4:44:31 PM11/25/11
to
On 25 Nov, 18:18, "plinius" <punto.linea...@LEVARElibero.it> wrote:
> Per approfondire:https://sites.google.com/site/e90e50/documento-plinius/quizzone-di-excel
>
> Ho ritrovato un mio vecchio file nel quale ricavavo il codice fiscale delle
> persone fisiche seguendo le regole fissate dal Decreto del Presidente della
> Repubblica 29 settembre 1973, n. 605.http://it.wikipedia.org/wiki/Codice_fiscale
UDF con Regexp no, vero ? [Ciao Roby]
Ciao Enrico,
Eliano

elby

unread,
Nov 25, 2011, 6:01:10 PM11/25/11
to

Ciao a tutti

In A1 il Cognome
In A2 = LUNGHEZZA(A1)
In B1:B30 matriciale
=SE(VAL.NON.DISP(CONFRONTA(SE(VAL.NON.DISP(STRINGA.ESTRAI($A
$1;RIF.RIGA(INDIRETTO("A1:A"&$A$2;VERO));1))=VERO;"";STRINGA.ESTRAI($A
$1;RIF.RIGA(INDIRETTO("A1:A"&$A$2;VERO));1));{"A"\"E"\"I"\"O"\"U"};
0))=FALSO;"";STRINGA.ESTRAI($A$1;RIF.RIGA(INDIRETTO("A1:A"&$A$2;VERO));
1))

In C1 da trascinare fino a C30:
=SE(VAL.ERR(INDIRETTO("R"&RIF.RIGA()-1&"C"&RIF.COLONNA()-1;FALSO))=VERO;INDIRETTO("R"&RIF.RIGA()&"C"&RIF.COLONNA()-1;FALSO);INDIRETTO("R"&RIF.RIGA()-1&"C"&RIF.COLONNA();FALSO)&INDIRETTO("R"&RIF.RIGA()&"C"&RIF.COLONNA()-1;FALSO))

In D1:D30 matriciale:
=SE(VAL.NON.DISP(CONFRONTA(SE(VAL.NON.DISP(STRINGA.ESTRAI($A
$1;RIF.RIGA(INDIRETTO("A1:A"&$A$2;VERO));1))=VERO;"";STRINGA.ESTRAI($A
$1;RIF.RIGA(INDIRETTO("A1:A"&$A$2;VERO));1));{"A"\"E"\"I"\"O"\"U"};
0))=FALSO;STRINGA.ESTRAI($A$1;RIF.RIGA(INDIRETTO("A1:A"&$A$2;VERO));
1);"")

In E1 da trascinare fino a E30:
=SE(VAL.ERR(INDIRETTO("R"&RIF.RIGA()-1&"C"&RIF.COLONNA()-1;FALSO))=VERO;INDIRETTO("R"&RIF.RIGA()&"C"&RIF.COLONNA()-1;FALSO);INDIRETTO("R"&RIF.RIGA()-1&"C"&RIF.COLONNA();FALSO)&INDIRETTO("R"&RIF.RIGA()&"C"&RIF.COLONNA()-1;FALSO))

In F1 matriciale:
=SOSTITUISCI(INDICE($C$1:$C$20;SOMMA(SE(VAL.NON.DISP($C$1:$C$20);
0;SE(LUNGHEZZA($C$1:$C$20)>0;1;0))));" ";"")
In G1 matriciale:
=SOSTITUISCI(INDICE($E$1:$E$30;SOMMA(SE(VAL.NON.DISP($E$1:$E$30);
0;SE(LUNGHEZZA($E$1:$E$30)>0;1;0))));" ";"")

Ciao Elio



On 25 Nov, 18:18, "plinius" <punto.linea...@LEVARElibero.it> wrote:
> Per approfondire:https://sites.google.com/site/e90e50/documento-plinius/quizzone-di-excel
>
> Ho ritrovato un mio vecchio file nel quale ricavavo il codice fiscale delle
> persone fisiche seguendo le regole fissate dal Decreto del Presidente della
> Repubblica 29 settembre 1973, n. 605.http://it.wikipedia.org/wiki/Codice_fiscale

elby

unread,
Nov 25, 2011, 6:38:49 PM11/25/11
to
Rettifica:
In A3 il cognome
In A1 :
=SOSTITUISCI($A$3;" "; "")

In F1 matriciale:
=INDICE($C$1:$C$30;SOMMA(SE(VAL.NON.DISP($B$1:$B$30);0;1)))

In G1 matriciale:
=INDICE($E$1:$E$30;SOMMA(SE(VAL.NON.DISP($D$1:$D$30);0;1)))
Il resto uguale

Elio

elby

unread,
Nov 25, 2011, 8:32:56 PM11/25/11
to
Una alternativa
In A1 Il Cognome
In B1:
= SOSTITUISCI(A$1;INDICE({"A"\"E"\"I"\"O"\"U"};RIF.COLONNA()-
RIF.COLONNA($A$1));"")
da trascinare fino a F5
In A2:
=A1

In B2:
=SE(VAL.NON.DISP(CONFRONTA(STRINGA.ESTRAI(B$2;RIF.COLONNA()-
RIF.COLONNA($A$2);1);{"A"\"E"\"I"\"O"\"U"};0));SOSTITUISCI(B
$2;STRINGA.ESTRAI(B$2;RIF.COLONNA()-RIF.COLONNA($A$2);1);"0");B$2)
Da trascinare fino a AE2
In A4:
=$F$1

In A5:
=SOSTITUISCI(INDICE($B$2:$AE$2;;LUNGHEZZA($A$1));"0";"")
oppure
=SOSTITUISCI($AE$2;"0";"")

Elio


Andrea.9

unread,
Nov 25, 2011, 8:47:32 PM11/25/11
to
dico la mia:
definisci nome: vocali ={"a"\"e"\"i"\"o"\"u"}
definisci nome: txt =STRINGA.ESTRAI($K$1;RIF.RIGA($A
$1:INDIRETTO("A"&LUNGHEZZA($K$1)));1)
dove in K1 c'e' il cognome da analizzate (quattrocchi)

in A1:
=PICCOLO(SE(VAL.NON.DISP(CONFRONTA(vocali;txt;
0))=VERO;"";CONFRONTA(vocali;txt;0));RIF.RIGA(A1))
da trascinare fino a A10 (matriciale)
in B1:
=SE(VAL.ERRORE(A1)=VERO;"";A1)
da trascinare fino a B10
in C1:
=SE(VAL.ERRORE(INDICE(txt;B1))=VERO;"";INDICE(txt;B1))
da trascinare fino a C10
elenco vocali:
=C1&C2&C3&C4&C5&C6&C7&C8&C9&C10

in F1:
=SE(MAX(B$1:B$10)-CONTA.NUMERI(B$1:B$10)>RIF.RIGA(A1)
-1;PICCOLO(SE(CONTA.SE(B$1:B$10;RIF.RIGA($B$1:$B$10))=0;RIF.RIGA($B
$1:$B$10);"");RIF.RIGA(A1));"")
copiata da paolo
da trascinare fino a F10 (matriciale)
in G1:
=SE(VAL.ERRORE(INDICE(txt;F1))=VERO;"";INDICE(txt;F1))
da trascinare fino a G10
elenco consonanti:
=G1&G2&G3&G4&G5&G6&G7&G8&G9&G10

ciao
andrea

Andrea.9

unread,
Nov 25, 2011, 9:10:38 PM11/25/11
to
come non detto
mi sono reso conto che CONFRONTA trova solo la prima posizione di una
certa vocale; per cui con "quattrocchi" funziona bene perche' le
vocali compaiono una volta sola, mentre con "cassandra" fa un disastro
perche' mi dice solo 2 anziche' 2\5\9.
# ! * ! PORK @ # GRRR @ # ! ! ! *
penso che me ne andro' a letto ..... che e' meglio
ciao
andrea

Andrea.9

unread,
Nov 25, 2011, 9:22:41 PM11/25/11
to
> In A1 Il Cognome
> In B1:
> = SOSTITUISCI(A$1;INDICE({"A"\"E"\"I"\"O"\"U"};RIF.COLONNA()-
> RIF.COLONNA($A$1));"")
> da trascinare fino a F5

bella, semplice ed efficace
e per estensione anche questa:
= SOSTITUISCI(A
$1;INDICE({"b"\"c"\"d"\"f"\"g"\"h"\"j"\"k"\"l"\"m"\"n"\"p"\"q"\"r"\"s"\"t"\"v"\"w"\"x"\"y"\"z"};RIF.COLONNA()-
RIF.COLONNA($A$1));"")
elio: +1 :-)
ciao
andrea

Andrea.9

unread,
Nov 25, 2011, 9:49:34 PM11/25/11
to
che poi in botta unica diventa:
=SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(K6;"A";"");"E";"");"I";"");"O";"");"U";"")
per le vocali
=SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(K6;"B";"");"C";"");"D";"");"F";"");"G";"");"H";"");"J";"");"K";"")
=SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(AK6;"L";"");"M";"");"N";"");"P";"");"Q";"");"R";"");"S";"");"T";"")
=SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(AK7;"V";"");"W";"");"X";"");"Y";"");"Z";"")
per le consonanti
questa in tre step perche' 2003 non mi accetta formula + lunga
comunque tutto merito di elio
ciao
'notte
andrea

plinius

unread,
Nov 26, 2011, 5:45:10 AM11/26/11
to

"elby" <elib...@tin.it> ha scritto nel messaggio
news:026b03e6-d9f3-4680...@g7g2000vbd.googlegroups.com...
Bene Elio! :-)
Il metodo funziona e la risposta è valida.
A te i 3 punti per la risposta veloce e l'onere di proporre il prossimo
quesito!

Ed ora si apre la caccia alla semplicità...

Ciao,
E.


r

unread,
Nov 27, 2011, 5:05:37 PM11/27/11
to
On 25 Nov, 18:18, "plinius" <punto.linea...@LEVARElibero.it> wrote:
> Per approfondire:https://sites.google.com/site/e90e50/documento-plinius/quizzone-di-excel
>
> Ho ritrovato un mio vecchio file nel quale ricavavo il codice fiscale delle
> persone fisiche seguendo le regole fissate dal Decreto del Presidente della
> Repubblica 29 settembre 1973, n. 605.http://it.wikipedia.org/wiki/Codice_fiscale
urca non mi ero accorto del 40 :-) però meglio così ... visto che
avremo un 41 elbiano :-)

credo che il metodo più semplice sia di utilizzare il sostituisci ...
così se con le vocali si può fare in una formula sola ... con le
consonanti l'appoggio minimo è di 21 celle
così con nome in A1 in A2:
=SOSTITUISCI(MINUSC(A1);STRINGA.ESTRAI("bcdfghjklmnpqrstvwxyz";RIF.RIGA(A1);
1);"")
da trascinare fino a A22

saluti
r

plinius

unread,
Nov 28, 2011, 8:39:11 AM11/28/11
to

"r" <robb...@gmail.com> ha scritto nel messaggio
news:205f3532-836a-4744...@y7g2000vbe.googlegroups.com...
On 25 Nov, 18:18, "plinius" <punto.linea...@LEVARElibero.it> wrote:
> Per
> approfondire:https://sites.google.com/site/e90e50/documento-plinius/quizzone-di-excel
>
> Ho ritrovato un mio vecchio file nel quale ricavavo il codice fiscale
> delle
> persone fisiche seguendo le regole fissate dal Decreto del Presidente
> della
> Repubblica 29 settembre 1973, n.
> 605.http://it.wikipedia.org/wiki/Codice_fiscale
> Ricavavo il CF utilizzando delle macro e, per quella via, era tutto molto
> semplice e lineare.
> Poi provavo ad ottenere lo stesso risultato servendomi di formule.
> Rivedendo ora quel file, redatto quando ero alle prime armi con excel, mi
> sono reso conto che alcune formule le avrei scritte in altro modo oggi.
> Tra le altre ce ne sono un paio per le quali per�, anche adesso, non mi
> viene in mente un modo pi� semplice ed elegante:
> - quella che a partire dal cognome (ma � lo stesso per il nome), gi�
> ripulito di eventuali lettere accentate, spazi, apostrofi ecc., ricava una
> stringa delle sole consonanti e...
> - l'altra che ricava la stringa delle sole vocali.
>
> Per esempio avendo il cognome QUATTROCCHI una formula deve restituire
> QTTRCCH e un'altra UAOI.
>
> Farlo non � difficile e, infatti, non ho trovato difficolt� neanche
> all'epoca, ancorch� fossi pressoch� privo di esperienza, ma ho allora
> seguito il pi� semplice e pedestre dei sistemi, frazionando in pi� celle
> l'intera operazione.
> Forse non c'� un metodo migliore, ma forse s�... so bene che le vostre
> risorse sono imprevedibili...
> Punteggio ribaltato:
> 3 punti a chi d� la prima soluzione funzionante
> 5 punti a chi scova un sistema pi� semplice ed efficiente rispetto al
> primo
> postato
>
> Si possono usare celle di appoggio, formule multiple, insomma quel che si
> vuole, ma meno ci si allarga e migliore sar� la valutazione del metodo.
>
> Buon divertimento,
> E.

urca non mi ero accorto del 40 :-) per� meglio cos� ... visto che
avremo un 41 elbiano :-)

credo che il metodo pi� semplice sia di utilizzare il sostituisci ...
cos� se con le vocali si pu� fare in una formula sola ... con le
consonanti l'appoggio minimo � di 21 celle
cos� con nome in A1 in A2:
=SOSTITUISCI(MINUSC(A1);STRINGA.ESTRAI("bcdfghjklmnpqrstvwxyz";RIF.RIGA(A1);
1);"")
da trascinare fino a A22

saluti
r

******************

� un'ottima soluzione, anche se quella che avevo usato io si serviva di 4
colonne (per ottenere entrambe le stringhe) ciascuna con una formula
brevissima (29, 28, 36, 36).
Ricordo che il cognome da utilizzare � gi� pulito da caratteri impropri e in
lettere maiuscole.

Se entro oggi non arriva altro convalido questa.
Coraggio mpioeisti! :-)
Ciao,
E.


r

unread,
Nov 28, 2011, 8:58:12 AM11/28/11
to
On 28 Nov, 14:39, "plinius" <punto.linea...@LEVARElibero.it> wrote:
> "r" <robb....@gmail.com> ha scritto nel messaggionews:205f3532-836a-4744...@y7g2000vbe.googlegroups.com...
quindi diventano in una cella:
=SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(A1;"A";"");"E";"");"I";"");"O";"");"U";"")

e

=SOSTITUISCI(A1;STRINGA.ESTRAI("BCDFGHJKLMNPQRSTVWXYZ";RIF.RIGA(A1);
1);"")
da scrivere in A2 e trascinare fino A22 cella in cui si ha il
risultato

il problema con un appoggio diverso è che dovrai sempre tenere conto
della lunghezza del testo (credo).

saluti
r

plinius

unread,
Nov 28, 2011, 9:03:10 AM11/28/11
to

"r" <robb...@gmail.com> ha scritto nel messaggio
news:23dbb1c5-b768-4fb8...@w15g2000yqc.googlegroups.com...
***********************

No, le 4 colonne sono trascinate per 26 righe ;-)


r

unread,
Nov 28, 2011, 9:10:08 AM11/28/11
to
accorcio:
=SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(A1;"A";);"E";);"I";);"O";);"U";)

e

=SOSTITUISCI(A1;STRINGA.ESTRAI("BCDFGHJKLMNPQRSTVWXYZ";RIF.RIGA(A1);
1);)

doppie virgolette inutili :-)
r

plinius

unread,
Nov 28, 2011, 9:40:53 AM11/28/11
to

"r" <robb...@gmail.com> ha scritto nel messaggio
news:6228476c-1a16-4ea0...@l19g2000yqc.googlegroups.com...
*****************

Già, doppie virgolette inutili, quindi 29. 28, 34, 34
E.


elby

unread,
Nov 28, 2011, 11:49:10 AM11/28/11
to
Ciao
a RIF.RIGA(A1) che è più breve, preferisco il più robusto RIF.RIGA()-
RIF.RIGA($A$1), scritta in riga A2, perchè la formula non restituisce
risultati inattesi, anche se l'utente aggiunge righe sopra la
formula.
A riprova si scrive lo stesso cognome di A1 in B1 e in B2 si immette
la formula:
=SOSTITUISCI(B1;STRINGA.ESTRAI("BCDFGHJKLMNPQRSTVWXYZ";RIF.RIGA()-
RIF.RIGA($B$1); 1);)
e trascinare fino a B22.
Il risultato è inizialmente uguale a quello della colonna A con la
formula :
=SOSTITUISCI(A1;STRINGA.ESTRAI("BCDFGHJKLMNPQRSTVWXYZ";RIF.RIGA(A1);
1);)
I risultati differiscono dopo aver immesse nuove righe sopra la prima.

Elio

plinius

unread,
Nov 28, 2011, 12:08:25 PM11/28/11
to

"elby" <elib...@tin.it> ha scritto nel messaggio
news:ce3729c5-4107-4ca4...@s6g2000vbc.googlegroups.com...
*******************

In teoria avresti ragione, ma in un foglio con tanti riferimenti è
praticamente impossibile pensare di inserire formule a prova di apocalisse:
ci saranno sempre infinite operazioni in grado di comprometterne il
correttto funzionamento!
La logica dovrebbe essere nel senso di considerare la struttura di un file
alterabile solo con cognizione di causa e, se posto in mani inesperte, la
protezione ci viene in aiuto.
Tieni inoltre presente che RIF.RIGA($B$1) restituisce sempre e comunque 1 e,
quindi, la tua formula equivale a questa:

=SOSTITUISCI(B1;STRINGA.ESTRAI("BCDFGHJKLMNPQRSTVWXYZ";RIF.RIGA()-1;1);)

Ciao Elio,
Enrico :-)


paoloard

unread,
Nov 28, 2011, 12:15:11 PM11/28/11
to
"elby" ha scritto nel messaggio
news:ce3729c5-4107-4ca4...@s6g2000vbc.googlegroups.com...
-----------------------------------------------------------

Alé, trovi tutte le consonanti in un colpo solo !
=SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(MAIUSC(A1);"B";"");"C";"");"D";"");"F";"");"G";"");"H";"");"J";"");"K";"");
"L";"");"M";"");"N";"");"P";"");"Q";"");"R";"");"S";"");"T";"");"V";"");"W";"");"X";"");"Y";"");"Z";"")

ciao paoloard
http://www.riolab.org

paoloard

unread,
Nov 28, 2011, 12:16:49 PM11/28/11
to
"paoloard" ha scritto nel messaggio news:jb0fiq$kld$1...@dont-email.me...
...azzz...

cassa "consonanti"
metti "vocali"

paoloard
http://www.riolab.org

Andrea.9

unread,
Nov 28, 2011, 12:41:41 PM11/28/11
to
> Alé, trovi tutte le "vocali"un colpo solo !
> =SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SO STITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTI TUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUI SCI(SOSTITUISCI(SOSTITUISCI(MAIUSC(A1);"B";"");"C";"");"D";"");"F";"");"G"; "");"H";"");"J";"");"K";"");
> "L";"");"M";"");"N";"");"P";"");"Q";"");"R";"");"S";"");"T";"");"V";"");"W" ;"");"X";"");"Y";"");"Z";"")

con il mio 2003 fa le bizze (credo che non accetti troppe
nidificazioni)
e' per questo che l'avevo gia' proposta ma in tre spet
ciao
andrea

paoloard

unread,
Nov 28, 2011, 12:45:03 PM11/28/11
to
"Andrea.9" ha scritto nel messaggio
news:1cfa20f5-ff6a-48db...@p9g2000vbb.googlegroups.com...
Sě Andrea, avrei dovuto specificare che uso la versione 2010.

ciao paoloard
http://www.riolab.org

plinius

unread,
Nov 28, 2011, 12:48:26 PM11/28/11
to

"Andrea.9" <a.nove...@dappolonia.it> ha scritto nel messaggio
news:1cfa20f5-ff6a-48db...@p9g2000vbb.googlegroups.com...
******************

Sì, infatti accetta max 8 SOSTITUISCI e comunque, essendo a caccia di
brevità, non mi sembra la soluzione migliore (431 caratteri).
:-)


Andrea.9

unread,
Nov 28, 2011, 12:58:50 PM11/28/11
to
> Sì, infatti accetta max 8 SOSTITUISCI e comunque, essendo a caccia di
> brevità, non mi sembra la soluzione migliore (431 caratteri).
> :-)

pero' una formula trascinata n volte non andrebbe conteggiata tante
volte quanto la si applica?
un po' come si conteggiano i nomi all'interno di un unica formula
ciao
puntiglioso ...
andrea

paoloard

unread,
Nov 28, 2011, 1:07:08 PM11/28/11
to
"plinius" ha scritto nel messaggio news:jb0hhc$1om$1...@dont-email.me...
-------------------------------------------------------

Ok, allora riprendendo quanto già detto:
in A1 il Nome,
in B1 le consonanti:
=SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(SOSTITUISCI(MAIUSC(A1);"A";);"E";);"I";);"O";);"U";)

aggiungo
in A2 le vocali con:
=SOSTITUISCI(MAIUSC(A1);STRINGA.ESTRAI($B$1;RIF.RIGA(A1);1);) da trascinare
solo fino alla riga 8 o altra riga a seconda della lunghezza del nome.

ciao paoloard
http://www.riolab.org

Andrea.9

unread,
Nov 28, 2011, 1:07:02 PM11/28/11
to
che poi sarebbe:
=SOSTITUISCI(A1;STRINGA.ESTRAI("BCDFGHJKLMNPQRSTVWXYZ";RIF.RIGA(A1);
1);)
lunghezza 72 x 21 volte = 1512
comunque ad insindacabile giudizio dell'arbitro ^__^
ciao
andrea

plinius

unread,
Nov 28, 2011, 1:08:57 PM11/28/11
to

"Andrea.9" <a.nove...@dappolonia.it> ha scritto nel messaggio
news:12377da9-c347-4d5c...@w1g2000vba.googlegroups.com...
****************

Tutto dipende dagli obiettivi che si hanno.
Dal punto di vista di chi scrive la formula scriverne una da 10 caratteri e
trascinarla su 100 celle è più semplice e sbrigativo che non scrivere una
formula da 999 caratteri (che, pure, sarebbe più breve)...
Non a caso nel proporre il quesito ho parlato di semplicità (piuttosto che
di brevità)... c'è sempre un motivo nelle cose eh eh :-)))

;-)


plinius

unread,
Nov 28, 2011, 1:13:20 PM11/28/11
to

"paoloard" <xxp...@alice.it> ha scritto nel messaggio
news:jb0ik5$9m8$1...@dont-email.me...
No Paolo, ad ogni riga testi per una delle consonanti dell'alfabeto: devi
comunque trascinare per 21 celle, fino alla Z.


paoloard

unread,
Nov 28, 2011, 1:17:21 PM11/28/11
to
"plinius" ha scritto nel messaggio news:jb0j01$cik$1...@dont-email.me...
-----------------------

Sì Enrico hai ragione, va trascinata per tutto l'intervallo possibile delle
consonanti. Però la formula funziona con riferimento alla cella in cui sono
già state estratte le consonanti senza necessità di replicarle tutte
all'interno della formula.
ciao paoloard
http://www.riolab.org

plinius

unread,
Nov 28, 2011, 1:24:07 PM11/28/11
to

"paoloard" <xxp...@alice.it> ha scritto nel messaggio
news:jb0j7a$e5d$1...@dont-email.me...
Verissimo questo ma, ancorché accorci la formula da trascinare, non ti fa
risparmiare lavoro nella fase di redazione.
Ma a quel 29/28/34/34 nessuno vuole pensarci?
4 colonne per 26 righe...
:-)


elby

unread,
Nov 28, 2011, 1:49:15 PM11/28/11
to
Per tutti
Nel ricercare le possibili soluzioni, non vi sarà mancato di
verificare che stranamente le formule matriciali non gestiscono la
funzione CONCATENA. Perche?
Elio

plinius

unread,
Nov 28, 2011, 2:39:54 PM11/28/11
to

"elby" <elib...@tin.it> ha scritto nel messaggio
news:bfece492-e32e-4dd8...@k26g2000yqd.googlegroups.com...
*******************

Vecchia storia questa, e bisognerebbe porre la domanda a MS
Bah! :-(


eliano

unread,
Nov 28, 2011, 4:33:28 PM11/28/11
to
On 28 Nov, 20:39, "plinius" <punto.linea...@LEVARElibero.it> wrote:
> "elby" <elibu...@tin.it> ha scritto nel messaggionews:bfece492-e32e-4dd8...@k26g2000yqd.googlegroups.com...
> Per tutti
> Nel ricercare le possibili soluzioni, non vi sarà mancato di
> verificare che stranamente le formule matriciali non gestiscono la
> funzione CONCATENA. Perche?
> Elio
>
> *******************
>
> Vecchia storia questa, e bisognerebbe porre la domanda a MS
> Bah! :-(

Mah Enrico,
mi swono beccato un po' di influenza, Mammà ha fatto cent'anni e forse
per questo rimango ai santi vecchi.
Quando non usavo il Vba, facevo così:

vocali consonanti ENRICO PLINIUS
A B ENRICO PLINIUS
E C NRICO PLINIUS
I D NRCO PLINIUS
O F NRC PLINIUS
U G NRC PLINIUS
H PLINIUS
J PLINIUS
K PLINIUS
L PINIUS
M PINIUS
N PIIUS
P IIUS
Q IIUS
R IIUS
S IIU
T IIU
V IIU
W IIU
X IIU
Y IIU
Z IIU

in C2:C6 =SOSTITUISCI(C1;A2;"")
in B2:B6 =SOSTITUISCI(D1;B2;"")

Saluti.
Eliano

r

unread,
Nov 28, 2011, 6:08:11 PM11/28/11
to
On 28 Nov, 19:24, "plinius" <punto.linea...@LEVARElibero.it> wrote:
> "paoloard" <xxp...@alice.it> ha scritto nel messaggionews:jb0j7a$e5d$1...@dont-email.me...
>
>
>
>
>
>
>
>
>
> > "plinius"  ha scritto nel messaggionews:jb0j01$cik$1...@dont-email.me...
>
> > "paoloard" <xxp...@alice.it> ha scritto nel messaggio
> >news:jb0ik5$9m8$1...@dont-email.me...
> >> "plinius"  ha scritto nel messaggionews:jb0hhc$1om$1...@dont-email.me...
>
> >> "Andrea.9" <a.novelli-...@dappolonia.it> ha scritto nel messaggio
ci provo ... anche se in fatto di semplicità rimango sulle mie ...
diciamo che il cognome è in C1 e in D1
in A2 =CODICE.CARATT(RIF.RIGA(A65))
in B2 =VAL.ERR(TROVA(A2;"AEIOU"))
in C2 =SOSTITUISCI(C1;RIPETI(A2;B2);)
in D2 =SOSTITUISCI(D1;RIPETI(A2;1-B2);)

da trascinare fino alla riga 27

va bene?
saluti
r

eliano

unread,
Nov 28, 2011, 7:24:13 PM11/28/11
to
> r- Nascondi testo citato
>
> - Mostra testo citato -

LOL, Ciao

eliano

unread,
Nov 28, 2011, 7:53:45 PM11/28/11
to
On 29 Nov, 00:08, r <robb....@gmail.com> wrote:
> r- Nascondi testo citato
>
> - Mostra testo citato -

I post non si vedono,per cui insisto.:-))
Sempre all'antico, rendevo invisibili righe & colonne e me la cavavo
con due sole righe visibili: quella del cognome/nome e quella del
contenuto in consonanti e vocali.
Qui invece Google fa le cose per bene.:-))
Arisaluti a tutti
Eliano
.

eliano

unread,
Nov 28, 2011, 7:44:18 PM11/28/11
to
On 29 Nov, 00:08, r <robb....@gmail.com> wrote:
> r- Nascondi testo citato
>
> - Mostra testo citato -

Ripeto il post, ma Google stasera andrebbe fucilato.

LOL
Quasi come all'antico; certo che va bene!
Ciao Roby,
Eliano

plinius

unread,
Nov 29, 2011, 6:55:57 AM11/29/11
to

"r" <robb...@gmail.com> ha scritto nel messaggio
news:9ca3c484-0783-4f5c...@u5g2000vbd.googlegroups.com...
*********************

Ecco, questa è quella giusta... e, anche se non sei d'accordo, spiego il mio
punto di vista.
Per eliminare le consonanti devi digitarne l'elenco.
Che sia inserito nella formula come hai fatto tu, che sia scritto un altra
cella come proponeva Paolo, che sia inserito in una serie di celle in
colonna come proponeva Eliano, ma devi digitarlo! Senza peraltro evitare,
per questo, il trascinamento della formula che si rende comunque necessario!
Una volta stabilito che la formula deve essere trascinata, tant'è usare tale
necessità anche per creare le lettere da utilizzare ed il flag che selezioni
vocali e consonanti.
Se poi a tale scelta corrisponde anche un minore numero di caratteri
complessivi per le 4 formule, mi sembra che sia la scelta più sbrigativa.
Questo è il mio punto di vista, ma posso capire che sia opinabile e non
necessariamente condiviso...
Le formule che avevo usato io (di cui avevo misurato la lunghezza in fondo,
con celle di righe a 2 cifre) sono queste:
in B2 =CODICE.CARATT(RIF.RIGA(A65))
in C2 =VAL.ERR(TROVA(B2;"AEIOU"))
in D2 =SE(C2;D1;SOSTITUISCI(D1;B2;))
in E2 =SE(C2;SOSTITUISCI(E1;B2;);E1)
da trascinare fino alla riga 27
Lunghezza totale (29 + 27 + 30 + 30), qualche carattere in meno rispetto
alle tue che, comunque, restano le migliori proposte.

Quindi, concludendo:
- a te vanno i 5 punti per la soluzione più semplice;
- ad Elio i 3 punti per la soluzione veloce e l'onere del prossimo quesito;
- ad Eliano un pubblico encomio per la soluzione che, pur prevedendo la
digitazione degli elenchi di consonanti e vocali, li sfrutta al meglio
limitando la dimensione delle formule da usare.

Al prossimo quesito,
Enrico :-)


r

unread,
Nov 29, 2011, 7:29:12 AM11/29/11
to
On 29 Nov, 12:55, "plinius" <punto.linea...@LEVARElibero.it> wrote:
> "r" <robb....@gmail.com> ha scritto nel messaggionews:9ca3c484-0783-4f5c...@u5g2000vbd.googlegroups.com...
> On 28 Nov, 19:24, "plinius" <punto.linea...@LEVARElibero.it> wrote:
>
> ci provo ... anche se in fatto di semplicit rimango sulle mie ...
> diciamo che il cognome in C1 e in D1
> in A2 =CODICE.CARATT(RIF.RIGA(A65))
> in B2 =VAL.ERR(TROVA(A2;"AEIOU"))
> in C2 =SOSTITUISCI(C1;RIPETI(A2;B2);)
> in D2 =SOSTITUISCI(D1;RIPETI(A2;1-B2);)
>
> da trascinare fino alla riga 27
>
> va bene?
> saluti
> r
>
> *********************
>
> Ecco, questa quella giusta... e, anche se non sei d'accordo, spiego il mio
> punto di vista.
> Per eliminare le consonanti devi digitarne l'elenco.
> Che sia inserito nella formula come hai fatto tu, che sia scritto un altra
> cella come proponeva Paolo, che sia inserito in una serie di celle in
> colonna come proponeva Eliano, ma devi digitarlo! Senza peraltro evitare,
> per questo, il trascinamento della formula che si rende comunque necessario!
> Una volta stabilito che la formula deve essere trascinata, tant' usare tale
> necessit anche per creare le lettere da utilizzare ed il flag che selezioni
> vocali e consonanti.
> Se poi a tale scelta corrisponde anche un minore numero di caratteri
> complessivi per le 4 formule, mi sembra che sia la scelta pi sbrigativa.
> Questo il mio punto di vista, ma posso capire che sia opinabile e non
> necessariamente condiviso...
> Le formule che avevo usato io (di cui avevo misurato la lunghezza in fondo,
> con celle di righe a 2 cifre) sono queste:
> in B2 =CODICE.CARATT(RIF.RIGA(A65))
> in C2 =VAL.ERR(TROVA(B2;"AEIOU"))
> in D2 =SE(C2;D1;SOSTITUISCI(D1;B2;))
> in E2 =SE(C2;SOSTITUISCI(E1;B2;);E1)
> da trascinare fino alla riga 27
> Lunghezza totale (29 + 27 + 30 + 30), qualche carattere in meno rispetto
> alle tue che, comunque, restano le migliori proposte.
>
> Quindi, concludendo:
> - a te vanno i 5 punti per la soluzione pi semplice;
> - ad Elio i 3 punti per la soluzione veloce e l'onere del prossimo quesito;
> - ad Eliano un pubblico encomio per la soluzione che, pur prevedendo la
> digitazione degli elenchi di consonanti e vocali, li sfrutta al meglio
> limitando la dimensione delle formule da usare.
>
> Al prossimo quesito,
> Enrico :-)

quando ti vengono assegnati 5 punti c'è poco da lamentarsi :-)
ho usato ripeti perchè comunque battevo i tuoi numeri (quelli che
avevi dato nell'ultimo post) ma se sapevo che invece erano già 29 27
30 30 avrei postato col SE :-)

adesso vediamo il prossimo quesito anche se aimè ... sono incasinato
come non mai ... UFFF

p.s.
hai letto l'ultimo articolo su E90E50fx? si parla anche di CELLA ... e
in fin dei conti è anche un modo per accorciare le formule che la
usano ... tipo al posto di CELLA("riga") gli puoi passare "row" e
risparmi un carattere ... che con quello che costano ... eh :-D

ciao
r

plinius

unread,
Nov 29, 2011, 8:03:58 AM11/29/11
to

"r" <robb...@gmail.com> ha scritto nel messaggio
news:356c4e3b-b97f-4434...@y7g2000vbe.googlegroups.com...
********************

Azz! mi è appena venuto in mente un modo per risparmiare un altro paio di
caratteri.
Invece di:
in D2 =SE(C2;D1;SOSTITUISCI(D1;B2;))
in E2 =SE(C2;SOSTITUISCI(E1;B2;);E1)


in D2 =SOSTITUISCI(D1;SE(C2;;B2);)
in E2 =SOSTITUISCI(E1;SE(C2;B2;);)

28 + 28 invece di 30 + 30 :-))


plinius

unread,
Nov 29, 2011, 8:03:12 AM11/29/11
to

"r" <robb...@gmail.com> ha scritto nel messaggio
news:356c4e3b-b97f-4434...@y7g2000vbe.googlegroups.com...
************************++

questa scoperta l'ho fatta ieri leggendo una tua risposta nella quale
indicavi "protect" piuttosto che "proteggi" e ho subito provato eh eh... chi
l'avrebbe mai detto?
Ora vado a leggere l'articolo :-)
Ciao!


r

unread,
Nov 29, 2011, 4:28:02 PM11/29/11
to
On 29 Nov, 12:55, "plinius" <punto.linea...@LEVARElibero.it> wrote:

> - ad Elio i 3 punti per la soluzione veloce e l'onere del prossimo quesito;

> Al prossimo quesito,
> Enrico :-)

ma secondo te elby a capito che deve postare il Quesito 41?
:-)
r

eliano

unread,
Nov 29, 2011, 5:10:26 PM11/29/11
to
se l'ha capito probabilmente accaperà.:-))

r

unread,
Nov 29, 2011, 6:19:11 PM11/29/11
to
questa l'ho meritata :-)
r

eliano

unread,
Nov 29, 2011, 7:03:55 PM11/29/11
to
Per gli amici questo ed altro. :-))
Ciao
Eliano

plinius

unread,
Nov 30, 2011, 6:53:16 AM11/30/11
to

"r" <robb...@gmail.com> ha scritto nel messaggio
news:b1fa22ab-9541-4cf9...@20g2000yqa.googlegroups.com...
Elioooooo...batti un colpo dāi!
Inserisci un post per preannunciare la pubblicazione del quesito 41, cosė r
la smette di arrrrrrrrrovellarsi :-)))
Ciao,
E.


elby

unread,
Dec 1, 2011, 5:18:12 AM12/1/11
to
Ho capito
Datemi 2 giorni ( oggi e domani).
Elio

On 30 Nov, 12:53, "plinius" <punto.linea...@LEVARElibero.it> wrote:
> "r" <robb....@gmail.com> ha scritto nel messaggionews:b1fa22ab-9541-4cf9...@20g2000yqa.googlegroups.com...
>
> > On 29 Nov, 12:55, "plinius" <punto.linea...@LEVARElibero.it> wrote:
>
> >> - ad Elio i 3 punti per la soluzione veloce e l'onere del prossimo
> >> quesito;
>
> >> Al prossimo quesito,
> >> Enrico :-)
>
> > ma secondo te elby a capito che deve postare il Quesito 41?
> > :-)
> > r
>
> Elioooooo...batti un colpo dài!
> Inserisci un post per preannunciare la pubblicazione del quesito 41, così r

r

unread,
Dec 1, 2011, 12:25:20 PM12/1/11
to
On 1 Dic, 11:18, elby <elibu...@tin.it> wrote:
> Ho capito
> Datemi 2 giorni ( oggi e domani).
> Elio

così tanto?
:-)
scherzo ... fai anche 3 che problemi noncenesono anzi egoisticamente
parlando .... magari sarò meno incasinato :-)
r

eliano

unread,
Dec 1, 2011, 5:23:16 PM12/1/11
to
Per Natale potremmo regalarti una frusta come quelle che usano dalle
parti di Mauro.:-))
(uno scherzo al giorno leva il medico di torno; e se non si leva, lo
possiamo anche cacciare):-))
Saluti
Eliano
0 new messages