[ Svako @ 02.12.2013. 15:06 ] @
Dobar dan!

Imam kolonu sa alfanumeričkim vrijednostima u obliku 1, 2, 2a, 2b, 3, 3a, 5, ...

Kada pokušam da je sortiram, Eksel to uradi za po mene vrlo neočekivan način. Naime, prvo idu redom brojevi bez slova iza, pa onda oni sa slovima, ali prvo dođe recimo 100a, pa tek onda 10a.

Ja bih želio da prvi kriterijum bude po broju, pa onda po slovu koje je iza.

Pretpostavljam da je jedan način da to uradim taj da razdvojim vrijednosti na dvije kolone, jednu koja će sadržati brojeve i drugu koja će sadržati eventualna slova, pa da onda uradim sortiranje najprije po koloni sa brojevima, pa onda po onoj sa eventualnim slovima. S tim što bih ja sa svojim znanjem za to izvesti morao eksportovati podatke u neki tekst fajl, pa koristiti neki tretman tipa regeks da bi mi razdvojio "brojke i slova", pa onda vratiti u eksel, pa sortiranje, pa vraćanje u istu kolonu...

Da li neko ima ideju za vba skript koji bi to automatski odradio?

Hvala unaprijed na posvećenom vremenu.


[ Jpeca @ 02.12.2013. 15:58 ] @
Možeš da dodaš npr. na kraju dve pomoćne kolone u jednoj bi pomoću formule izdvoji broji iz alfanumeričkog podatak u drugoj pomoću slične forule tekstualni deo iz alfanumeričkog podatka
Npr ako je podatak u A1 formule za pomoćne kolone bi bile
za numerički deo
Code:
=IF(ISNUMBER(A2);A2;VALUE(LEFT(A2;LEN(A2)-1)))

za tekstualni deo
Code:
=IF(ISNUMBER(A2);"";RIGHT(A2;1))


Pri tome ove formule podrazumevaju da tekstualni deo (ako postoji) ima samo jedan karakter

Nakon ovoga možeš soritirati po pomoćnoj koloni.
Pomoćene kolone koje si dobio na ovaj način možeš sakriti -to neće sprečiti mogućnost da soritraš po nijma
[ Svako @ 02.12.2013. 16:55 ] @
Hvala puno!

uradio sam kao sto si mi savjetovao, s tim sto sam kasnije uvidio da imam i celija koje su drugacije formatirane, pa sam na kraju u tu dodatnu kolonu stavio formulu koja provjerava da li je na pocetku broj (najvise trocifreni) pa onda uradim sortiranje po toj koloni.

=SI(ESTNUM(CNUM(GAUCHE(H15;3)));1*CNUM(GAUCHE(H15;3));SI(ESTNUM(CNUM(GAUCHE(H15;2)));1*CNUM(GAUCHE(H15;2));SI(ESTNUM(CNUM(GAUCHE(H15;1)));1*CNUM(GAUCHE(H15;1));"")))

(izvinjavam se, formule su na francuskom)


ako postoji nacin da se ovo uradi jednostavnije, bio bih zahvalan za savjet.


Da rezimiram, formula provjerava da li su prva tri karaktera u referentnoj celiji (ovdje h15) broj, ako ne onda gleda jesu li prva dva i ako ne, onda da li je samo prvi. ako nema brojeva medju prva tri karaktera, onda ne ispisuje nista, a ako ima, onda ispise taj broj.
[ Jpeca @ 03.12.2013. 16:02 ] @
Ovde imaš opšte rešenje za ekstrakciju broja iz alfanumeričkog stringa
http://office.microsoft.com/en...meric-strings-HA001154901.aspx
[ loto17 @ 04.12.2013. 08:39 ] @
Daleko lepse i jednostavnije (Access) resenje nalazi se ovde:
http://support.microsoft.com/kb/209632