如何在XLSX文件中使用多个单元格内容来命名文件
- 作者: 姬语
- 来源: 投稿
- 2024-09-06
一、如何在XLSX文件中使用多个单元格内容来命名文件
使用 VBA 宏1. 打开包含要重命名的 XLSX 文件的 Excel。
2. 按 `Alt` + `F11` 打开 Visual Basic 编辑器。
3. 在“插入”菜单中,选择“模块”。
4. 将以下代码粘贴到模块中:
```vbaSub RenameFilesFromCells()
Dim wb As Workbook
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim fileName As String
Set wb = ActiveWorkbook
Set ws = wb.Worksheets(1) '假设数据在第一个工作表中
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
For i = 2 To lastRow
fileName = ws.Cells(i, 1).Value & ws.Cells(i, 2).Value & ".xlsx"
wb.SaveAs fileName
Next iEnd Sub
```
5. 运行宏(按 `F5`)。
使用 Power Query
1. 打开包含要重命名的 XLSX 文件的 Excel。
2. 选择“数据”选项卡,然后单击“获取数据”>“自文件”>“自工作簿”。
3. 选择包含要重命名的文件名的 XLSX 文件。
4. 在“导航器”对话框中,选择包含文件名的工作表。
5. 单击“加载”按钮。
6. 在“查询编辑器”中,选择“添加列”>“自定义列”。
7. 在“自定义列”对话框中,输入以下公式:
```= [Column1] & [Column2] & ".xlsx"
```8. 将新列命名为“文件名”。
9. 单击“关闭并加载”按钮。
10. 选择“文件”>“另存为”>“浏览”。
11. 在“另存为”对话框中,选择“Power BI Desktop 文件 (.pbix)”作为文件类型。
12. 单击“保存”按钮。
13. 在 Power BI Desktop 中打开 PBIX 文件。
14. 在“查询”窗格中,右键单击“文件名”查询,然后选择“调用”。
15. 在“调用”对话框中,选择“重命名文件”。
16. 单击“确定”按钮。
注意:确保文件名列中没有重复值。
确保文件保存的位置具有写入权限。
二、如何在xlsx文件中使用多个单元格内容来命名文件
使用 VBA 宏1. 打开包含要重命名的文件的 Excel 工作簿。
2. 按 `Alt` + `F11` 打开 Visual Basic 编辑器。
3. 在“插入”菜单中,选择“模块”。
4. 将以下代码粘贴到模块中:
```vbaSub RenameFiles()
Dim wb As Workbook
Dim ws As Worksheet
Dim i As Long, j As Long
Dim strPath As String
Dim strFile As String
Dim strNewFile As String
Set wb = ActiveWorkbook
Set ws = wb.ActiveSheet
' 循环遍历工作表中的所有行
For i = 2 To ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
' 获取文件路径
strPath = ws.Cells(i, 1).Value
' 获取文件名
strFile = ws.Cells(i, 2).Value
' 获取新文件名
strNewFile = ws.Cells(i, 3).Value
' 重命名文件
Name strPath & strFile As strPath & strNewFile
Next iEnd Sub
```
5. 运行宏(按 `F5`)。
使用 Power Query
1. 打开包含要重命名的文件的 Excel 工作簿。
2. 选择“数据”选项卡,然后单击“获取数据”>“自文件”>“自工作簿”。
3. 选择包含文件名的工作簿,然后单击“导入”。
4. 在“Power Query 编辑器”中,选择“添加列”>“自定义列”。
5. 在“自定义列”对话框中,输入以下公式:
```= Table.AddColumn("YourTableName", "NewFileName", each [FileName] & [NewFileName])
```6. 替换 `YourTableName` 为工作表名称,`[FileName]` 为包含文件名的列名称,`[NewFileName]` 为包含新文件名的列名称。
7. 单击“确定”添加新列。
8. 选择“文件”>“关闭并上载”。
9. 在“导入数据”对话框中,选择“仅创建连接”。
10. 单击“确定”导入数据。
11. 右键单击工作表中的任何单元格,然后选择“刷新”。
使用第三方工具还有许多第三方工具可以帮助您使用多个单元格内容重命名文件,例如:
[Bulk Rename Utility](https://www.bulkrenameutility.co.uk/)
[Advanced Renamer](https://www.advancedrenamer.com/)
[File Renamer](https://www.filerenamer.com/)
三、一个单元格中多个名字如何使用vlookup
使用 VLOOKUP 函数查找单元格中多个名称的方法:
1. 使用辅助列:在原始数据表中,创建一个辅助列,将多个名称合并为一个分隔的字符串。
例如,如果 A2:A5 单元格包含名称,则在 B2 单元格中使用公式:`=TEXTJOIN(",", TRUE, A2:A5)`。
2. 使用 INDEX 和 MATCH 函数:
在查找表中,使用 INDEX 函数查找与辅助列中分隔字符串匹配的第一个名称。
例如,如果查找表在 Sheet2 中,则在 Sheet1 中使用公式:`=INDEX(Sheet2!A:A, MATCH(B2, Sheet2!B:B, 0))`。
3. 使用 VLOOKUP 函数:
将 INDEX 函数的结果作为 VLOOKUP 函数的查找值。
例如,在 Sheet1 中使用公式:`=VLOOKUP(INDEX(Sheet2!A:A, MATCH(B2, Sheet2!B:B, 0)), Sheet2!A:C, 3, FALSE)`。
示例:假设 Sheet1 中的 A2:A5 单元格包含以下名称:
```A2: John Doe
A3: Jane Smith
A4: Michael Jones
A5: Sarah Miller
```在 Sheet2 中,查找表如下:
```A:A B:B C:C
Name Email Phone
John Doe john.doe@example.com 5551234567
Jane Smith jane.smith@example.com 5552345678
Michael Jones michael.jones@example.com 5553456789
Sarah Miller sarah.miller@example.com 5554567890
```要查找单元格 A2 中多个名称的电子邮件地址,请在 Sheet1 中使用以下公式:
```=VLOOKUP(INDEX(Sheet2!A:A, MATCH(TEXTJOIN(",", TRUE, A2:A5), Sheet2!B:B, 0)), Sheet2!A:C, 3, FALSE)
```该公式将返回 "john.doe@example.com"。
四、一个单元格多个名字怎么到多个单元格中
使用公式1. 在目标单元格中输入以下公式:
```=TEXTJOIN(",",TRUE,A1:A10)
```其中:
A1:A10 是包含多个名称的单元格区域。
"," 是分隔符,将名称分隔为多个单元格。
2. 按 Enter 键。
使用 VBA 代码1. 打开 VBA 编辑器(按 Alt + F11)。
2. 插入一个新模块。
3. 粘贴以下代码:```vba
Sub SplitNames()
Dim rng As Range
Dim arrNames() As String
Dim i As Long
Set rng = Range("A1:A10") '修改为包含多个名称的单元格区域
arrNames = Split(rng.Value, ",")
For i = LBound(arrNames) To UBound(arrNames)
Cells(i + 1, 1).Value = arrNames(i)
Next iEnd Sub
```
4. 运行代码(按 F5)。
使用 Power Query
1. 选择包含多个名称的单元格区域。
2. 转到“数据”选项卡,然后单击“获取数据”>“自表/范围”。
3. 在“Power Query 编辑器”中,选择“拆分列”>“按分隔符”。
4. 在“分隔符”框中,输入逗号 (,)。
5. 单击“确定”。6. 将拆分的列加载到新表中。