【问题标题】:Is there a way to change the formulas in my Excel sheet that reference another worksheet based on the date?有没有办法更改我的 Excel 工作表中基于日期引用另一个工作表的公式?
【发布时间】:2020-07-05 11:09:21
【问题描述】:

我花了几个小时使用 VBA、VLOOKUP、INDIRECT 等来浏览帖子,但在这种特定情况下运气不佳,最终让自己更加困惑。

我实际上是在做一份每日财务报告。我有两个工作表。第一个是“总结”,简单地收集当天销售的所有数据和数字,并整齐地呈现出来。第二个工作表是“每周”,这是我每天将直接值输入单元格的地方(例如,已售商品、零售运输成本、今天的餐饮总销售额)。“每周”工作表包含每个列中的月份日期,例如,任何月份的第 3 号的所有数字都是由我自己在 D 列下手动输入的。当月 4 号的所有数字都输入到 E 列中。

第一个工作表基本上只是再次更整齐地列出这些值,或者偶尔将这些值汇总到更大的销售类别中,这使我在“摘要”中留下一长列单元格,其中包含“每周!F8”“每周!F10-每周”等公式!F3”,我必须每天更改以引用下一个日期的数字(例如每周!G8”“每周!G10-G3”)。到目前为止,我一直在使用搜索和替换来搜索“每周!*”和替换为“每周!下一个字母”,但我正在寻找不同的解决方案。

总结 - https://i.imgur.com/6KqiyY8.png 每周 - https://i.imgur.com/R8eafum.png

有没有办法自动执行此操作,以便单元格公式更改为引用另一个工作表中的以下列,具体取决于日期或包含表示月份日期的整数的引用单元格。我可以手动更改一个参考单元格的值,理想情况下也可以更新整列参考公式。

【问题讨论】:

  • 你能告诉我们你自己尝试过的东西吗?

标签: excel vba excel-formula data-entry


【解决方案1】:

您可以使用OFFSET() 工作表函数。例如,在您的第一张图片中,突出显示的单元格的公式将变为 =+OFFSET(Weekly!A10,0,$A$1),其中单元格 $A$1 是包含月份日期的参考单元格。

比在所有公式中使用OFFSET() 更好的方法是在“每周”工作表的末尾添加一列并将其命名为“今天”。在此列的所有单元格中使用 OFFSET() 工作表函数。然后,您只能在“摘要”表中引用此列。

示例:在您的“每周”工作表中,使用“AG”列作为“今天”的列。然后“AG10”的公式将变为=OFFSET(A10,0,$A$1),而您的第一张图像中突出显示的单元格的公式将简单地变为=+Weekly!AG10

【讨论】:

  • 非常感谢!这完美地解决了我的问题 - 绝对只是太纠结于 VBA 和其他东西,以至于我无法从逻辑上解决这个问题。你的解释很有帮助。
  • 很高兴我能提供帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-12
  • 1970-01-01
  • 2022-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多