[ walterEU @ 09.07.2009. 00:54 ] @
Kako rešiti problem sa predugačkim listama u padajućem meniju?

Data Validation List koristim u šablonu za fakture u koloni NAZIV PROIZVODA na osnovu koje LOOKUP funkcijom dobijam cenu i jedinicu mere. Ovo naglašavam zato što mislim da mi rešenje sa Combobox-om ne bi puno pomoglo.

[ Take 5 @ 09.07.2009. 07:51 ] @
^ Kada u Excelu postane tesno, onda je vreme da pređeš na Access.
[ walterEU @ 09.07.2009. 12:34 ] @
Pa, probao sam Access ali kao prvo, nisam preterano vest u njemu a druga stvar je da je Excel mnogo tolerantniji za rad. Hocu da kazem da poneki put moram da modifikujem sadrzinu i izgled fakture u zavisnosti od kupca a u Accessu mi to predstavlja problem.

Ovaj problem sa dugackim listama sam u stavri donekle resio pomocu Jpecinog (hvala!) resenja u postu http://www.elitesecurity.org/t277474-0#1663628 pa sam napravio grupe proizvoda i iskoristio primer Data Validation Dynamic, koji je Jpeca tamo postavio.

[ Jpeca @ 09.07.2009. 20:14 ] @
a/ Možeš recimo da listu vrednosti za izbor postaviš neposredno iznad ćelije sa padajućom listom.
Onda redove sa listom za izbor sakriješ.
Ukoliko ti je (standardno) uključen Autocomplete, Excel će ti nakon unosa prvih nekoliko znakova popuniti ostatak.


b/ Druga alternativa su vezane padajuće liste npr po kategorijama proizvoda, pa nazivu/šifri
c/ Treća alternativa je programiranje.
[ timmy @ 09.07.2009. 23:13 ] @
Evo jednog primera koji bi ti mogao pomoci.

Kako birati ime osobe (pogotovo kada ih ima desetine ili stotine razlicitih) iz padajuce liste?
Najpre u jednu celiju upises pocetno slovo a u susednoj se u padajucoj listi (Data validation)
pojavi filtrirani spisak samo osoba kojima ime pocinje datim slovom.

Postavka:

1. u koloni A postoji skup OSOBE (A2:A11) sa spiskom imena
2. u C2 se zadaje pocetno slovo imena
3. u koloni F se zadaje matricna formula koja se kopira nanize a koja daje filtrirani spisak

Code:

F2  =IF(COUNTIF(Osobe,$C$2&"*")>=ROW()-1,INDEX(Osobe,LARGE((LEFT(Osobe,1)=$C$2)*(ROW(Osobe)-1),COUNTIF(Osobe,$C$2&"*")-ROW()+ROW($F$2))),"")


4. definisemo ime SPISAK po formuli

Code:

=OFFSET(Sheet1!$F$2,0,0,SUMPRODUCT(--(Sheet1!$F$2:$F$100<>"")),1)


ovo ime vraca skup celija koje sadrze rezultat filtriranja.

5. kreiramo Data Validation - List po formuli

Code:

=Spisak


Pozdrav
[ walterEU @ 10.07.2009. 14:19 ] @
Sjajan primer Timmy!

S obzirom da na slovo "C" imam preko 100 artikala, malo sam korigovao formulu pa sam umesto Osobe;1 i Osobe;-1 stavio 3 i -3 i sad mi je potrebno tri pocetna slova da upisem, sto mi u potpunosti resava problem. Hvala!

Da li formula moze da se primeni i na neke reci iz sredine teksta? Recimo Mobilni telefon N75, Mobilni telefon N95...itd.
Verovatno bi nekome ovo koristilo.
[ 3okc @ 12.07.2009. 12:07 ] @
Citat:
walterEU: ..malo sam korigovao formulu pa sam umesto Osobe;1 i Osobe;-1 stavio 3 i -3 i sad mi je potrebno tri pocetna slova da upisem


Ja sam izmenio samo onaj "stavio 3" deo, :) i bilo je dovoljno da radi! Mali problem predstavlja "samo" što f-ja daje besmislene rezultate ako se ne unesu tri slova. (Nisam probao sa više od tri jer nemam dovoljno veliki uzorak na kom bih se "igrao".)

Što se tiče onog pitanja da se formula prilagođava za delove iz sredine teksta, primećujem da ti je primer sa Nokiom neodgovarajući: prvo, promena je na kraju, a sem toga, radi se o različitim modelima telefona koje, uz dobru organizaciju podataka svakako ne bismo navodili zajedno sa proizvođačem, već u zasebnoj koloni. A tada nije problem odraditi filtriranje. Recimo, tvoja potreba za tri slova je možda nekome 'preterana' - za postavljeni primer svakako, dok bi neko drugi možda hteo 'dva slova' ili tsl. Zato bi idealno bilo kada rešenje ne bi bilo 'osetljivo' na ovako male promene

Uopšte uzev, kada se radi o ovakvim specifičnim zahtevima za implementiranje nekakve "Regular expression" opcije, za omogućavanje više obrazaca u filtriranju, najbolje rešenje je VBA i/ili pisanje korisničke f-je.
[ savicbn59 @ 17.10.2013. 21:56 ] @
Pogledao sam ovaj primer pretraživanja padajućeg menija i vidim da je odlično zamišljen i odrađen. Međutim, ja moram da priznam da nisam sve do kraja ukapirao jer ga nisam mogao primeniti na moj slučaj. Naime, nije mi potpuno jasna tačka: 4. definisemo ime SPISAK po formuli
Code:
=OFFSET(Sheet1!$F$2,0,0,SUMPRODUCT(--(Sheet1!$F$2:$F$100<>"")),1)

Iz prikačenog primera ne vidim u kojoj je ćeliji smeštena ova formula. Formula se doduše odnosi na ćeliju $F$2 ali tu je već smeštena matrična formula.
U tački 5. se kaže da je Data Validation=SPISAK.
Data Validation=A2:A11, pa i tu nema mesta za formulu =OFFSET(Sheet1!$F$2,0,0,SUMPRODUCT(--(Sheet1!$F$2:$F$100<>"")),1) jer ne mogu dve formule biti u istoj ćeliji. Ne mogu nikako da dešifrujem gde se nalazi formula koja se odnosi SPISAK. Zaista mi je potrebna pomoć, Veliki pozdrav!!!!
[ Jpeca @ 18.10.2013. 12:50 ] @
Otvoriš dijalog Name Manager (sa kartice Formulas) za rad sa imenima opsega/ćelija. Za ime Spisak videćeš u Refers to: ... da referenca nije na fiksnu ćeljiu/opseg nego dinamička pomoću navedene formule
[ savicbn59 @ 18.10.2013. 21:52 ] @
Otvrao sam ja Name Manager ali nikako nisam mogao povezati stvari i prilagoditi formulu mom slučaju. Iz svakog pokušaja dobijem nešto drugo i svaki pokušaj ostaje upamćen na Name menager što me dodatno zbunjuje. Sa druge strane, nekada mi se umesto $F$2, pojavi G54278 i slično tome. Zaista ne mogu ovo da odgonetnem do kraja, Veliki pozdrav!!!!
[ savicbn59 @ 21.10.2013. 19:51 ] @
Na kraju sam odgonetnuo problem. Zbunjivalo me je to što umesto reči "Fitrirani spisak" koji stoji u prikačenom primeru, figuira reč "SPISAK", kojom se vrši definicija Data Validation. Za "SPISAK" sam mislio, da je to uz "Fitrirani spisak", još jedan parametar koji ne mogu da prepoznam u primeru . Naravno sad vidim da je reč o jednoj istoj stvari i da nije važno kako se šta zove već samo na šta se odnosi; Veliki pozdrav!!!
[ pondeke @ 23.10.2013. 14:00 ] @
zasto ne radi klasicno skrolovanje u data validation? kad otvorim padajucu listu, ne da mi da misem skrolujem, moze jedino sa strane...