|
Microsoft Office Excel |
|
|
Popuna padajuće listeNivo:
Jedna nedavna rasprava u konferencijskoj temi o Excelu na Sezamu me je podsetila na "dečije bolesti" prve aplikacije u Excelu koju sam pravio pre... uh... mnogo godina (Excel 5.0, eto kad). Naime, u pokušaju da delom automatizuje procese u jednom Excel obrascu, jedan kolega je iskoristio mogućnost da pravilom validacije napravi padajuću listu na ćeliji, tako da se stavke čitaju iz šifarnika, čime korisnik biva sprečen da unese neispravnu šifru, a ima pomoć u vidu liste u kojoj može da izabere neku od raspoloživih. Da vas podsetim: da biste napravili padajuću listu u ćeliji u Excelu 2003, pozovite dijalog Data / Validation (Podaci / Proveri valjanost), pa na prvoj kartici dijaloga, u listi za izbor odaberite opciju List; tada u polju za izvorne podatke (source) upišite ili obeležite opseg poželjnih vrednosti. Koincidentno, postupak u Excelu 2007 ima istu putanju u glavnoj traci. Sadržaj u padajućoj listi će biti sortiran u istom redosledu kao i izvor, pa ponovo sortirajte polazni šifarnik, ako je potrebno. Sasvim uobičajen i lak način, rekli biste, pa još možete dodati i opcije za informisanje korisnika na drugoj i trećoj kartici dijaloga. Međutim, pojavio se problem: kolega je primetio da svaki put kada proširi tabelu šifarnika nekim novim matičnim podatkom, tada je prinuđen da izmeni definiciju za validaciju unosa na mestu gde se taj šifarnik koristi, inače nova šifra neće biti uključena u padajuću listu. Dobra ideja se tako pretvorila u ozbiljan problem. Kada biste samo znali koliko mi je vremena te 1994. godine trebalo da sam otkrijem rešenje sasvim sličnog problema. Excel pažljivo čuva relativne reference čak i kad brišete ili dodajete redove ili kolone unutar nekog referenciranog opsega: sve adrese opsega će biti automatski preinačene tako da opet budu ispravne. Međutim, ako biste pridružili novi red na dno liste ili novu kolonu uz desnu ivicu, to ne bi proizvelo nikakav efekat - i to je uzrok problema koji je kolega pomenuo. Rešenje koje sam te davne godine otkrio bilo je efikasno, mada je počev od Excela 2003 zastarelo. U konkretnom slučaju padajuće liste, postoji i jedan sporedni efekat, ali svejedno, moram da ga opišem. Iskoristićemo osobinu Excela da očuva i prepravi sve reference kada se menja referencirani opseg. Prosto, prilikom definisanja izvornih podataka za listu, treba da proširite selekciju za još jedan, uvek prazan red neposredno ispod raspoloživih podataka. Na slici levo, to je opseg obojen u zelenu boju. Ključni momenat: kada treba da proširite šifarnik tako da i validacija odmah prihvati novu vrednost, tada obavezno ubacite novi red u radni list, ali tako da ubacivanje otpočnete tačno iz tog "fantomskog" reda. Time umećete red unutar reference, ona se proširuje i sve dolazi na svoje mesto. Negativni efekat ove tehnike je u tome što se na dnu padajuće liste u ćeliji koja koristi izvor uvek pojavljuje prazna stavka. Ali, to možete rešiti tako što ćete u definiciji validacije zabraniti da ćelija ostane nepopunjena podacima: isključite polje za potvrdu Ignore blank (Zanemari prazne ćelije). Rekoh - rešenje je zastarelo: počev od Excela 2003, postoji mnogo elegantnije rešenje koje ne iziskuje potrebu da varamo program. Ključ rešenja su eksplicitne liste ili, kako se to pomalo zbunjujuće sada naziva u Excelu 2007, tabele podataka. Kada raspolažete nekom homogenom listom, poželjno sa uređenim opisnim zaglavljem u gornjem redu, tada možete pritisnuti Ctrl+L (u Excelu 2007 takođe Ctrl+T) i desiće se mnoge zanimljive stvari o kojima sam više puta govorio na ovim stranicama. Zasad ćemo se zadržati samo na osobini koja rešava pomenuti problem, a to je da ovako uređen sadržaj čuva kontekst referenciranja bez potrebe da izmišljamo toplu vodu dodavanjem praznog donjeg reda u referencu. Tehnika je prosta: ako koristite Excel 2003/2007, proglasite šifarnik eksplicitnom listom, pa tek onda definišite pravilo validacije. Nakon toga, ubuduće ne brinite: program će se sam brinuti oko pridruživanja dodatih šifara u kontekst validacije, baš kao što se uvek proširuje kontekst za sve ostale upotrebe. Naravno, nema više ni neželjenog praznog člana u padajućoj listi...
|
|
Vrh stranice Prethodna stranica Naslovna strana Mapa sajta Pretraga |
| AFORIZAM ZA DANAS | OVIH DANA SLUŠAMO... |
| Copyright © Praktikum na Webu, 2000-2010; Valinor Design; sva prava pridržana. |