要获取Excel文件中工作表的名称,可以使用以下方法:
一、获取当前工作簿中的工作表名称
使用`TEXTJOIN`函数
在任意单元格输入以下公式:
```excel
=TEXTJOIN(", ", TRUE, FILTER(INDIRECT("Sheet1:Sheet100"), ISNUMBER(MATCH(ROW(INDIRECT("Sheet1:Sheet100")), 1, 0))))
```
该公式会列出当前工作簿中所有工作表的名称,用逗号分隔。注意需要根据实际工作表数量调整`Sheet1:Sheet100`的范围。
使用`INDEX`和`MATCH`函数组合
在单元格输入:
```excel
=TEXTJOIN(", ", TRUE, INDEX(Sheet1:Sheet100, MATCH(TRUE, ISNUMBER(MATCH(ROW(Sheet1:Sheet100)), 1, 0)), 0)))
```
同样需要根据实际工作表数量调整范围。
二、获取指定路径下所有Excel文件的工作表名称
使用`TEXTJOIN`和`FILTER`函数(适用于Office 365/Excel 2019+)
在单元格输入:
```excel
=TEXTJOIN(", ", TRUE, FILTER(FILES("D:\2\*.xlsx"), ISNUMBER(MATCH(ROW(FILES("D:\2\*.xlsx")), 1, 0))))
```
该公式会列出指定路径下所有`.xlsx`文件的工作表名称,用逗号分隔。
使用Power Query(适用于更复杂路径或文件类型)
打开Power Query编辑器,选择`Get Files`并指定路径(如`D:\2\*.xlsx`);
使用`Expand`和`Text to Columns`功能提取工作表名称;
最后关闭并加载结果到Excel中。
三、注意事项
上述公式中的`Sheet1:Sheet100`仅为示例,需根据实际工作表数量调整;
使用`TEXTJOIN`时需确保所有工作表名称在同一行且无空值;
对于大量数据,建议先使用`GET.WORKBOOK`函数获取工作簿名称,再结合`TEXTJOIN`优化性能。
通过以上方法,可以灵活获取单个工作簿或多个文件的工作表名称。