分享

这个函数真强大,居然能列示文件夹下的所有文件名

 初风Excel教学 2022-07-15 发布于广东

走过路过不要错过

如何在Excel工作表中列出某个文件夹下的所有文件名称呢?本文介绍两种方法。
第一种方法使用浏览器,操作非常简单,不需要使用函数,缺点是不能自动更新。
第二种方法使用Files函数,用法并不复杂。当文件夹中的文件增加或减少时,可以更新文件名称。当文件夹内有多种类型的文件时,可以只列出特定类型的文件,比如只列出Excel文件。此外,还可以创建对文件的超链接,单击超链接,即可打开对应的文件。

1

方法一:使用浏览器

如下图所示,要求在工作表中列出“示例”文件夹中的所有文件。

(1)复制路径“E:\示例”,打开浏览器,将复制的路径粘贴到地址栏,按<Enter>键,如下图所示

(2)按<Ctrl+A>全选浏览器中列出的文件名称,然后复制粘贴到工作表中。
这种方法操作非常简单,不需要使用函数,缺点是不能自动更新。粘贴到工作表中的文件名称虽然看上去是一个超链接,不过单击并不能打开相应的文件。


2

方法二:使用Files函数

Files函数是宏表函数,不能直接在单元格中使用,需要先定义名称,然后才能在单元格中使用。
1、定义名称
在B1单元格输入文件路径,注意最后的“*”不要省略。“*”是通配符,表示任意长度的字符。这样可以提取“示例”文件夹中的所有文件名称。
单击【公式】-【定义名称】,在【名称】框中输入名称,本例为“myfiles”。【引用位置】处输入公式:=FILES(方法二!$B$1)&T(NOW()),注意公式中的B1单元格必须使用绝对引用。

公式解析:
(1)FILES(方法二!$B$1)可以提取B1单元格指定文件夹下的所有文件名称。但是当文件夹中的文件增加或减少时,Files函数不能自动更新结果,所以需要引入“&T(NOW())”。
(2)T函数用于检测是否为文本,是文本,则原样返回文本;不是文本,则返回空文本。Now()返回当前时间,在Excel中,时间的本质是数值。因此T(Now())返回空文本。由于Now()函数是易失性函数,当在单元格中输入值或修改单元格时,可以强制Files函数自动重算,从而更新Files函数的计算结果。
当文件夹中的文件增加或减少时,单独使用Files函数不能更新提取的文件名称。但是Files函数搭配T(Now())使用,则可以实现自动更新提取的文件名称。

2、提取文件名
B3单元格输入公式:=INDEX(myfiles,ROW(A1))
向下复制公式至B10单元格。

公式解析:
(1)Files函数返回的是一个包含所有文件名称的水平数组。因此使用Index函数依次提取每个文件名称。
(2)当已列出所有文件名称时,函数返回错误值。可以使用IFERROR函数屏蔽错误值。B3单元格输入公式:=IFERROR(INDEX(myfiles,ROW(A1)),"")。
当所有文件名都已列出后,返回空文本。

(3)当文件夹中新增文件时,双击任意一个单元格或按<F9>键,提取的文件名称会更新。

(4)如果只需要提取某种类型的文件,比如Excel文件,可以将B1单元格数据修改为:E:\示例\*.xls*,表示只提取扩展名为“xls*”的文件名称,也就是Excel文件。


(5)如果希望创建指向文件的超链接,可以搭配HyperLink函数使用。
B3单元格输入公式:
=HYPERLINK(LEFT($B$1,LEN($B$1)-1)&"\"&IFERROR(INDEX(myfiles,ROW(A1)),""),IFERROR(INDEX(myfiles,ROW(A1)),""))

Hyperlink函数的语法为hyperlink(link_location,[Friendly_name])。link_location指链接文件存放位置,先使用LEFT函数从B1单元格提取文件存放路径,然后和Index函数提取的文件名连接。
friendly_name表示链接显示的文本,本例中显示的文本是使用Index函数提取的文件名。

点个在看你最好看


    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多