The blog archives contain posts detailing how to list files in a folder (including subfolders) using VBA and legacy Excel 4 function. These posts receive a lot of search traffic through Google, so I know this is an area people are interested in. Using Power Query to list files in a folder is the easiest method of all. Therefore, in this post, I want to show you how to do this.
Why is Power Query best to list files in a folder?
As noted above, other methods exist for listing files in a folder. However, those methods have some drawbacks:
- VBA Macros – The VBA code can become complex and too tricky for Excel users to understand.
- Excel 4 Macros – These are automation techniques originally found in Excel in the 1980s and 1990s. Microsoft no longer supports Excel 4 Macros, as VBA replaced them in 1995.
In comparison, Power Query has an easy-to-use, point-and-click user interface; there is no coding or complex techniques required. This makes it the perfect solution.
Power Query also has the added advantage of easily obtaining other file and folder attributes – file size, date created, date modified, etc. While some of these attributes are available using other solutions, they are not as easy to obtain or as comprehensive as Power Query.
List files in a folder (and sub-folders) with Power Query
Let’s start by looking at how to list the files in a folder using Power Query.
In Excel, click Data > Get Data > From File > From Folder.
Navigate to the folder, then click Open.
Depending on how many files are in the folder and subfolders, this may take some time.
A preview list of documents opens. Take a look; this is already starting to reveal some useful information.
Click Transform Data to open the Power Query Editor.
The Power Query Editor opens and shows the file attributes:
If we just want a single list of files in the folder, we need to combine the Name and Folder Path columns.
Select the Folder Path column, hold the Ctrl key, then click the Name column. Both columns should now be selected. The selection order is important as this determines how the text is combined.
Click Add Column > Merge Columns.
On the Merge Columns window:
- Choose separator as –None–
- Make the new column name Full File Path,
- Finally, click OK.
A new column is created with the complete file path.
We no longer need the other columns. With the Full File Path column selected, click Home > Remove Columns (drop-down) > Remove Other Columns.
The Preview window now shows only a list of the files and folders.
Click Home > Close and Load to push the data into Excel.
BOOM! How easy was that! We didn’t need to write a single line of code 😀.
List files in a folder, but not Subfolders
While working through the previous example, you may have noticed the output includes files in the selected folder AND subfolders.
But what if we only want the files from the folder? With a small change to the M code, we can achieve this too.
By default, Power Query users the Folder.Files function. This includes subfolders.
The M code formula for the Source step is:
All we need to do is change Folder.Files to Folder.Contents, and we’re done. Folder.Contents only looks at individual folders.
The Preview window should now only displays the files and folders in the selected folder.
BOOM! That was pretty easy too!
Listing file attributes
In the section above, we removed the file attributes. Instead, we may want to keep the file attributes.
When the data first loads, the available attributes are:
- Data accessed
- Date modified
- Date created
- Folder Path
This list is just the start; even more information is available in the Attributes column.
Click on the Expand icon in the header of the Attributes column, then click OK to see the full list file attributes.
I’m not going to lie… I have no idea what some of the attributes are. But contained within here is lots of information that I find very useful.
- Kind – the file type
- Size – the file size
- Read-only – whether the file is currently set to Read-Only
- Hidden – whether the file is visible
Imagine that your disk space is getting low. Using this method, you can quickly identify the largest file sizes, files that have not been opened recently, or duplicate file names. Once you have this list, you can decide what to keep and and what to delete.
Power Query is a useful and straightforward method to list files in a folder and also get attributes about those files.
I use this technique regularly to ensure automated processes export the expected files. With a single click refresh, the check is completed in seconds.
Power Query Series Contents
- Import Data
- Data Refresh
- Edit Queries
- Close & Load Options
- Using Parameters
- Basic Transformations
- Combine / Append Queries
- Import All Files in a Folder
- List All the Files in a Folder and File Attributes
- Import Data from the Current Workbook
- Import Data from the Web
- Unpivot Data
- Unstacking Data in a Column
- Lookup Values using Merge
- Change the Source Data Location
- If Statements for Conditional Logic
- Grouping and Summarizing Data
- Custom Functions
- Common Errors & How to Fix Them
- Tips and Tricks
Get our FREE VBA eBook of the 30 most useful Excel VBA macros.
Automate Excel so that you can save time and stop doing the jobs a trained monkey could do.
If you’ve found this post useful, or if you have a better approach, then please leave a comment below.
Do you need help adapting this to your needs?
I’m guessing the examples in this post didn’t exactly meet your situation. We all use Excel differently, so it’s impossible to write a post that will meet everybody’s needs. By taking the time to understand the techniques and principles in this post (and elsewhere on this site) you should be able to adapt it to your needs.
But, if you’re still struggling you should:
- Read other blogs, or watch YouTube videos on the same topic. You will benefit much more by discovering your own solutions.
- Ask the ‘Excel Ninja’ in your office. It’s amazing what things other people know.
- Ask a question in a forum like Mr Excel, or the Microsoft Answers Community. Remember, the people on these forums are generally giving their time for free. So take care to craft your question, make sure it’s clear and concise. List all the things you’ve tried, and provide screenshots, code segments and example workbooks.
- Use Excel Rescue, who are my consultancy partner. They help by providing solutions to smaller Excel problems.
Don’t go yet, there is plenty more to learn on Excel Off The Grid. Check out the latest posts: