Išplėstinis filtras - „Excel“ patarimai

Išplėstinio filtro naudojimas programoje „Excel“ Morto problemai išspręsti. Nors įprasti filtrai tapo galingesni, vis dar yra atvejų, kai išplėstinis filtras gali atlikti kai kuriuos triukus, o kiti - ne.

Žiūrėti video

  • Išplėstinis filtras yra labiau pažengęs nei įprastas filtras, nes:
  • 1) Jis gali nukopijuoti į naują diapazoną
  • 2) Galite sukurti sudėtingesnius kriterijus, tokius kaip 1 laukas = A arba 2 laukas = A
  • 3) Tai greita
  • „Mort“ bando apdoroti 100 000 eilučių VBA, sukurdamas įrašus arba naudodamasis masyvu
  • Įdiegtų „Excel“ funkcijų naudojimas visada bus greitesnis nei rašant savo kodą.
  • Jums reikia įvesties srities, tada kriterijų diapazono ir (arba) išvesties srities
  • Įvesties diapazonui: viena antraščių eilutė virš duomenų
  • Pridėkite laikiną antraščių eilutę
  • Išvesties diapazonui: stulpelių, kuriuos norite išskleisti, antraščių eilutė
  • Kriterijų diapazone: antraštės 1 eilutėje, vertės pradedamos nuo 2 eilutės
  • Komplikacija: senesnės „Excel“ versijos neleistų išvesties srities būti kitame lape
  • Jei rašote makrokomandą, kuri gali būti paleista 2003 m., Naudokite įvardytą diapazoną įvesties diapazonui apeiti

Vaizdo įrašo nuorašas

Sužinokite „Excel“ iš „Podcast“, 2060 serija: „Excel“ išplėstinis filtras

Ei, sveiki sugrįžę į netcast'ą, aš Billas Jelenas. Šiandienos klausimą atsiuntė Mortas. Mortas, jis turi 100 000 duomenų eilučių ir domisi A, B ir D stulpeliais, kur C stulpelis atitinka tam tikrus metus. Taigi jis nori, kad asmuo įvestų metus ir gautų A, B ir D stulpelius. Ir Mortas turi tam tikrą VBA, kur tam naudoja masyvus, ir aš pasakiau: „Palauk sekundę, žinok, išplėstinis filtras tai padarytų daug geriau “. Gerai, o dabar tik norėdamas peržiūrėti, grįžau atgal, peržiūrėjau savo vaizdo įrašus. Jau seniai neaptariau išplėstinio filtro, todėl turėtume apie tai kalbėti.

Išplėstiniam filtrui reikalingas įvesties diapazonas ir tada bent vienas iš jų: kriterijų diapazonas arba išvesties diapazonas. Nors šiandien mes naudosime abu tuos. Gerai, todėl įvesties diapazonas yra jūsų duomenys, ir jūs turite turėti antraštes virš duomenų. Taigi, Mortas neturi antraščių, todėl aš laikinai įterpsiu eilutę čia ir tiesiog atliksiu panašų į 1 lauką. Mortas žino, kokie yra jo duomenys, todėl jis galėtų ten įdėti tikras antraštes. Mes nenaudojame nieko, kas vadinama šiais duomenimis, nuo E iki O stulpelių, todėl man nereikia ten pridėti antraščių, gerai? Taigi dabar nuo A1 iki D 100000 tampa mano įvesties sritimi. Tada išvesties sritis ir kriterijų diapazonas. Na, išvesties diapazonas yra tik norimų antraščių sąrašas. Taigi įdėsiu išvesties diapazoną čia, o mums nereikia 3 lauko, todėlAš tiesiog nunešiu tai į šoną. Taigi dabar šis diapazonas nuo A1 iki C1 tampa mano išvesties diapazonu, kuris „Excel“ nurodo, kuriuos laukus noriu iš įvesties diapazono. Jie gali būti kitokia tvarka, jei norėtumėte pertvarkyti dalykus, pvz., Jei pirmiausia noriu 4 lauką, tada 1 lauką, tada 2 lauką. Ir vėl tai būtų tikros antraštės, pavyzdžiui, sąskaitos faktūros numeris. Aš tiesiog nežinau, kaip atrodo Morto duomenys.

Tada kriterijų diapazonas yra antraštė ir kokios vertės norite. Tarkime, aš bandžiau ką nors gauti 2014 metais. Tai tampa tokiu kriterijų diapazonu. Gerai, čia tik žodis atsargiai. Aš esu „Excel 2016“ programoje ir „Excel 2016“ programoje galima atlikti išplėstinį filtrą tarp dviejų lapų, bet jei grįšite atgal ir nepamenu, koks kelias atgal, galbūt 2003 m., Nesu tikras. Tam tikru momentu praeityje būdavo taip, kad negalėjai atlikti išplėstinio filtro iš vieno lapo į kitą, todėl turėsi čia atvykti ir įvardyti įvesties sritį. Čia turėtumėte sukurti vardą. Mano vardas ar kažkas panašaus, gerai? Tai būtų būdas, kurį galėtumėte tai padaryti, gerai. Nebūtinai „Excel 2016“, bet vėlgi ašNesu tikras, ar „Mort“ tai vykdys senesnėse duomenų versijose.

Gerai, todėl čia, „Data“, einame į „Advanced Filter“, gerai. Ir mes eisime į Kopijuoti į kitą vietą, kuri įgalina mūsų išvesties diapazoną. Gerai, taigi sąrašo diapazonas, kur yra duomenys? Kadangi dalyvauju „Excel 2016“ programoje, eisiu prie duomenų, o ne naudosiu vardų diapazoną. Taigi tai yra mano įvesties diapazonas. Kriterijų diapazonas yra tos ląstelės ten ir tada, kur mes ketiname - išvesties, tai tiesiog bus šios trys ląstelės. Tada mes spustelėkite Gerai. Gerai, ir BAM! Tai kaip greitai, greitai. O kas, jei norėtume kitokių metų? Jei norėtume kitokių metų, ištrintume rezultatus, įdėtume 2015 metus ir tada dar kartą atliktume išplėstinį filtrą, nukopijuokite į kitą vietą, spustelėkite Gerai ir bus visi 2015 metų įrašai. Žaibiškai greitai.

Gerai dabar, nors aš esu pažangaus filtro mėgėjas įprastoje „Excel“ programoje, aš buvau didžiulis pažangaus filtro gerbėjas VBA, gerai, nes VBA daro išankstinį filtrą tikrai labai tikrai paprastą. Gerai, todėl mes parašysime čia „Mort“ kodą, darant prielaidą, kad „Mort“ duomenys neturi antraščių ir turėsime laikinai pridėti antraštes, gerai? Taigi, aš pereisiu prie VBA, Alt + F11 ir paleisime tai iš darbalapio, kuriame yra duomenys. Taigi: pritemdykite WS kaip darbalapį, nustatykite WS = „ActiveSheet“. Tada įterpkite 1 eilutę ir tiesiog pridėkite keletą antraščių: A, B, Year ir D. Išsiaiškinkite, kiek duomenų eilučių turime šiandien, tada pradėkite nuo langelio A1, einančio 4 stulpeliais žemyn iki paskutinės eilutės, pavadinkite tai būti įvesties diapazonas. Gerai, tada tai iš tikrųjų yra Morto kodas čia, kur jis paprašė „InputBox“,gauna norimus metus ir tada jis klausia, kokiais metais ar ką jie nori pavadinti nauju lapu, gerai. Taigi iš tikrųjų į „Fly“ įterpsi lapą, o tada aš „Matmenys“ naują lapą, WSN, kaip „ActiveSheet“. Taigi žinau, kad WS yra originalus lapas, WSN yra naujas lapas, kuris ką tik buvo pridėtas. Naujame lape įdėkite kriterijų diapazoną, kad E stulpelyje būtų antraštė, atitinkanti šią antraštę, ir tada, kurį atsakymą mums davė, eina E2. Išvesties diapazonas bus kitos trys mano antraštės: A, B ir D. Ir dar kartą, jei jūs arba Mortas pakeisite jas į tikras antraštes, tai tikriausiai yra geresnis dalykas nei A, B, D ir jūs taip pat norėtumėte pakeisti jas į tikras antraštes, gerai? Taigi visa tai yra tik šiek tiek išankstinio darbo čia. Ši viena nuostabi kodo eilutė atliks visą išplėstinį filtrą. Taigi,iš „InputRange“ darome „AdvancedFilter“, nukopijuosime. Tai mūsų pasirinktas filtras vietoje arba kopija. „CriteriaRange“ yra nuo E1 iki E2, „CopyToRange“ yra nuo A iki C. Unikalios reikšmės -Ne, mes norime visų reikšmių. Gerai, ta viena kodo eilutė sukuria visą magiją, perkeliant visus įrašus, arba pakeičiant visus įrašus ar atliekant masyvus. Tada baigsime, išvalysime kriterijų diapazoną ir tada ištrinsime 1 eilutę atgal į pradinį darbalapį.Tada baigsime, išvalysime kriterijų diapazoną ir tada ištrinsime 1 eilutę atgal į pradinį darbalapį.Tada baigsime, išvalysime kriterijų diapazoną ir tada ištrinsime 1 eilutę atgal į pradinį darbalapį.

Gerai, grįžkime prie savo duomenų. Mes palengvinsime tai paleisti, taigi: Įterpkite, formuokite ir pavadinkite šį filtrą, Namai, Centras, Centras, Didesnis, Didesnis, Didesnis, dešiniuoju pelės mygtuku spustelėkite, Priskirti makrokomandą ir priskirkite ją „MacroForMort“. Gerai, todėl einame. Mes atliksime testą. Pažiūrėkite, ar esame duomenų lape, spustelėkite „Filtras“, kokių metų norime? Mes norime 2015 metų. Kaip aš norėčiau tai pavadinti? Gerai, noriu pavadinti 2015 m. Ir BAM! Tai padaryta. Štai kaip greitai, taip greitai tai vyksta.

Kadangi Morto pradiniai duomenys neturėjo antraščių, galbūt šie duomenys neturėtų turėti antraščių. Taigi eikime Alt + F11, čia mes norime išvalyti kriterijų diapazoną. Mes taip pat turėsime eilutes (1). Ištrinti. Gerai, todėl dabar, kai kitą kartą užsiimsime tuo, tai atsikratys tų antraščių. Ir tegul tiesiog - užuot paleidę visą reikalą, pažvelkime čia su 2014 m. Taigi parodysiu vieną langelį „Data“, „Alt + F11“ ir noriu paleisti iki taško, kuriame išplėstinis filtras. Taigi galime pažiūrėti ir pamatyti, ką čia veikia visa makrokomanda. Taigi spustelėsime Vykdyti, ir aš noriu gauti 2014 m., Gerai. Taigi, paspauskite F8, mes ketiname atlikti išplėstinį filtrą. Čia galime grįžti į „Excel“ ir pamatyti, kas nutiko.

Pirmas dalykas, kuris įvyko - dabar pirmiausia įvyko tai, kad pridėjome naują laikiną eilutę su antraštėmis. Įterpiau šį darbalapį, sukūriau kriterijų diapazoną su antrašte ir kokiais metais jie įvedė, pasirinko laukus, kuriuos norime padaryti, ir tada vėl į VBA. Aš paleisiu kitą kodų eilutę, tai yra F8, kuris ten atlieka išplėstinį filtrą . Tai neįtikėtinai greita ir pamatysite, kad tai iš tikrųjų dabar atnešė mums visus įrašus. Iš ten tai tik šiek tiek valymo, ištrinkite tai, ištrinkite tai. Grįšiu prie duomenų ir ištrinsiu 1 eilutę, ir mums bus gera eiti. Taigi aš tiesiog leisiu likusį tą laiką paleisti, pašalinti tą lūžio tašką, gerai? Taigi yra VBA. Manau, kad tai greičiausias kelias.

Gerai, epizodų santrauka: išplėstinis filtras yra labiau pažengęs nei įprastas filtras, nes jis gali nukopijuoti į naują diapazoną. Dabar aš to nerodžiau šiame vaizdo įraše, bet galite sukurti sudėtingus kriterijus, kur 1 laukas = A arba 2 laukas = A. Įprastas automatinis filtras to padaryti negali ir yra greitas. „Mort“ bando apdoroti 100 000 VBA eilučių naudodamas masyvą arba vykdydamas kilpą, tačiau „Excel“ kūrimo funkcijas naudoti visada bus greičiau nei rašant savo kodą. Turite apibrėžti įvesties sritį, kriterijų diapazoną, išvesties sritį. Visada reikia bent vieno iš šių įvesties diapazono, nors šiandien aš naudoju abu. Įvesties diapazone - viena antraščių eilutė virš duomenų. Taigi pridėsime laikiną antraščių eilutę. Gerai išvesties diapazonui tos pačios antraštės, kurias norite išskleisti. Taigi, žinote, jei tai buvo A, B,Metai ir D, mes tiesiog įrašysime A, B ir D kaip išvesties diapazoną. Kriterijų diapazonui, 1 eilutės antraštėms. Taigi tai yra laukas, kuriame noriu sukurti kriterijus, ir tai yra vertė, kurios ieškau. Komplikacijos: senesnės „Excel“ versijos neleis išvesties srities būti kitame lape, todėl galbūt jūsų kodas bus paleistas atgal. Įvesties diapazonui norite naudoti pavadintą diapazoną, nes iš šio lapo žinote, pavadintas diapazonas, net jei jis yra kitame lape, lapas tiki, kad vardas šakojasi dabartiniame lape. Taigi tai leistų veikti išplėstiniam filtrui.Senesnės „Excel“ versijos neleis išvesties srities būti kitame lape, todėl jūsų kodas tada gali veikti. Įvesties diapazonui norite naudoti pavadintą diapazoną, nes iš šio lapo žinote, pavadintas diapazonas, net jei jis yra kitame lape, lapas tiki, kad vardas šakojasi dabartiniame lape. Taigi tai leistų veikti išplėstiniam filtrui.Senesnės „Excel“ versijos neleis išvesties srities būti kitame lape, todėl jūsų kodas tada gali veikti. Įvesties diapazonui norite naudoti pavadintą diapazoną, nes iš šio lapo žinote, pavadintas diapazonas, net jei jis yra kitame lape, lapas tiki, kad vardas šakojasi dabartiniame lape. Taigi tai leistų veikti išplėstiniam filtrui.

Gerai, gerai, jūs turite tai. Noriu padėkoti Mortui, kad jis išsiuntė tą klausimą. Noriu padėkoti, kad užsukote. Pamatysime kitą kartą kitai internetinei transliacijai iš.

Atsisiųsti failą

Atsisiųskite failo pavyzdį čia: Podcast2060.xlsm

Įdomios straipsniai...