In this short post, I’m going to show you how to easily copy all filenames in a Window folder to Microsoft Excel.
First a caveat, the main limitation of the method I’m going to show you, is that you cannot copy filenames in subfolders. If you want to learn how to how to copy filenames in subfolders, check out the how to easily copy all filenames in a folder to Excel using CMD post.
Let’s jump right into it.
Step 1: Open Excel
Open up excel and then navigate to the folder that contains the files.
Step 2: Navigate to Folder and Select All the Files
Navigate to the folder that contains the files. In the folder that contains the files, select all the files in the folder. You can use the shortcut keys, Ctrl + a.
Step 3: Hold Shift Key and Right Click
Now, holding the Shift key, hover over your selection and right click. Don’t let go of the Shift key before you right click.
Step 4: Click Copy as Path
In the window that pops up, click copy as path. This copies the file path of all the files to the Clipboard.
Step 5: Paste Filepaths in Excel
Navigate to Excel, I’m using ALT and Tab key, and paste the file paths.
Step 6: Use Replace Function in Excel
We are going to remove the folder path using replace function in excel and we’ll have the filenames.
So double click on one of the cells, select and copy the folder path. Click on Find and Select, scroll down to replace. Click on replace and paste the folderpath. Then click on replace all.
Close the Find and Select dialog. Save your excel document and you have successfully copied all the file names in a folder into an excel document.
That’s it for this post, if you want to learn how to also copy the filenames into text check out this post on how to copy file names in windows explorer to text.
And here’s a short how-to video:
Home > Data Recovery > 2 Methods to Copy the List of All File Names in a Folder into Your Excel Worksheet
Sometimes you will need to list all the file names in a folder in an Excel worksheet. Thus, you can better manage those files. In this article, we will introduce two effective methods to copy the list in a folder.
In an Excel worksheet, you can make a menu of some important files. And you need to copy the list of all the file names into one worksheet. However, when there are hundreds or thousands of files, you will find it hard to do this. In the image below, you can see several files.
Now you need to copy the list of all the file names into a worksheet in another Excel file. If you copy and paste them one by one manually, you will certainly spend a lot of time and energy. At this time, you can use the two methods below.
Method 1: Use a New Text Document
Now follow the steps below and see how this method takes effect.
- Before you perform this process, make sure that you have shown the file extensions in your computer. Click the button “Start” in your computer.
- And then click the button “Control Panel”.
- In the control panel, click the “Appearance”.
- And then click the button “Folder Options”.
- After that, choose the option “View” in the “Folder Options” window.
- Next uncheck the option “Hide extension for known file types”.
- And then click “OK” to save the setting.
Therefore, you can see all the extensions of files in your computer.
- Come back to the folder, create a new text document and give it a new name. We will name it “DataNumen Sales Volume”.
- And then open this text file.
- After that, input the following characters into this file:
dir> 1.txt
- Next save this file and close it.
- In this step, change the extension of this file from “.txt” into “.bat”.
- After that, you will see a new window pop up. Here you need to click the button “Yes” to confirm this change.
- And then double click this file again. Next you will see a new text document with the name “1” in this folder.
- Open this new text document in this folder. You will see all the name information in it.
- After that, copy the necessary part in this file.
- And then in the target worksheet, click the small arrow under the button “Paste”.
- In the drop-down list, choose the option “Use Text Import Wizard”.
- Next in the new window, choose the option “Fixed width”.
- And then click the button “Next”.
- In step 2 of the wizard, move the break line and make sure that the names of those files will be in one cell.
- And then also click “Next”.
- In step 3, click “Finish”. Thus, all the information will appear in the worksheet.
You can delete the other useless columns in the worksheet. By using this method, you don’t have to copy and paste the names one by one.
Method 2: Define Name
In this part, we will introduce another excellent method.
- Click the tab “Formulas” in the ribbon.
- And then click the button “Define Name”.
- In the “New Name” window, input a name into the first text box. We will also name it “DataNumen_Sales_Volume”.
- After that, input this formula into the “Refers to” text box:
=FILES(“C:UsersSampleDesktopSales Volume*.*”) &T(NOW())
The path of the folder is “C:UsersSampleDesktopSales Volume” in this example. You need to change it into your actual folder path.
- And then click the button “OK” in the window.
- Now input the following formula into one cell in the worksheet:
=IF(ROW(A1)>COUNTA(DataNumen_Sales_Volume),””,INDEX(DataNumen_Sales_Volume,ROW(A1)))
In this formula, you need to change the define name into yours.
- After that, click the fill handle of this cell and drag downwards. As you move your mouse, you will also find that all the names will appear in this column.
- But you may also find that those results are the results of formulas. You still need to copy and paste them as texts.
- Next delete the formulas in the worksheet.
Until now, you have gone through all the steps. This method is also very effective for this requirement.
A Comparison of the Two Methods
You can see that both of the two methods are very useful. Here we will compare the two methods in this part.
Comparison |
Use a New Text Document |
Define Name |
Advantages |
If you are not familiar with Name and the complex formula in cells, you can use this first method. | There are fewer steps in this method. You can finish your tasks quickly by using it. |
Disadvantages |
Compared with the second methods, there are more steps in this method. You still need to spend a lot of time. | The formulas in cells will produce the results that you need. Therefore, you still need to copy and paste them as values. |
When you need to input all file names into a worksheet, you will know which method is the most suitable one.
Take Actions Quickly in a Data Disaster
It is unavoidable that you will meet with data disaster. In such an accident, your Excel files will most possibly be damaged. Therefore, you need to take actions quickly. In order to repair corrupt xls data quickly and safely, you can use out excellent Excel repair tool. This tool is able to fix most of the Excel problems.
Author Introduction:
Anna Ma is a data recovery expert in DataNumen, Inc., which is the world leader in data recovery technologies, including repair Word doc data error and outlook repair software products. For more information visit www.datanumen.com
-
— By
Sumit Bansal
On my first day in my job in a small consulting firm, I was staffed on a short project for three days.
The work was simple.
There were many folders on the network drive and each folder had hundreds of files in it.
I had to follow these three steps:
- Select the file and copy its name.
- Paste that name in a cell in Excel and hit Enter.
- Move to the next file and repeat step 1 & 2.
Sounds simple right?
It was – Simple and a huge waste of time.
What took me three days could have been done in a few minutes if I knew the right techniques.
In this tutorial, I will show you different ways to make this entire process super fast and super easy (with and without VBA).
Limitations of the methods shown in this tutorial: With the techniques shown below, you will only be able to get the names of the files within the main folder. You will not get the names of the files in the sub-folders within the main folder. Here is a way to get names of files from folders and sub-folders using Power Query
Using FILES Function to Get a List of File Names from a Folder
Heard of FILES function before?
Don’t worry if you haven’t.
It is from the childhood days of Excel spreadsheets (a version 4 formula).
While this formula does not work in the worksheet cells, it still works in named ranges. We will use this fact to get the list of file names from a specified folder.
Now, suppose you have a folder with the name – ‘Test Folder‘ on the desktop, and you want to get a list of file names for all the files in this folder.
Here are the steps that will give you the file names from this folder:
- In cell A1, enter the folder complete address followed by an asterisk sign (*)
- For example, if your folder in the C drive, then the address would look like
C:UsersSumitDesktopTest Folder* - If you are not sure how to get the folder address, use the following method:
-
- In the folder from which you want to get the file names, either create a new Excel Workbook or open an existing workbook in the folder and use the below formula in any cell. This formula will give you the folder address and adds an asterisks sign (*) at the end. Now you can copy-paste (paste as value) this address in any cell (A1 in this example) in the workbook in which you want the file names.
=REPLACE(CELL("filename"),FIND("[",CELL("filename")),LEN(CELL("filename")),"*")
[If you have created a new workbook in the folder to use the above formula and get the folder address, you may want to delete it so that it doesn’t feature in the list of files in that folder]
- In the folder from which you want to get the file names, either create a new Excel Workbook or open an existing workbook in the folder and use the below formula in any cell. This formula will give you the folder address and adds an asterisks sign (*) at the end. Now you can copy-paste (paste as value) this address in any cell (A1 in this example) in the workbook in which you want the file names.
-
- For example, if your folder in the C drive, then the address would look like
- Go to the ‘Formulas’ tab and click on the ‘Define Name’ option.
- In the New Name dialogue box, use the following details
- Name: FileNameList (feel free to choose whatever name you like)
- Scope: Workbook
- Refers to: =FILES(Sheet1!$A$1)
- Now to get the list of files, we will use the named range within an INDEX function. Go to cell A3 (or any cell where you want the list of names to start) and enter the following formula:
=IFERROR(INDEX(FileNameList,ROW()-2),"")
- Drag this down and it will give you a list of all the file names in the folder
Want to Extract Files with a Specific Extension??
If you want to get all the files with a particular extension, just change the asterisk with that file extension. For example, if you want only excel files, you can use *xls* instead of *
So the folder address that you need to use would be C:UsersSumitDesktopTest Folder*xls*
Similarly, for word document files, use *doc*
How does this work?
FILES formula retrieves the names of all the files of the specified extension in the specified folder.
In the INDEX formula, we have given the file names as the array and we return the 1st, 2nd, 3rd file names and so on using the ROW function.
Note that I have used ROW()-2, as we started from the third row onwards. So ROW()-2 would be 1 for the first instance, 2 for the second instance when the row number is 4, and so on and so forth.
Watch Video – Get List of File Names from a Folder in Excel
Using VBA Get a List of All the File Names from a Folder
Now, I must say that the above method is a bit complex (with a number of steps).
It’s, however, a lot better than doing this manually.
But if you’re comfortable with using VBA (or if you’re good at following exact steps that I am going to list below), you can create a custom function (UDF) that can easily get you the names of all the files.
The benefit of using a User Defined Function (UDF) is that you can save the function in a personal macro workbook and reuse it easily without repeating the steps again and again. You can also create an add-in and share this function with others.
Now let me first give you the VBA code that will create a function to get the list of all the file names from a folder in Excel.
Function GetFileNames(ByVal FolderPath As String) As Variant Dim Result As Variant Dim i As Integer Dim MyFile As Object Dim MyFSO As Object Dim MyFolder As Object Dim MyFiles As Object Set MyFSO = CreateObject("Scripting.FileSystemObject") Set MyFolder = MyFSO.GetFolder(FolderPath) Set MyFiles = MyFolder.Files ReDim Result(1 To MyFiles.Count) i = 1 For Each MyFile In MyFiles Result(i) = MyFile.Name i = i + 1 Next MyFile GetFileNames = Result End Function
The above code will create a function GetFileNames that can be used in the worksheets (just like regular functions).
Where to put this code?
Follow the steps below to copy this code in the VB Editor.
How to Use this Function?
Below are the steps to use this function in a worksheet:
- In any cell, enter the folder address of the folder from which you want to list the file names.
- In the cell where you want the list, enter the following formula (I am entering it in cell A3):
=IFERROR(INDEX(GetFileNames($A$1),ROW()-2),"")
- Copy and paste the formula in the cells below to get a list of all the files.
Note that I entered the folder location in a cell and then used that cell in the GetFileNames formula. You can also hard code the folder address in the formula as shown below:
=IFERROR(INDEX(GetFileNames("C:UsersSumitDesktopTest Folder"),ROW()-2),"")
In the above formula, we have used ROW()-2 and we started from the third row onwards. This made sure that as I copy the formula in the cells below, it will get incremented by 1. In case you’re entering the formula in the first row of a column, you can simply use ROW().
How does this formula work?
The GetFileNames formula returns an array that holds the names of all the files in the folder.
The INDEX function is used to list one file name per cell, starting from the first one.
IFERROR function is used to return blank instead of the #REF! error which is shown when a formula is copied in a cell but there are no more file names to list.
Using VBA Get a List of All the File Names with a Specific Extension
The above formula works great when you want to get a list of all the file names from a folder in Excel.
But what if you want to get the names of only the video files, or only the Excel files, or only the file names that contain a specific keyword.
In that case, you can use a slightly different function.
Below is the code that will allow you get all the file names with a specific keyword in it (or of a specific extension).
Function GetFileNamesbyExt(ByVal FolderPath As String, FileExt As String) As Variant Dim Result As Variant Dim i As Integer Dim MyFile As Object Dim MyFSO As Object Dim MyFolder As Object Dim MyFiles As Object Set MyFSO = CreateObject("Scripting.FileSystemObject") Set MyFolder = MyFSO.GetFolder(FolderPath) Set MyFiles = MyFolder.Files ReDim Result(1 To MyFiles.Count) i = 1 For Each MyFile In MyFiles If InStr(1, MyFile.Name, FileExt) <> 0 Then Result(i) = MyFile.Name i = i + 1 End If Next MyFile ReDim Preserve Result(1 To i - 1) GetFileNamesbyExt = Result End Function
The above code will create a function ‘GetFileNamesbyExt‘ that can be used in the worksheets (just like regular functions).
This function takes two arguments – the folder location and the extension keyword. It returns an array of file names that match the given extension. If no extension or keyword is specified, it will return all the file names in the specified folder.
Syntax: =GetFileNamesbyExt(“Folder Location”,”Extension”)
Where to put this code?
Follow the steps below to copy this code in the VB Editor.
- Go to the Developer tab.
- Click on the Visual Basic button. This will open the VB Editor.
- In the VB Editor, right-click on any of the objects of the workbook you’re working in, go to Insert and click on Module. If you don’t see the Project Explorer, use the keyboard shortcut Control + R (hold the control key and press the ‘R’ key).
- Double click on the Module object and copy and paste the above code into the module code window.
How to Use this Function?
Below are the steps to use this function in a worksheet:
- In any cell, enter the folder address of the folder from which you want to list the file names. I have entered this in cell A1.
- In a cell, enter the extension (or the keyword), for which you want all the file names. I have entered this in cell B1.
- In the cell where you want the list, enter the following formula (I am entering it in cell A3):
=IFERROR(INDEX(GetFileNamesbyExt($A$1,$B$1),ROW()-2),"")
- Copy and paste the formula in the cells below to get a list of all the files.
How about you? Any Excel tricks that you use to make life easy. I would love to learn from you. Share it in the comment section!
You May Also Like the Following Excel Tutorials:
- Filter cells with bold font format.
- How to Combine Multiple Excel Files into One Excel Workbook.
- Creating a Drop Down Filter to Extract Data Based on Selection.
- Using VBA FileSystemObject (FSO) in Excel.
Get 51 Excel Tips Ebook to skyrocket your productivity and get work done faster
121 thoughts on “Get the List of File Names from a Folder in Excel (with and without VBA)”
-
Awesome, Thanks. really helpful….Though i guess this works only for local drive folders. Is there a way to get the sever location work? As, if there are huge amounts of data it’s not wise to copy paste on my local drive and then do this. There should be a way to get the files names from the severs connected. Could you please help me out with that?
-
Fantastic, thanks many tonnes.
-
1. select file in folder
2. hold shit and right click
3. select “copy as path”
4. paste in excel
5. Use find/replace to find “folder path” and replace with ” “ -
Amazing solutions both with/without VBA.
It works in my PC but I would like to know why is doesn’t work if the folder is in Onedrive?
I´m using in cell A1 =REPLACE(CELL(“filename”),FIND(“[“,CELL(“filename”)),LEN(CELL(“filename”)),”MyFolder/”)
to obtain the folderpath that is in One drive and in B1=INDEX(GetFileNames(A1,1),””) -
This is awesome!! Thanks
-
Super bro! worked out correctly for me (using the Excel formula). Many thanks for sharing your knowledge.
-
Very well. I like the code of vba. But i think you have some issue with ReDim Result(1 To MyFiles.Count) and with the ReDim Preserve Result(1 To i – 1). Because i run the code and 1 of files i can’t see.
I think the best to change
ReDim Result(0 To MyFiles.Count)
ReDim Preserve Result(0 To i – 1).
And after this all works.
Thanks for great job. -
i have more sub folder in one folder in need formula to get all folder name in excl
-
Awesome!!! Thanks a lot, man! Got it done, what I needed to, following your video. Kudos to you!
-
Is there a way to select file names based on their created date or last modified date? For example, I want files created in the last 24 hrs, 36 hrs, and 5 days?
-
Hi, this is great, but I need a list of the file names without their extension.. how to do this in one step?
-
You can use below formula
=IFERROR(LEFT(INDEX(FileNameList,ROW()-2),FIND(“.”,INDEX(FileNameList,ROW()-2))-1),””)
-
-
is that any way to update excel list when one of the file in the folder delete ?
-
if one of the file in the folder delete this program can not update that and old file name remain in the list
-
I find it faster to stick the folder path into a browser and then copy and paste into excel.
But yes, even better when excel is set up to extract the data with a click of the button. -
Great!
Why doesn’t it work? -
Hi, what i like to know is….
i have a cell A1 in sheet1, and i like to output the highest file number of a folder in that cell.
So when the folder name = userinvoice and the file name in pdf and xlsm is for example 20190001.pdf range 20190199 and 20190001.xlsm to 20190199 i like to display the value of the highest number in that folder to cell A1 in sheet1. In this example it would be 20190199.pdf and 20190199.xlsmThank you very much for you effort.
-
Thanks very much. Saved me hours of manual entry!
-
hi
thankyou for the post
I need a macro which can automate the work of renaming the pdf with amount within the pdf, instead of depending on a software
-
I want to see Respective File Name with Save Time & Date…
Please help for the Macro Code for the same. -
Thank you for this wonderful post !!!
-
I see the method for only listing specific extensions but is there a way to exclude extensions?
-
Thanks a lot for your tip. it’s helped me a lot.. 🙂 ..
-
Thanks for the tip – worked like a charm!
-
I need to get at the place to make a file name and go where I took pictures at yesterday
-
Nice work
it made our work very easy with our macro
-
oh
-
-
Amazing ! i’m mind blown here,
I knew of to do it with marco but with a simple formula! wonderful! -
DEVE
-
hoping someone could help, hoping I could automate my excel list using VBA or other procedure,
For A, the idea is I have a PDF file, let say rev. 1,2,3,4 etc, and I will put it in one folder, what I need is I need to capture the latest revision with hyperlink using formula.
For B, the idea is almost same as above except for one revision, let say rev. 01 and I will put it in one folder (same folder as formula A), what I need is I need to capture the exact revision with hyperlink using formula.
I get this this formula but i don’t know how it will work- thanks in advance.
A) Formula for latest “rev number” column
=IF(Bfile(“Z:3 M+ MWC3.1 M+_RSSM+ (CC_2015_3A_022)3_DrawingsUSBM+ WS4_Drawings”&MIDB($A50,11,3)&”PDF”&MIDB($A50,1,35)&”-“&LOOKUP(1,0/($K50:$DF50” “),$K50:$DF50)&”.PDF”),HYPERLINK(“Z:3 M+ MWC3.1 M+_RSSM+ (CC_2015_3A_022)3_DrawingsUSBM+ WS4_Drawings”&MIDB($A50,11,3)&”PDF”&MIDB($A50,1,35)&”-“&LOOKUP(1,0/($K50:$DF50” “),$K50:$DF50)&”.PDF”,LOOKUP(1,0/($K50:$DF50″ “),$K50:$DF50)),”*”&LOOKUP(1,0/($K50:$DF50” “),$K50:$DF50))
B) Formula for latest “rev number individual” column
=IF(Bfile(“Z:3 M+ MWC3.1 M+_RSSM+ (CC_2015_3A_022)3_DrawingsUSBM+ WS4_Drawings”&MIDB($A52,11,3)&”PDF”&MIDB($A52,1,35)&”-00.PDF”),HYPERLINK(“Z:3 M+ MWC3.1 M+_RSSM+ (CC_2015_3A_022)3_DrawingsUSBM+ WS4_Drawings”&MIDB($A52,11,3)&”PDF”&MIDB($A52,1,35)&”-00.PDF”,”00″),”*00″)
-
I only tried the first method and it works perfectly for me… thank you so much for saving me days of boring inputing!!
-
How to get the file name list in Date Modified order in this excel workbook ??
-
Umm its not working on MAC 🙁
The formula you’ve provided (in column A) gives me this:
/Volumes/Data/Reports/*So the INDEX formula (in column B) gives #N/A
🙁-
Remove the first “/” (the one before Volumes) and change the rest of the slashes to colons.
-
-
I used the code above to obtain a list of files. The files names are as below:
Diesel___1234567___NIR_cuvette___20180912_234811.0
Diesel___1234567___NIR_cuvette___20180912_235510.0
The code only pulls the first file for each sample and fails to list the second (or third file). Is there a way to correct for this? Thanks. -
Hey,
I have a ecxel sheet which have some product names, and also have a folder which have some pdf files named same as in cell data, like if cell A2 value is apple1, Pdf file name is apple1.pdf, i want to know which name file is missing, can we get that in excel somwhow.. -
Hi Sumit,
I want to list the names and duration of all videos in a folder and its subfolders using Excel VBA. From the code below I can get the duration of video files, but I can’t exclude all other files. This gives me a list of all the file names, which I don’t need. Also I am failing to loop through subfolders.
What I want to achieve is for the macro to loop through all subfolders in the the given root folder and list only video names and duration in columns A and B.
Some help with this is truly appreciated.
Option ExplicitDim i As Long, SourceFldr
Dim c As Range, rng As Range
Dim sFile As Variant
Dim oWSHShell As Object
Dim WS As Worksheet
Dim lRow As LongSub GetDuration()
Dim fldr As FileDialog
Set fldr = Application.FileDialog(msoFileDialogFolderPicker)
Set oWSHShell = CreateObject(“WScript.Shell”)With fldr
.Title = “Select a Source Folder”
.AllowMultiSelect = False
.InitialFileName = oWSHShell.SpecialFolders(“Desktop”)
If .Show -1 Then GoTo NextCode
SourceFldr = .SelectedItems(1)
NextCode:
End WithDim oShell: Set oShell = CreateObject(“Shell.Application”)
Dim oDir: Set oDir = oShell.Namespace(SourceFldr)i = ActiveSheet.Range(“A” & Rows.Count).End(xlUp).Row + 1
For Each sFile In oDir.Items
Cells(i, 1).Value = oDir.GetDetailsOf(sFile, 0) ‘File Name
Cells(i, 2).Value = oDir.GetDetailsOf(sFile, 27) ‘File Lenght
i = i + 1
Next sFileSet oDir = Nothing
Set oShell = NothingEnd Sub
-
-
-
Wow! That’s ingenious and too much for free 😀 May Allah bless you brother. Thanks a lot.
-
Hey! Sumit Bansal right? As a matter of fact you are my excel HERO. I’ve been following your blog for quite a while now and everything you thought was amazing. Even though I’m still a student, I know one day this knowledge is going to save me a lot of time. I thought I was an excel expert with my one semester training So I created a blog to publish my skills on (http://excel-programming.com). But upon discovering your skills and experience I think I still have a a long way to go. Thank you very much for this blog.
-
You are doing wonderful work Sumit to educate Excel users. God bless you.
Please try the Excel Addin called ASAP Utilities by downloading it. There is a free (Home&Student) and paid version. File listing in Excel sheet of any directory and nested sub directories, with many properties of the files is so easy with many menu driven options (Menu-File & System-Item 24) This is just one of more than 300 utilities. It will be very useful for all Excel users and saves tons of time and effort. Current version is 7.4 and the link to the site is http://www.asap-utilities.com/ . I do not have any pesronel intrest in the product except to make it known to many Excel users to benifit in their work. It was developed by Bastien Mensink from Netherlands way back in 1999. I am using it since that time. Feed back on your experience is appreciated. -
Sumit this one deserves a kudos!!
Some time back i was working on its VBA and m non VBA guy……….
-
I was also wondering if there is a way to extract additional properties information at the same time
ie
“File Name”
“Created”
“Owner”
“Author”
“Title”
“Comments”
“Tags”-
This would be fabulous.
-
-
nice. really interesting. thanks a lot
-
Hmm, nowadays I would go with a Power Query ( Get and Transform) solution. Read from folder, and delete all columns except file name. Save and load to table. No macro, no formula involved.
-
Thank you for this repost. Is there a way to list folders in a directory?
-
I just saw a post below that this function does not work with folders. Too bad 🙁
-
-
Since it has not been corrected I assume that it has not been reported yet. The first version of this formula: =IFERROR(INDEX(FileNameList,ROW()-2,””) should actually be: =IFERROR(INDEX(FileNameList,ROW()-2),””). The trick won’t work until the right formula is used.
-
Thanks for pointing out Charles.. have corrected it!
-
-
Hi Sumit, Great trick. Thanks a lot. However I was wondering if there is a way to extract the file path as well along with the file name
-
I copied everything exactly but my cells are blank in the B column and it doesn’t populate the file names. any reason why? Also I’m using office 2010.
-
I figured out the issue, i didn’t have a slash before the asterisk * at the end. But I have one more question. Can this be used to get a value from a cell in these docs as well? e.g. I get a list of all docs in a given folder, can I then get a value from a cell in each of those docs if its all the same cell in each doc?
-
-
Hi
Was wondering if there is a way to extract properties information at the same time
ie
“File Name”
“Created”
“Owner”
“Author”
“Title”
“Comments”
“Tags”Much appreciated
-
Hi Sumit, great tutorial. I used this because files are constantly being added to a specific folder. This allows for the names of those new folders to show. Since I do not know the names of the new files that will be created I was hoping to then use the results of this in an external reference formula. Do you know if this is possible?
-
-
One method I have used before uses the command prompt. Navigate to the folder you want to extract file names from. Type (dir /b > “sample.txt”) minus the parenthesis. This will create a text file in the same directory that you can then open in Excel for further processing.
-
how to have excel list all the file in one row instead of using multiple rows
-
dear sir,
how can i Get a List of File Names from a Folder in Excel without extension like . jpg, .pdf -
Amazing! Thanks for this Great Trick!!!
Question: When the New File Names come in, they Start Over from the Top-Shifting File Names Down, how can I get them to come in at the bottom of the list (based on date/time modified)?
Make File Name Hyperlink? If I Select the Column with your Formula, Insert Hyperlink and Add Folder Location, this links them to the folder, but how can I make it open the file directly? Also If you can Help: I have a Folder Filled with Email Messages (.msg Files) that I am keeping a Running List of in Excel and have to manually enter data from each Email such as Name (Email Address before @) + Company (Email Address after @), Date Received etc. – Is there a way to Auto Populate this information into Excel from the .msg File following the Automated File Name you have created here?
-
I have a single folder with multiple sub-folders each with multiple files, can I extract at the highest folder level?
-
Hi, Is there a way i can get the time the file is created in addition to the file name?
-
Hei Sumit. I got Folder name in A1. But INDEX will not work properly, I get only #N/A, (I define A1 as “NM”)
Can you plz look at screenshot and give me some guide lines that where i do wrong?
And my required folder is on Sharepoint. -
Amazingly quick response. I will re-check. Thank you.
-
I tried Getting a List of File Names from a Folder in Excel. Why did I get #NAME? instead of the name of the first file? I like your video lesson. Thank you.
Husen Kabeer, myaquadome@yahoo.comc:This PCDocumentsHusen Data Files – 2014Word*
=INDEX(FileNameList,1)
#NAME?-
Hello Husen.. Check the named range reference. It seems your named range is not referring to the cell that has the folder path.
-
-
Thank you very much. This is amazing ..:)
-
Thanks for commenting.. Glad you liked it 🙂
-
-
Sumit, is there a way for this formula to look within a series of sub-folders for the same results.
-
Thanks for commenting David.. With this method, you can only get file names from a specified folder
-
-
Hi, Sumit
Googled for a few minutes just now. I love your work. As a newbie you’ve helped me so much but for the life of me I just couldn’t get this working. Found an alternative method that actually lists the file names as hyperlinks. Thought I’d share the link here, in case you or your other fans/followers were interested –http://www.extendoffice.com/documents/excel/627-excel-list-files.html
-
if this done with a folder that gets updated a lot, will this auto update with the new file names or will you have to start all over
-
It would automatically update if you open the workbook or you press F9 (to force a calculation), or even if you make any change in the worksheet.
-
Thanks, its working just the way that i was wanting it to
-
Hello Sumit, thank you for your post. Made my life easier. Never the less I still have a problem with the update. It does not update automatically. I have to drag the formula again each time I open the document, or either double click the cell to updated itself. Do you know what I might do wrong? For your information I used your formula in combination with other formulas as bellow :
=LEFT($B$3;LEN($B$3)-1)&IFERROR(INDEX(FileList0916;ROWS($B$4:B33));””)
-
-
-
Hi. I have been here for more than an hour and for some reason I can’t get this to work. Know I’m going to love it and use it a lot, once I can get the first one working. Any chance you can take a look at mine and tell me what I’m doing wrong? I would so much appreciate it!
https://www.dropbox.com/s/ex6rtxpgr2twyne/Excel%20Index.xlsx?dl=0
-
Hello Brenda. You have created a named range with the name “ExcelList”, while the formula uses “FileNameList”. Change the formula to =IFERROR(INDEX(ExcelList,ROWS($B$1:B1)),””)
-
-
Are you using the formula to get the folder address. Use this formula =REPLACE(CELL(“filename”),FIND(“[“,CELL(“filename”)),LEN(CELL(“filename”)),”*”)
It shouldn’t look something as shown in your spreadsheet. Also, make sure the excel file (in which you are extracting the file names) is saved in the same folder.
-
Morning,
At it again this am. Losing my mind. Want this so bad and I just can’t get it to work. Tried everything. Must be something really small and stupid hanging me up. Heading to work. Little bit OCD – lol. I will get back at it when I get home but not too optimistic.
-
-
-
-
-
hi sumit! i followed the instructions but all i got was a blank cell..
-
Hi
The function of FILES does not exist in my version of excel 2010! May be it originated from some Add-Ins? -
That is an awesome way. Thanks a lot!!…
Also, is there a way to get the list of all the folders,subfolders and filenames along with file size and modification date columns.-
Thanks for commenting.. Using this method, you can only get file names from a specified folder
-
-
Another way to get the directory.
Portuguese version of formula =INFORMAÇÃO(“DIRECTÓRIO”)
I guess in English will be =INFO(“DIRECTORY”)
Even easier! -
Hi Sumit, thanks a lot for that.. is there any way I can also get the tabs within each excel file that I am looking up in a drive to populate in the columns next to file names? Please let me know it will be really helpful
-
Hi Bharat. You won’t be able to get tab names using the FILES function. For that, you would need to resort to a VBA code
-
HI Sumit, thanks for the quick response. is there anyway you can help with that code? I have been trying to search for it online but nothing seems to pop up.
-
-
-
Never seen this trick before. Great stuff.
i think this formula should also work for retrieving the file path, looks shorter 🙂
=LEFT(CELL(“filename”),FIND(“[“,CELL(“filename”))-1)&”*”-
Thanks for sharing the formula Victor.. Yours is much better 🙂
-
-
I was able to follow your instructions, but when i save it and go back it isnt there it just has name#. I am not familiar with Macros and it ask me to save Macros-Free and when I do my list isnt there. how can I save it. apologize in advance.
-
Hi Elisa.. Thanks for commenting. Try and save your file as a macro-enabled workbook (with .xlsm extension) and it would work. Since FILES is an old macro formula, it requires the workbook to be saved in .XLSM format. And don’t worry about not knowing macros, it would still work
-
-
Awesome solution thank you! However I could only register 256 files (rows). After that I get #¡REF!. Do you know a way to make it work for larger number of files. I need it for 2.000 files aprox. Thank you again. Jacobo
-
Thanks for commenting.. Could you share the sample file you are using. Since FILES is an old formula it may have some limitations, need to check on it.
-
-
Once I wanted to do the same so I wrote an Excel Add-in for doing that.
It can get filenames, folders, file extensions and other information regarding files.
This tool can write up to excel limit number of rows in just a few minutes.
In a stress test I did, I got more than 1,000,000 file names in just about 3 minutes.
Here is a link to try:
http://excel.gegprifti.com
-
Dear Sumit,
Suppose i want to do same for folder name than how we can do?-
Hi, I am waiting for your revert.
-
Hi Narayandatta.. FILES can not be used to get the folder names within in folder. It only works for files that have an extension
-
-
-
This was a great time saver Sumit, thanks. ? is there a way to make them a hyperlink without going through every single one?
Thanks -
fantastic
-
A formula that only works in named range?!!..this is great find.
-
-
That is really useful, thanks very much!
-
Thanks for commenting.. Glad you found this useful 🙂
-
-
Interesting.
Before dragging down, we may use
=COUNTA(FileNameList)
to get a sense of how far we need to go down.
btw, another approach in getting the directory for consideration.
=REPLACE(CELL(“filename”),FIND(“[“,CELL(“filename”)),LEN(CELL(“filename”)),”*”)
-
Thanks for commenting.. Your formula is much better 🙂
-
-
Thanks this will be useful
We can also do the same thing with Power Query -
Wow, this is great. Easier than the VBA code I wrote to do the same thing!
-
Yeah.. this old macro4 formula does makes it quite easy to do this
-
-
you save my life.
thnx a lot for such a great trick.
-
Thanks for the comment. Glad you liked it 🙂
-
Dear Sumit,
Is “Files” function is valid only Excel 2013.
I am trying to make it in Excel 2010 but could not find the Turkish of “Files” in Excel?
Do you have an idea?
-
Dear Sumit,
I am dying here to try above trick but still waiting your reply about the function FILES ?
🙁-
Hey.. this formula is valid for all versions of Excel. However, I could not find its equivalent for Turkish Excel. Since it’s an old function, even the help is not available for it now.
-
Dear Sumit,
Thnx for your reply.
I made it but unfortunately when I drag down, it gives only the first file name ?
Do you have any idea?
-
It seems the second argument of INDEX is not changing. Can you try changing it to see if it work. Also, would be great if you could share the file (a link to dropbox or onedrive)
-
-
I think I got the issue.. Replace the function ROW with ROWS, and it should work for you. Hope this helps.
-
omg!
how dumb! I am…
Thnx a lot and sorry for wasting your time! -
Glad it worked 🙂
-
I need those macros in Polish, and find this way:
In VBA I write and run simple macro like:
Sub Makro1()
ActiveWorkbook.Names.Add Name:=”Test”, RefersToR1C1:=”=FILES(Sheet1!R2C1)”
End SubThen in Name Menager I have 4.0 Macro Function name in my Excel language (for my it’s Polish)
-
-
-
-
Comments are closed.
How do I copy a list of file names into Excel?
If this is the same question popping in your mind, then you are at the right place.
Also Read: How to Enable Text to Speech On Windows 10.
From the last 2-3 years, I have started backing up my computer files to some external hard drives. To prevent data loss.
And till now I have filled 4-5 hard drives of data.
But it’s really difficult to remember which files are present in which hard drive.
So I started exporting all files names to excel files & keep a record of it.
But it was hell time-consuming. And then I got to know about this trick method of copying filenames from folder in windows explorer.
Let see How it works…
This method of creating a list of the contents of a folder as text has helped me a lot in saving my time. Whether they are too long, short or one word it works with all.
Moreover, you can also create a directory of files present in a folder.
So let’s get started.
1. Open Windows Explorer
Open Windows Explorer and navigate to your favorite folder for which you want to create a list of filenames as text.
2. Copy File Names as Text from folder
Now select only those files for which you want to copy file names into excel from the folder.
Now, Press Shift key + Right Click on it. And then select Copy as path Option.
And you have successfully copied files as text and also its location with the file extension.
3. Export Filenames to Excel
Now it turns to export filenames to excel file in windows 10. So, Open your Excel sheet and Press Ctrl+V to paste it properly.
And you can also copy filenames to Notepad as text using this technique.
Some FAQs
How do I copy file names into Excel Windows 10?
To copy file names into excel in Windows 10, go to the desired folder, select all files, hold the Shift key & right-click and then click on the Copy as Path option.
How do I copy a list of filenames into Excel?
If you want to copy a list of filenames into excel, just select all the files, hold shift + right-click & then choose Copy as Path option.
How can I copy a list of file names as text?
To copy the list of file names as text, Select the full list > Hold Shift-key + Right-click > Copy as Path and then paste it into a notepad file as text.
How do I copy the names of all files in a folder Windows 10?
Copying the names of all files in a folder using Windows 10 is pretty easy, just press Ctrl+A to select the files, right-click on them while holding the Shift key, and then select the “Copy as Path” from the options.
That’s it for now…
Conclusion
So that’s how you can easily get a list of all files in a folder and subfolders into excel. And you can also follow the same method for Windows 7/8.
Check out the next post on how to copy filenames to excel using cmd.
Feel free to share your thoughts and also tell us if you know any better way to Export or Copy File Names Into Excel From Folder in Windows 10.
If you liked this post, Don’t forget to share this post.
This post will teach you how to get the list of file names in a given directory to a worksheet in Excel. You will learn that how to use Excel to view Files and Folders in your worksheet by get the list of file names with different ways, such as: Excel VBA Macro, or FILES function.
If you want to get the list of file names from a folder that contain hundreds of files in it. You may be think the simplest way is that selecting the file and copying its name, then paste the file name in a cell in your worksheet, then repeat the above steps. If you follow this way to do it, you will take a long time to complete it. So it is a simple way, but it is also a huge waste of time. Do we have some quick way to achieve the same result? Of course yes, the below will talk two ways to copy the list of file names from a folder into worksheet quickly.
Table of Contents
- Method 1: Using FILES function to get list of file names
- Method 2: Using File browser and web browser to get list of file names
- Method 3: Using Excel VBA macro to get list of file names
- Related Functions
Method 1: Using FILES function to get list of file names
You can use the FILES function to get the list of file names from a directory, and this function is only works in name Defined Names. And then you can use a combination of the IFERROR function, the INDEX function and the Row function to create an excel formula. Let’s see the below steps:
1# Assuming that you want to get the list of file names from a directory, such as: C:UsersdevopsTracingWPPMedia*, and enter this directory path into Cell B1.
2# On the FORMULAS Tab, click Define Name command under Defined Names group, then select Define Names… from the drop-down menu list.
3# the New Name window will appear. Set a name in the Name box, such as: FileNameList, type the following formula in the Refers to box.
=FILES(Sheet7!$B$1)
4# enter the following formula in the Cell B3, then drag the AutoFill Handle down to others cells to apply this formula.
=IFERROR(INDEX(FileNameList,ROW()-2)," ")
You will see that all file names from the specified folder are listed in your worksheet.
Method 2: Using File browser and web browser to get list of file names
If you want to use this method to get the list of file name from a directory, you need to install one web browser, such as: Firefox, Chrome or IE. Then do it follow steps:
1# Move to the destination folder or directory on the Windows File Explorer, then copy the path of that directory. Such as: C:UsersdevopsTracingWPPMedia
2# open any web browser installed in your computer and paste the copied path in the address bar, then press Enter key.
3# you will see that it will add prefix file:/// at the beginning of the path in the address bar. And the file name list will be shown in the web page.
4# press Ctrl + A shortcut to select all of file names in the web page and then press Ctrl +C to copy the selected content.
5# open your worksheet, then press Ctrl + V to paste all file names into your worksheet.
Or you can save the web page in the Step 3 as the offline copy. Just press Ctrl + S or right-click on the web page, and then select Save Page As to save that web page.
Open the saved web page from the web browser, and copy its web address. Then click From WEB command under Get External Data group on the DATA tab in your worksheet.
Paste the web address in Address box, then click Go button. Then click Import button. You will see that all files and folders details are imported to your worksheet.
Method 3: Using Excel VBA macro to get list of file names
You can write an excel VBA macro code to get the list of file names from a specified directory,
1# click on “Visual Basic” command under DEVELOPER Tab.
2# then the “Visual Basic Editor” window will appear.
3# click “Insert” ->”Module” to create a new module
4# paste the below VBA code into the code window. Then clicking “Save” button.
Option Explicit Sub GetFileNames() Dim xRow As Long Dim xDirect$, xFname$, InitialFoldr$ InitialFoldr$ = "C:" With Application.FileDialog(msoFileDialogFolderPicker) .InitialFileName = Application.DefaultFilePath & "" .Title = "Please select a folder to list Files from" .InitialFileName = InitialFoldr$ .Show If .SelectedItems.Count <> 0 Then xDirect$ = .SelectedItems(1) & "" xFname$ = Dir(xDirect$, 7) Do While xFname$ <> "" ActiveCell.Offset(xRow) = xFname$ xRow = xRow + 1 xFname$ = Dir Loop End If End With End Sub
5# back to the current worksheet, then run the above excel macro.
6# select a folder that you want to get all names, then click OK button.
- Excel IFERROR function
The Excel IFERROR function returns an alternate value you specify if a formula results in an error, or returns the result of the formula.The syntax of the IFERROR function is as below:= IFERROR (value, value_if_error)… - Excel INDEX function
The Excel INDEX function returns a value from a table based on the index (row number and column number)The INDEX function is a build-in function in Microsoft Excel and it is categorized as a Lookup and Reference Function.The syntax of the INDEX function is as below:= INDEX (array, row_num,[column_num])… - Excel ROW function
The Excel ROW function returns the row number of a cell reference.The ROW function is a build-in function in Microsoft Excel and it is categorized as a Lookup and Reference Function.The syntax of the ROW function is as below:= ROW ([reference])….