【问题标题】:Can I test my Excel formulas as if today was some day in the future?我可以像今天是未来的某一天一样测试我的 Excel 公式吗?
【发布时间】:2019-04-11 18:41:12
【问题描述】:

我正在构建一个每天刷新的新仪表板。仪表板包括当月数据以及上月数据。但是,我需要在日期方面尝试一些不同的方案,以确保月份转换没有问题。例如,我想知道我的公式在当月的第一天和每月的第二天在不同的条件下会做什么,例如第一天是周末或节假日等,我不会有任何数据,这会导致错误。

我尝试修复公式,但涉及的公式太多且相互关联。数据也从 SQL 服务器中提取,我也在使用 GETDATE()。

例如,我的一个公式显示 =YEAR(TODAY()-1)&IF(MONTH(TODAY()-1)<10,0&MONTH(TODAY()-1),MONTH(TODAY()-1))

获取年份和月份(例如 201904 表示 2019 年 4 月)。这是内置 today() 的众多公式之一

总之,我想知道是否可以更改 Excel 读取的日期。例如,我有一个带有 =TODAY() 的公式 - 我希望这个公式返回我设置的其他日期,而不是今天的实际日期。

【问题讨论】:

  • 你试过加减today()吗?今天() + 1
  • 如何引用一个范围,默认为TODAY()-1?然后您可以更改该范围内的值以测试其他日期。
  • =TODAY() 放入将保存该值的单元格中。更改所有公式以引用该单元格。例如,如果包含 =TODAY() 的单元格是 A1,那么您显示的公式将是:=YEAR(A1-1)&amp;IF(MONTH(A1-1)&lt;10,0&amp;MONTH(A1-1),MONTH(A1-1))。现在将保存“今天”信息的单元格调整为您希望在未来日期对其进行测试的任何日期。测试完成后将其设置回=TODAY()
  • 大家好,感谢你们的cmets。我想过这样做,但很害怕,因为公式太多,担心 ctrl + h 无法修复我需要修复的所有公式。
  • 但是,如果没有其他好的答案出现,我会尝试一下。再次感谢大家!

标签: excel excel-formula


【解决方案1】:

首先将此用户定义函数放在标准模块中:

Public Function todaz() As Date
    todaz = Evaluate("=today()") + 12
End Function

然后在您的工作表中,替换以下所有实例:

Today()

与:

 todaz()

您可以将用户定义的函数更改为您希望的任何日期偏移量。

完成测试后,将所有todaz() 改回Today()

【讨论】:

  • 非常感谢,看起来正是我需要的。
【解决方案2】:

这是一个非 VBA 版本:

有一个单元格,您只在其中输入=Today(). 在工作表中,将 Today() 的所有其他实例替换为对该单元格的引用。对于测试,请将Today() 替换为您喜欢的任何日期,完成后,将Today() 放回原处。

这个版本和 Gary 的学生版本都具有波动性较小的优点 - 也就是说,它们运行得更快,因为 Today() 是在它出现的每个地方频繁重新计算的那些函数之一 - 在你的情况下听起来很喜欢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多