excel - 使用 vlookup 时自动更改文件名日期的 Excel 公式
问题描述
例子:
=VLOOKUP(B2,'[Approved Contractors 08302018.xlsx]Contractor with key'!$B$2:$C$99999,2,0)
名为“Approved Contractors 08302018.xlsx”的电子表格的文件名将在下周更改为“Approved Contractors 09062018.xlsx”。电子表格中的选项卡名称称为“Contractor with key”。
目前,我必须进入公式,更新文件名后面的日期,然后将其粘贴到excel中,然后将其复制到所有单元格中。如何让它自动更新。我在想=today()-8
,但我不确定如何在文件名的 vlookup 中做到这一点?
解决方案
假如说:
1.您只更改文件名中的日期(例如,仅 08302018 部分)
2.这个日期总是格式化为mmddyyyy
3.这个日期总是=TODAY()-8
4.所有其他细节保持不变(例如工作表名称、源文件与目标文件位于同一文件夹中、C 列下的返回值等...)
然后您可以使用该INDIRECT
函数在公式中自动更改该日期:
=VLOOKUP(B2,INDIRECT("'[Approved Contractors "&TEXT(TODAY()-8,"mmddyyyy")&".xlsx]Contractor with key'!$B$2:$C$99999"),2,0)
但是,我注意到您的示例与第三个假设背道而驰,并且TODAY()-8
您不想将其引用到 ,而是将其引用到THURSDAY
当前一周的日期。在这种情况下,您只需更改上述公式中的参考日期即可。请考虑以下公式:
=VLOOKUP(B2,INDIRECT("'[Approved Contractors "&TEXT(TODAY()-WEEKDAY(TODAY())+5,"mmddyyyy")&".xlsx]Contractor with key'!$B$2:$C$99999"),2,0)
澄清一下,它的作用是将公式中参考文件名中的日期更改为THURSDAY
当前星期的日期。因此,当您今天(2018 年 9 月 15 日)在文件中运行它时,参考文件名应该是"Approved Contractors 09132018.xlsx"。
如果这返回错误,则可能意味着假定的参考文件命名不正确。在这种情况下,使用IFERROR
函数会提醒我们检查参考文件名。当确实发生错误时,以下公式将显示“请检查参考文件名”:
=IFERROR(VLOOKUP(B2,INDIRECT("'[Approved Contractors "&TEXT(TODAY()-WEEKDAY(TODAY())+5,"mmddyyyy")&".xlsx]Contractor with key'!$B$2:$C$99999"),2,0),"Please check reference filename")
推荐阅读
- mysql - MySQL 在 JSON 对象数组中搜索
- c# - 从汇编资源流式传输的音频快速、响亮且失真
- azure - MS Teams 集成和 Microsoft Graph API - 调用事件 API 列表日历时出错 (/me/calendars)
- ios - 使用 SwiftUI 在视图中使用不同的拖动手势
- macos - 如何启用和调试 macOS 文件提供程序扩展?
- c# - 用于 USB 设备的 Winusb 驱动器
- kotlin - 如何在 Jetpack Compose Desktop 中加载字体?
- python-3.x - 'DatetimeIndex' 对象没有属性 'Date'
- javascript - Javascript“无法读取 null 的样式属性”。没有任何工作
- android-intent - 从 SPA Web 应用程序调用 android 意图(以编程方式)