Täpsem filter - Exceli näpunäited

Lang L: none (table-of-contents)

Morti probleemi lahendamiseks Excelis täpsema filtri kasutamine. Kuigi tavalised filtrid on muutunud võimsamaks, on siiski juhtumeid, et täpsem filter võib teha mõningaid trikke, mida teised ei suuda.

Vaata videot

  • Täpsem filter on tavalisest filtrist "täpsem", kuna:
  • 1) seda saab kopeerida uude vahemikku
  • 2) Võite koostada keerukamaid kriteeriume, näiteks väli 1 = A või väli 2 = A
  • 3) see on kiire
  • Mort üritab VBA-s töödelda 100 000 rida, viies läbi kirjete ringi või kasutades massiivi
  • Sisseehitatud Exceli funktsioonide kasutamine on alati kiirem kui oma koodi kirjutamine.
  • Teil on vaja sisestusvahemikku ja seejärel kriteeriumivahemikku ja / või väljundivahemikku
  • Sisestusvahemiku jaoks: üks pealkirjade rida andmete kohal
  • Lisage pealkirjade jaoks ajutine rida
  • Väljundivahemiku jaoks: rida pealkirju veergude jaoks, mille soovite välja tõmmata
  • Kriteeriumivahemiku jaoks: 1. rea pealkirjad, 2. reast algavad väärtused
  • Komplikatsioon: Exceli vanemad versioonid ei võimaldaks väljundivahemikku teisel lehel olla
  • Kui kirjutate makrot, mida võidakse käivitada 2003. aastal, kasutage kõrvalehoidmiseks sisestatud vahemiku nimelist vahemikku

Video ärakiri

Õppige Exceli programmi Podcast, Episode 2060: Exceli täpsem filter

Tere, tere tulemast tagasi netiülekandesse, ma olen Bill Jelen. Tänane küsimus, mille saatis Mort. Mort, tal on 100 000 rida andmeid ja ta on huvitatud veergudest A, B ja D, kus veerg C sobib konkreetse aastaga. Ta soovib, et inimene sisestaks aasta ja saaks seejärel veerud A, B ja D. palju parem. " Hästi, ja nüüd lihtsalt ülevaatamiseks läksin tagasi, vaatasin oma videoid tagasi. Ma pole pikka aega täpsemat filtrit käsitlenud, nii et peaksime sellest rääkima.

Täpsem filter nõuab sisendivahemikku ja seejärel vähemalt ühte neist: kriteeriumivahemik või väljundivahemik. Kuigi täna kasutame neid mõlemaid. Hästi, nii et sisendivahemik on teie andmed ja teil peavad olema pealkirjad andmete kohal. Niisiis, Mortil pole pealkirju ja seetõttu kavatsen siia ajutiselt rea üles panna ja lihtsalt teha nagu väljale 1. Mort teab, mis on tema andmed, ja nii et ta saaks sinna tõelised päised üles panna. Ja me ei kasuta veergudes E – O midagi, mida nimetatakse nendeks andmeteks, nii et ma ei pea sinna pealkirju lisama, eks? Nüüd saab minu sisendivahemikuks A1 – D 100000. Ja siis väljundivahemik ja kriteeriumivahemik - noh, väljundivahemik on vaid soovitud pealkirjade loend. Nii et ma panen siia väljundivahemiku ja me ei vaja välju 3, nii et maVõtan selle lihtsalt küljele. Nii et nüüd saab sellest vahemikust siin A1 – C1 minu väljundivahemik, mis ütleb Excelile, milliseid väljad ma sisendivahemikust soovin. Ja kui soovite asju järjestada, võivad need olla teises järjekorras, näiteks kui ma tahan kõigepealt välja 4 ja seejärel välja 1 ning seejärel välja 2. Ja jällegi oleksid need tõelised päised nagu arve number. Ma lihtsalt ei tea, kuidas Morti andmed välja näevad.

Ja siis on kriteeriumivahemik pealkiri ja millist väärtust soovite. Oletame, et proovisin 2014. aastal midagi saada. Sellest saab kriteeriumivahemik niimoodi. Hästi, siin on vaid ettevaatus. Ma olen Excelis 2016 ja Excelis 2016 on võimalik teha täpsemat filtrit kahe lehe vahel, kuid kui te lähete tagasi ja ma ei mäleta, mis on tagasitee, võib-olla 2003. aasta, pole ma kindel. Mingil ajahetkel varem oli nii, et te ei saanud teha täpsemat filtrit ühelt lehelt teisele, nii et peate siia tulema ja nimetama oma sisendivahemiku. Siin peaksite looma nime. Minu nimi või midagi sellist, olgu? Ja see oleks viis, kuidas saaksite selle välja tõmmata, olgu. Mitte tingimata Excelis 2016, aga jällegiMa pole kindel, kas Mort töötab seda andmete vanemates versioonides.

Hästi, nii et siin Data juures, läheme täpsema filtri juurde, olgu. Ja me läheme Kopeeri teise kohta, mis võimaldab meie väljundivahemikku seal. Hästi, nii et loendivahemik, kus on andmed? Kuna olen rakenduses Excel 2016, lähen nimevahemiku kasutamise asemel hoopis andmetele - see on minu sisendivahemik. Kriteeriumivahemik on need lahtrid seal ja siis, kuhu me läheme - väljundisse, seal on lihtsalt need kolm lahtrit. Ja siis klõpsame nuppu OK. Hästi ja BAM! Nii kiire, kiire see on. Ja mis oleks, kui me tahaksime teistsugust aastat? Kui soovime teistsugust aastat, kustutame tulemused, paneme 2015. aasta ja teeme uuesti täpsema filtri, kopeerige teise asukohta, klõpsake nuppu OK ja kõik 2015. aasta kirjed on olemas. Välkkiire.

Olgu, kuigi ma olen tavalise Exceli täiustatud filtri fänn, olin VBA-s tohutult täiustatud filtri fänn, olgu, sest VBA muudab eelfiltri tõesti väga-väga-väga lihtsaks. Hästi, nii et kirjutame siia Morti jaoks koodi, eeldades, et Morti andmetel pole päiseid ja peame pealkirjad ajutiselt lisama, eks? Niisiis, lähen üle VBA-le, Alt + F11-le ja käivitame selle töölehelt, millel on andmed. Niisiis: Hämardage WS töölehena, määrake WS = ActiveSheet. Seejärel sisestage 1. rida ja lisage lihtsalt mõned pealkirjad: A, B, Aasta ja D. Mõelge välja, mitu andmerida meil täna on ja alustage lahtrist A1, mis läheb 4 veergu kuni viimase reani välja, nimetage see olla sisendivahemik. Hästi, ja siis on see tegelikult Morti kood siin, kus ta küsis InputBoxi,saab aasta, mida nad tahavad, ja siis küsib ta, mis aasta või mida nad tahavad uuele lehele nimetada, olgu. Nii et see sisestab Fly-i lehe ja seejärel mõõdan uue lehe WSN-i ActiveSheetina. Nii et ma tean, et WS on originaalleht, WSN on just uus leht. Uuele lehele pange kriteeriumivahemik nii, et veeru E all oleks siin pealkiri, mis vastab sellele pealkirjale, ja siis, kumb neist meile vastuse andis, sisestatakse E2. Väljundivahemik saab olema minu ülejäänud kolm pealkirja: A, B ja D. Ja jällegi, kui teie või Mort muudate need reaalseks pealkirjaks, on see ilmselt parem asi kui A, B, D ja teete ka muuta need tegelikeks päisteks, eks? Nii et see kõik on siin vaid natuke eeltööd. See üks vinge koodirida teeb kogu täpsema filtri. Niisiis,alates InputRange teeme AdvancedFilteri, kopeerime. See on meie valikfilter paigas või koopia. CriteriaRange on E1 kuni E2, CopyToRange on A kuni C. Unikaalsed väärtused -Ei, me tahame kõiki väärtusi. Hästi, see üks koodirida teeb kogu maagia kõigi kirjete loopimiseks või asendab kõigi kirjete loopimise või massiivide tegemise. Ja siis oleme valmis, kustutame kriteeriumivahemiku ja kustutame seejärel 1. rea tagasi algsele töölehele.Ja siis oleme valmis, kustutame kriteeriumivahemiku ja kustutame siis 1. rea tagasi algsele töölehele.Ja siis oleme valmis, kustutame kriteeriumivahemiku ja kustutame siis 1. rea tagasi algsele töölehele.

Okei, seega läheme siin tagasi oma andmetele. Me muudame selle käivitamise lihtsaks, nii et: Sisestage, kujundage ja nimetage see filter, kodu, keskus, keskus, suurem, suurem, suurem, paremklõpsake, määrake makro ja määrake see MacroForMortile. Hästi, nii et siin me läheme. Teeme testi. Vaadake, kas oleme andmelehel, klõpsake filtrit, mis aastat me tahame? Me tahame 2015. Kuidas ma seda nimetada tahan? Ma tahan seda nimetada aastaks 2015, olgu. Ja BAM! Seal see on tehtud. Nii kiiresti, nii kiiresti see käib.

Kuna Morti algandmetel ei olnud pealkirju, ei pruugi neil andmetel olla pealkirju. Nii et lähme Alt + F11, siin tahame kriteeriumivahemiku tühjendada. Lisame ka read (1). Kustuta. Hästi, nii et nüüd, kui järgmine kord sellel teemal olime, vabaneb see nendest pealkirjadest. Ja olgem lihtsalt - selle asemel, et kogu asja kiiresti käivitada, heitkem pilk siia 2014. aastaga. Nii et valin Data-is ühe lahtri, Alt + F11 ja tahan joosta just sinna, kus teeme täpsem filter. Nii saame vaadata ja vaadata, mida kogu makro siin teeb. Nii et klõpsame käsku Käivita ja ma tahan saada 2014. aasta, olgu. Ja nii, vajutage klahvi F8, hakkame tegema täpsemat filtrit. Saame siin Exceli juurde tagasi liikuda ja vaadata, mis juhtus.

Esimene asi, mis juhtus - nüüd on esimene asi, mis juhtus, et oleme lisanud uue pealkirjaga ajutise rea. Lisas selle töölehe, lõi kriteeriumivahemiku koos pealkirjaga ja mis aasta nad sisestasid, valis väljad, mida me tahame teha, ja seejärel VBA-sse tagasi, käivitan järgmise koodirea, see on F8, mis teeb täpsema filtri seal . See on uskumatult kiire ja näete, et see on nüüd meile kõik plaadid toonud. Sealt edasi on see lihtsalt natuke puhastamist, kustutage see, kustutage see. Ma lähen andmete juurde tagasi ja kustutan 1. rea ja meil on hea minna. Nii et lasen selle ülejäänud osa lihtsalt joosta, eemaldan selle murdepunkti, olgu? Nii et seal on VBA. Minu jaoks on see minu arvates kõige kiirem ja kiirem tee.

Hea küll, episoodide kokkuvõte: täpsem filter on tavalisest filtrist täpsem, kuna seda saab kopeerida uude vahemikku. Ja nüüd ma ei näidanud seda selles videos, kuid saate koostada keerukad kriteeriumid, kus väli 1 = A või väli 2 = A. Tavaline automaatfilter seda teha ei saa ja see on kiire. Mort proovib VBA-s töödelda 100 000 rida massiivi abil või silmuse abil, kuid Exceli hoone funktsioonide kasutamine on alati kiirem kui oma koodi kirjutamine. Peate määrama sisendivahemiku, kriteeriumivahemiku, väljundivahemiku. Alati vajate sisendivahemikku vähemalt ühes neist, kuigi täna kasutan mõlemat. Sisestusvahemiku jaoks üks andmete peal olev rida päiseid. Nii et lisame ajutise pealkirjade rea. Väljundivahemiku jaoks on samad pealkirjad, mille soovite välja tõmmata. Nii et teate, kui see oli A, B,Aasta ja D, paneme väljundivahemikuks lihtsalt A, B ja D. Kriteeriumivahemiku pealkirjade 1. rida. Nii et see on väli, millele tahan kriteeriumid koostada, ja see on väärtus, mida ma otsin. Tüsistused: Exceli vanemad versioonid ei luba väljundivahemikku asuda teisel lehel, seega võib teie kood siis tagasi töötada. Soovite sisendvahemiku jaoks kasutada nimega vahemikku, sest teate, et sellest lehest nimetatakse nimetatud vahemikku, kuigi see asub teisel lehel, usub leht, et nimi hargneb praegusel lehel. Nii et see võimaldaks täpsemal filtril töötada.Exceli vanemad versioonid ei luba väljundivahemikul asuda teisel lehel, nii et teie kood töötab tõenäoliselt siis. Soovite sisendvahemiku jaoks kasutada nimega vahemikku, kuna teate, et sellest lehest nimetatakse nimetatud vahemikku, kuigi see asub teisel lehel, usub leht, et nimi hargneb praegusel lehel. Nii et see võimaldaks täpsemal filtril töötada.Exceli vanemad versioonid ei luba väljundivahemikul asuda teisel lehel, nii et teie kood töötab tõenäoliselt siis. Soovite sisendvahemiku jaoks kasutada nimega vahemikku, kuna teate, et sellest lehest nimetatakse nimetatud vahemikku, kuigi see asub teisel lehel, usub leht, et nimi hargneb praegusel lehel. Nii et see võimaldaks täpsemal filtril töötada.

Hästi, noh, seal see teil on. Ma tahan tänada Morti selle küsimuse saatmise eest. Ma tahan tänada teid peatumast. Järgmisel korral näeme järgmise võrguülekande jaoks.

Laadige fail alla

Laadige näidisfail alla siit: Podcast2060.xlsm

Huvitavad Artiklid...