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

generazione codici alfanumerici aaa aab aac aad.....zzz

1,340 views
Skip to first unread message

mentaliu

unread,
Feb 24, 2011, 2:38:34 PM2/24/11
to
un cordiale saluto
ho la necessità di costruire in un foglio di excel , una colonna dove
generare una chiave alfanumerica di 3 caratteri progressiva partendo
da AAA , AAB, AAC fino ad arrivare a ZZZ .Premetto che sono un neofita
e non ho conoscenze di Macro e VBA.
Un sentito ringraziamento a chi vorrà darmi una mano.

r

unread,
Feb 24, 2011, 5:42:27 PM2/24/11
to

=CODICE.CARATT(INT((RIF.RIGA(A1)-1)/
26^2)+65)&CODICE.CARATT(INT((RIF.RIGA(A1)-1)/
26)+65)&CODICE.CARATT(RESTO(RIF.RIGA(C1)-1;26)+65)

poi trascini in basso
saluti
r

mentaliu

unread,
Feb 25, 2011, 2:29:26 AM2/25/11
to

Ciao ho provato ma non funziona perché non trovo la funzione
CODICE.CARATT (credo)

mentaliu

unread,
Feb 25, 2011, 2:33:32 AM2/25/11
to
On 24 Feb, 23:42, r <robb....@gmail.com> wrote:

trovato

grazie x il suggerimento

mentaliu

unread,
Feb 25, 2011, 2:56:09 AM2/25/11
to
On 24 Feb, 23:42, r <robb....@gmail.com> wrote:

niente da fare , mi segnala dopo la seconda & un errore su /26

mentaliu

unread,
Feb 25, 2011, 3:27:26 AM2/25/11
to
On 24 Feb, 23:42, r <robb....@gmail.com> wrote:

scusa sbagliavo io a copiare la formula .

grazie mille!!!!

Andrea.9

unread,
Feb 25, 2011, 1:47:21 PM2/25/11
to
On 24 Feb, 23:42, r <robb....@gmail.com> wrote:

scusa mi intrometto
la parte centrale
CODICE.CARATT(INT((RIF.RIGA(A1)-1)/26)+65)
sembra non funzionare correttamente perchè supera il carattere Z
non ho però idea di come modificarla

Andrea.9

unread,
Feb 25, 2011, 1:51:39 PM2/25/11
to
> non ho però idea di come modificarla- Nascondi testo citato
>
> - Mostra testo citato -

in realtà anche il primo ha lo stesso problema ma la cosa avviene solo
alla riga 17577

paoloard

unread,
Feb 25, 2011, 3:24:25 PM2/25/11
to
"Andrea.9" ha scritto nel messaggio
news:d22c3ac3-d253-4ef6...@by6g2000vbb.googlegroups.com...

---------------------------------------------------------------------------------------------

Così non dà errore:
=CODICE.CARATT(SE(INT((RIF.RIGA(A1)-1)/26^2)>=26;INT((RIF.RIGA(A1)/RIF.RIGA()-1)/26^2);INT((RIF.RIGA(A1)-1)/26^2))+65)&CODICE.CARATT(SE(INT((RIF.RIGA(A1)-1)/26)>=26;INT((RIF.RIGA(A1)/RIF.RIGA()-1)/26);INT((RIF.RIGA(A1)-1)/26))+65)&CODICE.CARATT(RESTO(RIF.RIGA(A1)-1;26)+65)
però dalla riga 17577 ritorna dalla sequenza AAA.


ciao paoloard
http://www.riolab.org

r

unread,
Feb 25, 2011, 5:37:20 PM2/25/11
to
On 25 Feb, 21:24, "paoloard" <xxp...@alice.it> wrote:
> "Andrea.9"  ha scritto nel messaggionews:d22c3ac3-d253-4ef6...@by6g2000vbb.googlegroups.com...

>
> On 25 Feb, 19:47, "Andrea.9" <a.novelli-...@dappolonia.it> wrote:
>
>
>
> > On 24 Feb, 23:42, r <robb....@gmail.com> wrote:
>
> > > On 24 Feb, 20:38, mentaliu <jjl...@tin.it> wrote:
>
> > > > un cordiale saluto
> > > > ho la necessit di costruire in un foglio di excel , una colonna dove

> > > > generare una chiave alfanumerica di 3 caratteri progressiva partendo
> > > > da AAA , AAB, AAC fino ad arrivare a ZZZ .Premetto che sono un neofita
> > > > e non ho conoscenze di Macro e VBA.
> > > > Un sentito ringraziamento a chi vorr darmi una mano.

>
> > > =CODICE.CARATT(INT((RIF.RIGA(A1)-1)/
> > > 26^2)+65)&CODICE.CARATT(INT((RIF.RIGA(A1)-1)/
> > > 26)+65)&CODICE.CARATT(RESTO(RIF.RIGA(C1)-1;26)+65)
>
> > > poi trascini in basso
> > > saluti
> > > r
>
> > scusa mi intrometto
> > la parte centrale
> > CODICE.CARATT(INT((RIF.RIGA(A1)-1)/26)+65)
> > sembra non funzionare correttamente perch supera il carattere Z
> > non ho per idea di come modificarla- Nascondi testo citato

>
> > - Mostra testo citato -
>
> in realt anche il primo ha lo stesso problema ma la cosa avviene solo
> alla riga 17577
> ---------------------------------------------------------------------------------------------
>
> Cos non d errore:

> =CODICE.CARATT(SE(INT((RIF.RIGA(A1)-1)/26^2)>=26;INT((RIF.RIGA(A1)/RIF.RIGA()-1)/26^2);INT((RIF.RIGA(A1)-1)/26^2))+65)&CODICE.CARATT(SE(INT((RIF.RIGA(A1)-1)/26)>=26;INT((RIF.RIGA(A1)/RIF.RIGA()-1)/26);INT((RIF.RIGA(A1)-1)/26))+65)&CODICE.CARATT(RESTO(RIF.RIGA(A1)-1;26)+65)
> per dalla riga 17577 ritorna dalla sequenza AAA.
>
> ciao paoloardhttp://www.riolab.org

si è vero che la formula aveva un errore,
modificherei così:
=CODICE.CARATT(RESTO(INT((RIF.RIGA(A1)-1)/26^2);
26)+65)&CODICE.CARATT(RESTO(INT((RIF.RIGA(A1)-1)/26);
26)+65)&CODICE.CARATT(RESTO(RIF.RIGA(C1)-1;26)+65)

anche se la prima parte secondo me si poteva lasciare com'era ... le
sequenze sono 26^3 quindi 17576 ... oltre credo sia inutile ripeterle
saluti
r

eliano

unread,
Feb 25, 2011, 6:21:30 PM2/25/11
to
> > ---------------------------------------------------------------------------­------------------
>
> > Cos non d errore:
> > =CODICE.CARATT(SE(INT((RIF.RIGA(A1)-1)/26^2)>=26;INT((RIF.RIGA(A1)/RIF.RIGA­()-1)/26^2);INT((RIF.RIGA(A1)-1)/26^2))+65)&CODICE.CARATT(SE(INT((RIF.RIGA(­A1)-1)/26)>=26;INT((RIF.RIGA(A1)/RIF.RIGA()-1)/26);INT((RIF.RIGA(A1)-1)/26)­)+65)&CODICE.CARATT(RESTO(RIF.RIGA(A1)-1;26)+65)

> > per dalla riga 17577 ritorna dalla sequenza AAA.
>
> > ciao paoloardhttp://www.riolab.org
>
> si è vero che la formula aveva un errore,
> modificherei così:
> =CODICE.CARATT(RESTO(INT((RIF.RIGA(A1)-1)/26^2);
> 26)+65)&CODICE.CARATT(RESTO(INT((RIF.RIGA(A1)-1)/26);
> 26)+65)&CODICE.CARATT(RESTO(RIF.RIGA(C1)-1;26)+65)
>
> anche se la prima parte secondo me si poteva lasciare com'era ... le
> sequenze sono 26^3 quindi 17576 ... oltre credo sia inutile ripeterle
> saluti
> r- Nascondi testo citato

>
> - Mostra testo citato -

Ciao Roby.
Se codesto e' vero (come e' vero),allora:

=SE(RIF.RIGA()>17576;"";CODICE.CARATT(RESTO(INT((RIF.RIGA()-1)/26^2);
26)+65)&CODICE.CARATT(RESTO(INT((RIF.RIGA()-1)/26);26)+65)&
CODICE.CARATT(RESTO(RIF.RIGA()-1;26)+65))

A proposito, a cosa servono le celle definite in RIF.RIGA() ?
(non e' una battuta, e' una domanda).
Smoke gets on the NG.:-))
Eliano

r

unread,
Feb 26, 2011, 7:43:25 AM2/26/11
to

a questa stregua va bene anche:
=SE(RIF.RIGA()>17576;"";CODICE.CARATT(INT((RIF.RIGA()-1)/26^2))
+65)&CODICE.CARATT(RESTO(INT((RIF.RIGA()-1)/26);26)+65)&
CODICE.CARATT(RESTO(RIF.RIGA()-1;26)+65))

per rif.riga() ... dai che domanda è? l'hai usato tu :-)
comunque per chi legge ... non per te ... rif.riga() restituisce la
riga della cella che contiene la formula ... se la formula =rif.riga()
è in A3 restituisce 3
saluti con cortine
r

r

unread,
Feb 26, 2011, 11:04:45 AM2/26/11
to

solo una precisazione sulla formula che hai proposto, funziona bene
solo se parti da A1 o comunque dalla prima riga .... proprio per causa
di quel rif.riga() senza argomento.
puf puf puf
r

eliano

unread,
Feb 26, 2011, 5:03:48 PM2/26/11
to
> > > > > =CODICE.CARATT(SE(INT((RIF.RIGA(A1)-1)/26^2)>=26;INT((RIF.RIGA(A1)/RIF.RIGA­­()-1)/26^2);INT((RIF.RIGA(A1)-1)/26^2))+65)&CODICE.CARATT(SE(INT((RIF.RIGA­(­A1)-1)/26)>=26;INT((RIF.RIGA(A1)/RIF.RIGA()-1)/26);INT((RIF.RIGA(A1)-1)/2­6)­)+65)&CODICE.CARATT(RESTO(RIF.RIGA(A1)-1;26)+65)

Appunto Roby.
Il problema era: generare un codice alfanumerico di tre caratteri
alfabetici, da te risolto brillantemente con quella formula.

Norman dixit:
" Credo vada ripetuto e sia opportuno
promulgare il principio:: per ottenere
una rispostautile, sarebbe consigliabile
enunciare non soltanto la destinazione
voluta, ma anche il motivo per il viaggio."

E l'OP non ha parlato del "motivo", cioè dell'uso che vuole fare di
quel codice. Ma una volta generato, l'unico modo per utilizzare quei
codici riguarda i valori restituiti dalle formule, onde evitare
stranezze, ad esempio, in caso di ordimanenti, cancellazioni o
inserimenti di righe, etc, ergo.... :-))

Attendiamo defilati dietro nuvolette di fumo simili a coriandoli
beneauguranti.
Eliano

0 new messages