-
Fototrend
A Microsoft Excel topic célja segítséget kérni és nyújtani Excellel kapcsolatos problémákra.
Kérdés felvetése előtt olvasd el, ha még nem tetted.
Új hozzászólás Aktív témák
-
Mutt
senior tag
válasz
nova001
#18973
üzenetére
Hello,
...akarok egy lenyiló listát amibe abc sorrendbe vannak a nevek és ha elkezdek gépelni kidobja a javaslatot ?? vagy valami ehhez hasonlo...
Ha fontos, hogy gépeléskor már feljöjjön a javaslat, akkor csakis ActiveX combobox-al oldható meg a feladat.
VBA-val megoldható, hogy dinamikus tartományból ABC sorrendben legyen feltöltve a combobox.Ha elég hogy egy legördülő listából válasszon a felhasználó, akkor viszont az Adatérvényesítés is működik.

Ehhez az eredményhez kell pár előkészület:
1. Javasolt dinamikus tartományokat létrehozni, hogy a képletek rövidebbek legyen és kezeljék az újonnan bevitt adatokat.
A példámban 3 db dinamikus tartományt definiáltam.
Az első a bementi listát adja vissza, neve EredetiLista.
Képlete: =ELTOLÁS(Munka1!$B$2;0;0;DARAB2(Munka1!$B:$B)-1)
A második a bemeneti lista ABC sorrendjét adja vissza, neve ABCSorrend.
Képlete: =ELTOLÁS(Munka1!$C$2;0;0;DARAB2(Munka1!$B:$B)-1)
A harmadik pedig a végeredményt, ABC sorrendben az egyedi értékeket mutatja, neve: ABCLista
Képlete: =ELTOLÁS(Munka1!$D$2;0;0;DARABTELI(Munka1!$D:$D;">""")-1)2. Ezek után kezdhetjük az ABC sorba rendezést, ehhez a DARABTELI függvény használható.
A képlet ennyi: DARABTELI(bemeneti tartomany;"<"&vizsgált cella).
Ez megmondja hogy a vizsgált cella hanyadik a tartományban ABC sorrend szerint. pl. 2 azt fogja jelenti, hogy van előtte 2 találat.
A C2-es cellába ez a képlet menjen: =MAX(DARABTELI(EredetiLista;"<"&EredetiLista))
Ezt a képletet jó sokszor le kell másolni, hogy minden elem biztosan le legyen ellenőrzíve.3. A C-oszlopban tehát visszakapjuk a sorrendet, de mivel az eredeti listában is lehet ismétlődés ezért a sorrendben is lesznek azonos értékek. Ezért mielőtt megkeressük a legkisebb sorszámot ezt a listát ismétlődés mentessé kell tenni. Ehhez a Gyakoriság függvény használható fel többek között, a megoldásban a ABCSorrend/(GYAKORISÁG(ABCSorrend;ABCSorrend)>0) állítja elő a kívánt eredményt.
Megvan az egyedi sorrend, így már csak sorban ki kell olvasni növekvő értékben a számokat, Ez tipikusan a KICSI függvénnyel oldható meg. A megoldásomban az ÖSSZESÍT függvény paraméterezésével hívtam meg a KICSI függvényt, ennek az az előnye, hogy a hibás adatokat az ÖSSZESÍT függvény ki tudja automatikusan hagyni nem kell plusz képleteket beírnom.
Végre tehát megvan a sorrend, vagyis {0;1;2;3;4;5}. Innen már könnyen csak ki kell iratnom azt a cégnevet amely a 0 mellett található a B oszlopban. Ehhez az INDEX függvényt és a HOL.VAN-t használtam.
A fentiek alapján állt elő ez a hosszú képlet a D2-es cellában:
=HAHIBA(INDEX(EredetiLista;HOL.VAN(ÖSSZESÍT(15;6;ABCSorrend/(GYAKORISÁG(ABCSorrend;ABCSorrend)>0);SOROK(D$2:D2));ABCSorrend;0));"")
Ezt is jó sokat le kell másolni a D-oszlopban.Készen is vagyunk, már csak egy adatérvényesítést kell megadnunk az egyik cellára, a listának a ABCLista függvényt használva.
A fentiek egyrésze Mike Girvin ötletén alapul!
üdv
Új hozzászólás Aktív témák
- 5G Lenovo ThinkPad P14s Gen 3 Intel Core i7-1280P Nvidia T550 32GB 1000GB 1 év teljeskörű garancia
- HIBÁTLAN iPhone 13 128GB Green -1 ÉV GARANCIA - Kártyafüggetlen, MS3665, 100% Akkumulátor
- Apple iPhone 16e 128 GB Black Apple Garancia Beszámítás Házhozszállítás
- Samsung Galaxy S23 Ultra 5G 512GB, Kártyafüggetlen, 1 Év Garanciával
- Shining3D EinScan Pro 2X 3D szkenner
Állásajánlatok
Cég: NetGo.hu Kft.
Város: Gödöllő
Cég: Promenade Publishing House Kft.
Város: Budapest
Fferi50
