Telefonszámunk: 1-472-0679

Haladó szűrés sorozat – Eredmény másik munkalapra

2013-12-19 - horvimi - Kategória: Adatkezelés - Szűrés
Hivatkozott Excel verzio: Excel 2007 Excel 2010 Excel 2013

A haladó szűrő eszközt érdemtelenül kevesen ismerik. Többet érdemelne. Emiatt egy sorozatot indítok a lehetőségeiről. Volt már szó korábban róla, de úgy döntöttem, még egyszer nekifutok. A haladó szűrőt speciális vagy irányított szűrőnek is szokták nevezni. Az autoszűrővel egy lépésben nem megoldható, összetettebb szűrésekhez, illetve a gyakran ismétlődő, akár egyszerűbb szűrésekhez használjuk.

Lényege, hogy a szűrendő táblázaton kívül egy külön tartományban fogalmazzuk meg a szűrési feltételeket, majd a haladó szűrő párbeszédében megadjuk a feltételtartomány helyét,  pár dolgot még beállítunk, és kész!

A haladó szűrő előnyei

  • Bonyolultabb szűrésekre is alkalmas egy lépésben
  • Az eredmény akár azonnal új helyre másolható, akár másik lapra
  • A szűrési feltételeket tároljuk, nem kell folyton megcsinálni, kitalálni
  • Az eredményből kiszűrhetjük a szükségtelen oszlopokat (Projekció)
  • Szűrés közben az oszlopok sorrendjét is módosíthatjuk

A cikksorozat tagjai

Az eredmény másik munkalapra egyből?

Talán van, aki tapasztalta, hogy a haladó szűrő nem engedi a szűrés eredményét egyből másik munkalapra tenni. Emiatt azt előbb az aktuális munkalapra, majd onnan másolva és beillesztve lehet áttenni más lapra.

Íme a hibaüzenet

halado-szuro-mas-munkalap-hibauzenet

Hosszú évekig bosszantott, hogy miért van ez így, míg egyszer csak rátaláltam a megoldásra. Ami mindig is ott volt, csak nem gondolkodtam, hanem csak idegeskedtem. Szóval a megoldás benne van az üzenetben. Ha csak az aktív munkalapra kerülhetnek az eredmények, akkor mi lenne, ha az egészet egy üres munkalapról indítom, és az adatforrást választom ki másik lapról (mert azt lehet)?

halado-szuro-mas-munkalap

A fenti beállításban a Listatartomány másik lapról lett kijelölve, a Szűrőtartomány és a Hová másolja pedig az aktuálisról.

És működik!

Letölthető munkafüzet

iranyitott-szuro-peldak

Lássuk a videót!

  • Haladó szűrés eredménye másik munkalapra

6 hozzászólás
  1. Kedves Imre!
    Hogyan lehet a kapott szűrt adatokat a különböző munkalapokon frissíteni? Ha az eredeti táblázatban megváltoztatom az adatokat akkor a többi lapon is megváltozzon?

    • Szia!

      Az a helyzet, hogy a szűrés eredménye érték szerint keletkezik, még képletek sincsenek benne. Nem frissíthető önmagától, csak makróval.
      Ez két módon valósítható meg:
      – ha módosítasz, saját kezdeményezéssel (nyomógomb, bill. kombináció, stb.) elindítod a makrót, ami újra lefuttatja a haladó szűrést, és felülírja az előző szűrés eredményét (előtte kitörli)
      – A fő adatbázist tartalmazó munkalap CHANGE eseményéhez, vagy a szűrési eredményt tartalmazó lap ACTIVATE eseményéhez rendeled a makró futását.
      Első esetben bármit változtatsz az adatbázis munkalapon, lefut a szűrés (baromság), másik esetben, ha kiválasztod az eredmény lapot, lefut a filter. Ez már jobbnak tűnik, de ez is eléggé idegesítő lehet.

      Én a kézi mellett döntenék.

      Hogy mi lenne az a makró, ami ezt csinálja?
      ———————————————–
      Az már attól függ, hogy hogy néz ki a fájl, hol van vagy mi a neve az adatbázisnak, illetve a kritérium tartománynak, és persze hová kerül az eredmény.

  2. Kedves Imre!

    Ha az irányított szűrést makróval szeretném automatizálni, akkor az vajh miért nem hajlandó a működésre?
    Manuálisan csinálva hozza az eredményeket, de ha makró-rögzítővel felveszem a lépéssorozatot és újra futtatom, semmilyen eredményt nem jelenít meg. 🙁

    A szűrendő adatok egy külön fájlban vannak (legyen Fájl1), a kritérium és az eredménytartomány pedig a Fájl2:

    Workbooks.Open Filename:=”C:\projektek\Fájl1.xlsx”
    Windows(„Fájl2.xlsm”).Activate
    Range(„A1”).Select
    Application.CutCopyMode = False
    Workbooks(„Fájl1.xlsx”).Sheets(„PJz”).Range(„A1:L101”). _
    AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range(„A1:L2”), _
    CopyToRange:=Range(„A4:L4”), Unique:=False
    Range(„A1”).Select

    Mi lehet a hiba?
    Előre is köszönöm válaszod! 😉

  3. Szia Tamás!

    Működnie kellene!
    Kipróbáltam a kódot, amit küldtél másik fájlon, és simán megcsinálta.
    Azt kérném, hogy tedd fel a kérdést a Fórumban. Ott csatolni tudsz fájlt is.
    Zippeld össze a kettőt a kóddal együtt, és küldd el, megnézem.

    Imre

  4. Kedves Imre!
    A „szűrés eredménye másik munkalapra” eljárást megértettem, kipróbáltam. De mi a teendő akkor, ha valamelyik ismérv szerint több munkalapra szeretném bontani a listát. Például egy munkavállalói összesített nyilvántartásból szervezeti egységenként külön-külön munkalapokat szeretnék?
    Válaszodat előre köszönöm

  5. Ezt kézi szétválogatással, vagy makróval lehet csak megoldani.
    beépített Excel varázslat, menüpont nincs rá.

Vélemény, hozzászólás?