VBA Advanced Filter - The FASTEST way to Copy and Filter Data

Поділитися
Вставка
  • Опубліковано 3 сер 2024
  • The Advanced Filter is the fastest way to copy and filter data in Excel VBA.
    And that's not all...
    It requires less code that any other method.
    It requires no extra code to select or sort columns - all the other methods require a lot of extra code to do this.
    It automatically formats the destination cells to match the source. If you use other methods then you need to create extra code to do this.
    In this video this video I am going to show you how to use the VBA Advanced filter.
    Then I am going to show you the VBA code that you need to use the Advanced Filter.
    Finally I am going to show you how to connect the Advanced Filter to a worksheet event so your users(or you!) can automatically use the filter.
    Related links:
    Excel VBA Copy - The Complete Guide to Copying Data: (excelmacromastery.com/excel-v...)
    The Excel VBA Handbook Course(TheExcelVBAHandbook.com)
    Webinar Archives - 60+ Hours of VBA training(excelmacromastery.com/excel-v...)
    Shortcut Keys:
    Alt + F11: Switch between Excel and the VBA Editor.
    Ctrl + R: View the Project Properties Window.
    Ctrl + Shift + 8(or Ctrl + *): Get the current region on a worksheet.
    F5: Run the code from the current sub.
    F9(or click left margin): Add a breakpoint to pause the code.
    Tab: To move lines of code to the right(Indent)
    Shift + Tab: To move lines of code to the left(Outdent).
    Table of Contents:
    00:00 - How advanced filter works
    00:03 - Why use the Advanced Filter
    02:59 - The VBA Code
    11:37 - Using the worksheet event to filter
  • Наука та технологія

КОМЕНТАРІ • 385

  • @LordBransty
    @LordBransty 5 місяців тому

    I don't know what I'd do without you Paul. You seem to have the best solution for everything I ever look for. I'll probably search your channel when I want to know the next winning lottery tickets. This videos are so valuable. Thank you!

  • @EOO-Stand
    @EOO-Stand 4 роки тому +5

    This makes coding so simple, easy to read and makes the size of the files smaller. awesome. keep up the good work.

  • @angs90
    @angs90 4 роки тому

    Thank you so much for this step by step tutorial. It was very easy to follow through and apply it to my own data. I have never used advanced filter before in my life but now I'm a believer. Subscribed!

  • @greg2865
    @greg2865 5 років тому +8

    Brilliant! I love the appropriate level of detail. It makes your videos so useful.
    FYI, for anyone that needs it. A relative date can be used in your criteria like this: =">" & TEXT(TODAY()-10,"mm/dd/yyyy")

  • @genechicago4806
    @genechicago4806 2 роки тому +1

    This advance filter reminds me of Lotus 1-2-3 from back in the '80s. I remember having to create the criteria and output range to filter data in Lotus 1-2-3 and it filtered really fast. But Excel's ALT D F F short cut combination for filters, not having to create the criteria or output range and pivot tables were a lot more intuitive. Thank you for sharing your knowledge!

  • @soup1207
    @soup1207 3 роки тому +1

    Really love that you also explain other function that doesn't directly relate to advancedfilter. It help very much for beginner like me to understand the video. Looking forward if you have any video to explain on event function. lol

  • @donaldturrell1387
    @donaldturrell1387 5 років тому +24

    Fantastic tip....I have been struggling a little to speed up a long macro. I used this principle to shave off about 5 minutes of vba run time. Thank you for your time and effort in making these videos.

    • @Excelmacromastery
      @Excelmacromastery  5 років тому +4

      That's great to hear Donald. Advanced Filter is a well-kept secret which I'm hoping to change.

  • @davidrhodes6016
    @davidrhodes6016 2 роки тому

    This is super fantastic. I always used ADO but this is a ton simpler. There were also formatting problems with ADO that this method doesn't have. Thanks so much!

  • @dangelorrrr
    @dangelorrrr 5 років тому +2

    There is always at least one thing I didn't know in each of your videos! Thanks again Paul, for sharing your knowledge

    • @Excelmacromastery
      @Excelmacromastery  5 років тому +1

      That's great to hear. I always like to come up with little-known but very effective techniques.

  • @bestscenes1469
    @bestscenes1469 5 років тому +1

    This is the best advanced filter tutorial I have seen in years. Excellent Presentation.

    • @Excelmacromastery
      @Excelmacromastery  5 років тому

      Thanks Daniel. It's great to hear such a positive response.

  • @Excelmacromastery
    @Excelmacromastery  5 років тому +52

    Hi everyone,
    If you haven't used the Advanced Filter before, I think you'll be amazed when you see how fast and efficient it is.
    Enjoy! Please leave any questions or comments below.
    Notes:
    *Tom* will return all records that start with 'Tom'
    *="Tom"* will return all records that *do not contain* 'Tom'
    *="=Tom"* will return all records that *contain* 'Tom'
    Thank you.

    • @alexandrumarcel3696
      @alexandrumarcel3696 4 роки тому

      I have a question. Can you copy the filtered data to another workbook?

    • @moyura2
      @moyura2 4 роки тому

      how about clipboard ?

    • @virak981
      @virak981 4 роки тому +1

      Hi, on 18:35 the ClearFilter is not working for me. how to solve this issue? Thank you.

    • @jundidoang7346
      @jundidoang7346 4 роки тому

      How to put new data in the next empty row in Output sheet using advanced filter?

    • @jamespecorella7395
      @jamespecorella7395 4 роки тому

      can you advance filter by format, example highlighted cells?

  • @lindalowney1404
    @lindalowney1404 3 роки тому

    You are a good teacher. I like how you explain things step by step instead of the whole thing at once. Your way allows me to find my error when I do something wrong.

  • @Nigromancy
    @Nigromancy 3 роки тому

    Okay MINDBLOWN!!!! I've been searching for a way to do this all day and this has literally smashed it! Definitely subbing to this channel! thank you!

  • @kolinsin23
    @kolinsin23 4 роки тому +1

    Thank you for sharing this and explaining in a straight forward way. I am no VBA master but using this has allowed me to help someone with a document that took them ~8 hrs to produce manually and now takes ~10 seconds (VBA benchmarked)

  • @BenLinfordUK
    @BenLinfordUK 5 років тому

    Very clear and concise tutorial video.
    I can see that your channel is rocking and rolling already and long may it continue!
    Thanks for putting the content out...
    You're fast becoming an Irish Randy Austin on UA-cam (and I believe that's a huge compliment).

    • @Excelmacromastery
      @Excelmacromastery  5 років тому +1

      Thanks very much Ben. I know of Randy Austin - he has built a very big community.

  • @sdawilson
    @sdawilson 4 роки тому

    I searched high and low to find advice on how to quickly copy data between two tables ... and found nothing. Here's the answer and brilliantly illustrated. Thank you Paul. I've been coding in VBA on Access for years and thought Excel was just rubbish at handling large volumes of data.

  • @tomjun8945
    @tomjun8945 4 роки тому

    Very good video! I learned a lot from it and the explanation is very clear and easy to follow. Amazing channel as well. Thank you for taking the time to show us.

  • @buithitrami175
    @buithitrami175 5 років тому +1

    Hi Paul! Just watching a half of this video but it is really awesome one. Never knew that advanced filter was so useful. 👍🏾

  • @telljansiddiqi
    @telljansiddiqi 4 роки тому

    Amazing THANK YOU Marco!!!!
    Trust me you made my day by this video

  • @iincitr
    @iincitr 4 роки тому

    Thank you for your clean explanation of the subjects.

  • @TheAzonei
    @TheAzonei 2 роки тому

    I had a project years ago that did filtering on over 23,000 items and then sent out an email to various users with different error codes. At the time, it checked against 3 conditions and still took over 40 minutes to process. I rewrote the code using advanced filters and dropped the total tune to under 5 minutes. They didn't know how many conditions would be checked when they were finished so I added a feature to allow them to define a many as they wanted without requiring another rework of the code. At last count they were up to 38 conditions being checked with no significant overhead in time requirements. I've been a fan of advanced filters ever since. Great info here.

    • @Excelmacromastery
      @Excelmacromastery  2 роки тому

      Thanks for feedback. It's great hearing about a successful real world project.

  • @musefirefox2420
    @musefirefox2420 3 роки тому +1

    Can't thank you enough for these videos. Wish I discovered your channel earlier!

  • @sasavienne
    @sasavienne 5 років тому +5

    I feel the urgent need to thank you once again so much for this truly nice tutorial. I followed all the steps on my PC and I am very astonished how great this code is. Really thank you Paul.. You are excellent. Thank you.. 🌟

    • @Excelmacromastery
      @Excelmacromastery  5 років тому +1

      Thanks Salim, That is great praise to hear.

    • @thegrumpyhippy
      @thegrumpyhippy 4 роки тому

      Ditto, came here to say the same thing... I’m new to VBA on UA-cam having worked my way through a physical book first. I found your information was distinct, the descriptions clear and presentation was both well paced and good vocal tone. This was perfect to follow and learn from. Thank you very much.

  • @akbarmahfuzalam
    @akbarmahfuzalam 4 роки тому

    Excellent stuff. Need more of these kind of tutorial.

  • @deniscloutier383
    @deniscloutier383 5 років тому

    All your videos are simply awesome! I wish I had seen them before, I would have saved hours of head scratching code! Thanks

  • @horaciobrambila3581
    @horaciobrambila3581 2 роки тому

    excelentt video I have used a lot advanced filters in my reports but you gave me a new way of do it...
    thanks!!!

  • @prabhatmishra123
    @prabhatmishra123 5 років тому +1

    You are my goto guy for anything excel. I admire your consistent quality content 🙏

  • @psgoldberg
    @psgoldberg 4 роки тому

    Delighted to see someone else who has seen the light with the Advanced Filter. I usually joke with people that since most people don't know about it, it must be a new feature. That it was in the first version of Lotus 1-2-3 perhaps explains some of the arcane rules for setting things up. One super easy application is not just to copy data, but to rearrange the order of the columns (a task that people often struggle with). Using the extract range with the new order of all or a subset of the columns is the fastest way to copy AND rearrange.

    • @Excelmacromastery
      @Excelmacromastery  4 роки тому

      I didn't realise it was around so long! Thanks for the info.
      Selecting columns or rearranging them is one of it's biggest strengths. Because using other methods requires a lot of extra code to do this.

  • @wayneedmondson1065
    @wayneedmondson1065 5 років тому

    Hi Paul.. this video is really excellent. I've made up my own data set to follow along and reinforce the concepts and code. Thanks for this super tip and technique. Really enjoying your UA-cam channel.. I think it is one of the best resources out there for learning and expanding VBA knowledge. Thanks for kindly sharing your skills.. much appreciated. Thumbs up!!

    • @Excelmacromastery
      @Excelmacromastery  5 років тому +2

      Thanks very much Wayne. Plenty more videos on the way.

  • @NanaAtiekuFrans
    @NanaAtiekuFrans 4 роки тому

    whether you are pro or intermediate VBA user, you will always find new and efficient ways of writing code. Thanks for your content and wonderful presentation skills.

  • @virak981
    @virak981 4 роки тому +1

    Thank you very much for sharing. great tutorial!!!

  • @freeliberalminds
    @freeliberalminds Рік тому

    Thank you so much sir for your unwavering support and keeping us abreast in VBA programming.
    Full support to your channel.

  • @johnericalvarez3480
    @johnericalvarez3480 Рік тому

    it's very helpful, i've been looking for this kind of advance filter a couple of weeks ago. thank you sir, it might be a great help for my system working on

  • @pshamrock787
    @pshamrock787 3 роки тому +2

    Wonderful Tip! Well explained, as always @Excel Macro Mastery.
    I would also recommend a spirit of inquisitive exploration when practicing these methods. I found the next video and its discussions about how to implement AND and OR operators with the advanced filter to be especially useful; I used both explanations to streamline a worksheet that needs to filter the data range based on days of the month. A little more explanation of how the advanced filter implements criteria would have been useful, but it wasn't anything that some playful experimentation couldn't solve.

  • @salihocaoglu
    @salihocaoglu 4 роки тому

    Just so great .. (Applause) This was just it what i was looking for. Thak you so much for the effort and everything.

  • @genechicago4806
    @genechicago4806 2 роки тому

    This video has some very useful information that might help me improve an existing macro. Thank you!

  • @sandeepkothari5000
    @sandeepkothari5000 5 років тому

    This is very useful, Paul. Hope to see you more often.

  • @1yyymmmddd
    @1yyymmmddd 4 роки тому +3

    Great stuff ! Never new you can reduce number of returned columns to required ones although been using Excel/VBA for years.

  • @jeditiger78
    @jeditiger78 4 роки тому

    This video is outstanding! It was so helpful.

  • @thearchibaldtuttle
    @thearchibaldtuttle 5 років тому +1

    Another one that puts me out of my misery with expert users! I just forward the link to this video!
    Edit: Excellent content I wanted to add!

  • @grantmeyers5189
    @grantmeyers5189 4 роки тому

    Thank you, the presentation was excellent and easy to understand. When ran the code it worked beautifully, however the filtering also remove duplicate records.

  • @mdelcueto
    @mdelcueto 5 років тому

    Thanks a lot Paul. This video (like all your videos) is really excellent

  • @harshitdubey1902
    @harshitdubey1902 4 роки тому

    Excellent video 👍
    Thank you so much you r real hero for us
    Love from India ❤️

  • @janvanderwind9033
    @janvanderwind9033 Рік тому

    Thanks for sharing your knowledge, really advanced

  • @kouassiigor4497
    @kouassiigor4497 Рік тому

    Thank you for sharing this course.

  • @ajankoppan966
    @ajankoppan966 4 роки тому

    Excellent and Helpful Presentation. Appreciate your help.

  • @kofilinoadadjo3264
    @kofilinoadadjo3264 2 роки тому

    Thank you Paul, this is brilliant! you have an extraordinary way to explain things! I am buying your course on Udemy. I wish I met you years ago!

  • @MrZH6
    @MrZH6 4 роки тому

    Awesome! Thank you very much for this video!

  • @1gopalakrishnarao
    @1gopalakrishnarao 4 роки тому

    Excellent. I have to learn from basic. Please guide me. Your way of explaining is really superb. Hats off to your god's gift talent.

  • @sasavienne
    @sasavienne 5 років тому

    I admire your videos Paul. You are amazing. 🌟 🌟 🌟 Thanks indeed for sharing. Excellent... Great.. 🌟

  • @eduardopena7700
    @eduardopena7700 Рік тому

    Very helpful information . It help me solve a current challenge Thank you😃

  • @krn14242
    @krn14242 5 років тому

    Great job Paul. Love this stuff.

  • @marcosscherer9784
    @marcosscherer9784 3 роки тому

    You are the men!
    Thanks from Brazil!

  • @danteencinas7020
    @danteencinas7020 2 роки тому

    Excellence!!! Thank you for sharing this!

  • @JohnOvens
    @JohnOvens 5 років тому

    Great video, Paul and instructive.

  • @kellyspoolhall761
    @kellyspoolhall761 4 роки тому

    Thank you for your time and expertise. Top-notch tutorials! You have a new subscriber here 👍

  • @edge5817
    @edge5817 4 роки тому

    Thank you Paul for this amazing code.

  • @Artii1230
    @Artii1230 3 роки тому

    Damn... I'm amazed did it at work for filtering big files and it's getting my work done 10x faster
    Big thanks!
    Subbed and liked keep up the content :)

  • @rajkumarpalle8217
    @rajkumarpalle8217 Рік тому

    It was nice and awesome video. Thank you for sharing.

  • @Lykoskia
    @Lykoskia 4 роки тому +2

    This is mind blowing and exactly what I've been looking for, for ages now! Thanks so much! I plan to integrate this code with a loop that goes through all the individual values of the criteria and repeats this process for each filtered list. And then it outputs the results into a sheet named by an string in a cell offset from the criteria and exports that sheet into a new book (also named by that value). I have code similar to this except it's all manual and unreadable, but I've been looking for a way to do this as a filter method for months! THANKS SO MUCH! Earned that sub.

    • @ignatiusmusonda6658
      @ignatiusmusonda6658 2 роки тому

      @
      Alan Frančišković this sounds like what i need; have you made progress on this?

    • @Lykoskia
      @Lykoskia 2 роки тому

      @@ignatiusmusonda6658 unfortunately no, i havent really touched it since i couldnt find the time and i do these things rarely (but am passionate about them nonetheless). You might be the motivation i need to finish it, might try in spare time since i no longer have free time at work for this. Will let you know!

    • @Lykoskia
      @Lykoskia 2 роки тому

      @@ignatiusmusonda6658 I finished it :) I think it would be messy to post it here, find me on FB or TG and I'll send you the code. It has a few magic numbers/things you need to tweak for your own purposes, but other than that it works, just tested it in the office a few hours ago.

    • @ignatiusmusonda6658
      @ignatiusmusonda6658 2 роки тому

      ​@@Lykoskia Great i just sent you a request on fb.

  • @sreedharlikit8966
    @sreedharlikit8966 Рік тому

    Excellent sir
    Hats off to ur knowledge

  • @teeravacvac5443
    @teeravacvac5443 4 роки тому

    very useful
    So glad that i met your video

  • @nullhas
    @nullhas 4 роки тому

    Very Helpful... Thank You... We need Excel masters like you...

  • @nour-eddineoumakhlouf5296
    @nour-eddineoumakhlouf5296 3 роки тому

    Your tuto is a filtering reference !!

  • @ElWiwif
    @ElWiwif 2 роки тому

    Thanks for sharing!

  • @TareqAlbahri
    @TareqAlbahri 3 роки тому

    Great Video ! It was a lot of help for the project I was doing.. Thanks a million !

  • @spunjbom
    @spunjbom 5 років тому

    This is pretty useful. Thank you!

  • @ajayiae
    @ajayiae 2 роки тому

    thank you so much.. this saved me today :)

  • @vaibhavdahival6397
    @vaibhavdahival6397 4 місяці тому

    You're simply great sir😍

  • @R72Investments
    @R72Investments 5 років тому +1

    Hi Paul, your videos are great!

  • @arunpandey2828
    @arunpandey2828 4 роки тому

    Amazing video sir... really very helpful videos you upload..🙏😊

  • @rohithkumarsr2531
    @rohithkumarsr2531 3 роки тому

    Excellent presentation, for ur explanation take a bow 🙇‍♂️

  • @forplaisir
    @forplaisir 4 роки тому

    Thank you so much for this video. My application is so much faster. Thanks for sharing your knowledge.

  • @armotxa124
    @armotxa124 4 роки тому

    Thank you. Gr8 lessons

  • @tatumchanel4667
    @tatumchanel4667 5 років тому

    It was a good tutorial. Thank you very much.

  • @stevennye5075
    @stevennye5075 4 роки тому +1

    very comprehensive!

  • @vijaysahal4556
    @vijaysahal4556 4 роки тому

    wow sir your teaching way is very good 👍👍👍👍

  • @jrstolsen
    @jrstolsen 5 років тому

    Nice. I've used Advanced Filter before, but was never clear on the use of Criteria Range. I'm hoping to use this VBA feature to be able to filter from one workbook and copy the data to another. The source worksheet has 61 columns all the way to BI, and variable rows. I only need data from 7 of those columns. And to make it interesting, one column has random blank cells! Should be fun! Thanks Paul!

    • @Excelmacromastery
      @Excelmacromastery  5 років тому

      You're welcome Russell. Sounds like an interesting project.

  • @johnabram4159
    @johnabram4159 4 роки тому

    Thanks a lot. I used to depend on pivot tables but now I will use Advanced Filters instead which is much cleaner and faster. I can use it to filter data based on a user criteria, create a subset by workbooks.add and mail it to user.

  • @prakashsrinivasan7840
    @prakashsrinivasan7840 3 роки тому

    Nice l know and using advanced filter for past 20 years and named ranges and tables also very useful

  • @XLarium
    @XLarium 4 роки тому +1

    Beautiful.

  • @davecks3042
    @davecks3042 4 роки тому

    Marvellous. Thanks

  • @mohamedbadrelden8046
    @mohamedbadrelden8046 4 роки тому

    Thanks a lot i do my first Macro once checking your Video, Very Helpful Video

  • @ravindrapatel4591
    @ravindrapatel4591 4 роки тому

    Excellent sir

  • @djkujo007
    @djkujo007 2 роки тому

    You're the GOAT

  • @zm2813
    @zm2813 4 роки тому

    Superb! Very useful information

  • @robderrt
    @robderrt 4 роки тому

    Very useful.

  • @vision20200
    @vision20200 4 роки тому

    Thank you!

  • @taquitonavajas9911
    @taquitonavajas9911 4 роки тому

    Very Usefully yout tricks mi amigo..... Gracias

  • @Karthickchidambaram
    @Karthickchidambaram 3 роки тому

    Superb sir

  • @dildokafir5058
    @dildokafir5058 5 років тому

    I hope you won't take off any video from your UA-cam channel..it gives me better clarification in concise.
    Simply loving your magical lines of code.

  • @quincyirang2543
    @quincyirang2543 2 роки тому

    i like this so much

  • @PrincePedia
    @PrincePedia 5 років тому

    awesome video !!!

  • @yuenhw2
    @yuenhw2 5 років тому

    very useful, thank you

  • @marekchudy8893
    @marekchudy8893 Рік тому

    Thank you.

  • @educational6621
    @educational6621 4 роки тому +1

    Thankyou paul for your video..
    I think we can change the "rgcriteria" to be = range("a2").currentregion so we aren't to make calculation " if range("a1").currentregion.row.count = 1 " everytime it doesn't intersect

  • @AaronTurnerBlessed
    @AaronTurnerBlessed 3 роки тому

    Amazing thank you...

  • @samuca130
    @samuca130 4 роки тому

    GREAT! TY

  • @huwwainwright4959
    @huwwainwright4959 4 роки тому +2

    Hi, thanks for posting this! It has really helped with a problem I have been facing :-)
    I have one question. Would it be possible to extend this macro so that it looped through a number of different filter criteria?
    For example, could you populate row 2 and 3 with different criteria and the macro would take both sets of information and paste them in the output?

  • @cz4955
    @cz4955 4 роки тому +1

    Hi, I am completely new to VBA so not sure if i am throwing my self in at the deep end. Great video really helped me with building a workbook which makes it very easy users to quickly review information. However, i wanted to take this one step further... I have two sets of data on the same sheet (e.g B7:E32 and B36:E61, with the criteria range B1:B5 to allow me to filter by multiple criteria in same col) the data ranges will use the same criteria when filtering. I tried to tweak the code slightly to filter both data ranges at the same time but it seems to 'hide' the rows on the first set of filtered data (B7:B32 range)
    Sub AdvancedFilterInPlace3()
    Dim rgData As Range, rgData2 As Range, rgCriteria As Range
    Set rgData = ThisWorkbook.Worksheets("Sheet3").Range("B7:E32")
    Set rgData2 = ThisWorkbook.Worksheets("Sheet3").Range("B36:E61")
    Set rgCriteria = ThisWorkbook.Worksheets("Sheet3").Range("B1").CurrentRegion
    rgData.AdvancedFilter xlFilterInPlace, rgCriteria
    rgData2.AdvancedFilter xlFilterInPlace, rgCriteria
    End Sub
    any help would be greatly appreciated
    Thanks