Excel lekérdezés/keresés egyszerre több találattal?
Adott egy excel táblázat, melyben van 15 oszlop, mely különböző gyártók cikkszámait tartalmazza.
Adott az első oszlop, ami a saját cikkszámainkat tartalmazza.
Értelemszerűen a különböző gyártók nem mindent gyártanak, tehát vannak üres helyek is a sorokban.
Jelenleg ha valaki egy adott cikkszámmal érkezik, amiről nem tudja, hogy kinek a gyártmánya, az excel keresőjébe lesz beírva és az első találat, ami a saját cikkszámunk mellett megtalálható, elfogadásra kerül. Viszont lehet hogy az ABC123 cikkszám az 5-ös gyártónál és a 8-asnál is szerepel és nálunk az XYZ789 és EFG345 név alatt is. Ezt viszont a sima keresés nem dobja ki, csak ha tovább keresnénk.
Tehát lényegében van egy konvertáló adatbázisunk cégek cikkszámai között ugyanazon termékekre.
A fő kérdés az, hogy hogyan (esetleg milyen programban) lehet ezt az XLS adatbázist (táblázatot) használni, hogy egyetlen keresőablaknál a cikkszám beírása után az összes ilyen cikkszámú termék (és mellette a saját cikkszámunk) is megjelenjen?
Példa:
ABC - keresés gomb - találatok:
saját gyártó1 gyártó2 ...
XYZ999 ABC123
EFG222 ABC567
CDE333 ABC444 ABC888
A kódok sok esetben kötőjelet és csillagot is tartalmaznak, illetve van ismétlődő kód is más beszállítóknál (pl ami nálunk fém, műanyag, az nála ugyanazon a cikkszámon fut, nem tesz különbséget)!
A kérdés összetett, de a megoldás szerintem ennél sokkal egyszerűbb.
A lényeg, hogy a beírt keresési feltétel alapján az összes megfelelőt listázza egy szerre, azaz ne a listában kelljen ugrálgatni, hanem egymás alá hozzon minden találatot. (Ezt 1 oszloppal meg lehetne oldani, de hogy minden oszlopban keressen, már kevésbé... legalább is számomra).
Szia.
Macro-val megoldható, két egymásba ágyazott ciklus és kész. Itt inkább a keresési rész érdekes, de az is variálható. (Az az hogy hol és hogyan keressen elején, bárhol, végén, kis-betű nagybetű egyforma, nem egyforma)
Készitettem egy mintát, a cellaváltozáshoz van berakva a macro (tehát ha valamelyik cella tartalma változik a macro lefut - adatbeirás, és a cellából való kilépés után - Enter megnyomása után) innen letölthető : [link]
Első inditáskor (excel beállitástól függően) a megjelenő "Tartalom Engedélyezése" gombot meg kell nyomni (a macro tartalom miatt, 2010 Excel).
Mit csinál a macro :
1. Meghatározza maximális oszlopszámot az első sor alapján (az utolsó nem üres cellát keresi az első sorban).
2. Meghatározza a maximális sor számot az első oszlop alapján (az utolsó nem üres cellát keresi az első oszlopban).
3. Meghatározza a kereső cella cimét (Utolsó oszlop + 3 oszlop az első sorban)
Ha a Kereső cellában történt változás akkor
4. Meghatározza a törlendő terület nagyságát (második keresésnél igen hasznos tulajdonság hogy nem maradnak ott az előző keresés értékei) és törli azt.
5. A két egymásba ágyazott ciklus a meghatározott oszlopszámig, illetve sorszámig, végignézi a cellák tartalmát és megnézi, hogy az ELEJÉN szerepel-e a kereső cella tartalma, ha igen :
6. Elhelyezi a Saját cikkszámot (első oszlop értéke) a gyártó nevét (első sor értéke) illetve a kereső cella értékét tartalmazó cikkszámot is, szépen egymás mellé az utolsó gyártó oszlop után három oszloppal kezdődően.
Ezzel kész is a dolog.
Sok sikert.
üdv.
Office 2003-at használok, így csak konvertált formátumban tudtam használni az általad mellékelt fájlt. Nem értesített semmiről, hanem szimplán megnyitotta, mint egy átlag excel fájlt és kb az is van benne... minden cella szöveges kitöltésű, makró vagy érték pedig nincs benne.
Azaz ez nem segített megoldani a problémám.
Valami más ötlet?
Csak félve kérdezem meg kipróbáltad ? Tehát az "F1"-es cellába irtál valamilyen szöveget ?
Ha igen, és nem müködött akkor a konvertálásnál történt valami (nem jól konvertáltad át), mivel a kérdésedben semmiféle szó nem volt 2003-as excelről, igy abban készült el amit én használok (az pedig a 2010-es excel).
Tessék 2003-as alá (2010 excelből mentés másként 2003-as excel formátumba - és megnéztem 2003 excellel működik, gondolhatod, hogy kipróbáltam - a másikat is - mielőtt megosztottam) : [link]
És hidd el van benne makró, még akkor is ha a Eszközök-Makrók-nál nem is találod meg, (Ha nagyon meg szeretnéd nézni a macrót akkor inditsd el a Visul Basic-et : ALT+F11)
Annyit módositottam a macrón, hogy nem az elején keresi a beirt szöveget, hanem bárhol szerepelhet a cellában a beirt szöveg.
Üdv.
A történet az XLS formátumnál is ugyanaz. Láttam a VB alatt a makrót, de továbbra sem működik.
Beírtam a teljes cikkszámot nagybetűkkel, ahogy a másik cellában van, átléptem egy másik cellára (okézás/enterezés képpen), de továbbra sincs változás.
[link] címen itt van a képernyőmentés lépésről lépésre a megnyitástól az F1 mezőbe írással együtt a másik cellára lépésig.
Szia.
Azt ugye sejted, hogy "A hiba az Ön készülékeben van" !
Kipróbáltam 2x2 gépen (2 rendes gépen win7-tel és excel2010-zel, és 2 virtuális gépen win2000 és excel 2003-mal) - az excel 2010-es verzióval mindkét excel fájlt (XLSM és XLS) is kipróbáltam - és mindenhol tökéletesen müködik a macro.
It egy képsorozat a müködéséről (ugyanazok a lépések amiket Te csináltál csak ezek egy képen vannak) : [link]
Csak egy tippem van, nézd meg hogy hogyan van beállitva az excelben a macrobiztonság :
Eszközök - Beállitások - Biztonság fül - Macrobiztonság - És itt a pöttyöt a legalsóhoz tedd, kép : [link]
Üdv.
Köszönet, így már működik!
Írtam privát üzentet, kérlek olvasd el!
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!