【发布时间】:2021-08-05 04:36:16
【问题描述】:
我正在寻找一些指导,以在不遇到循环引用错误的情况下在表格中循环 Excel 中的函数。我花了很长时间尝试 COUNTIF、MATCH,本质上,我需要为“Desired Date”列创建一个函数/公式,以便它从“Original Date”列中获取值并根据以下内容更改值参数:
-
如果 Original Date 列中的日期不存在于 Desired Date 列的先前值中,它将列出确切的日期。我已经用 IF 和 COUNTIF 函数解决了这部分问题。
-
如果 Original Date 列中的日期已经存在于“Desired Date”列的先前值中,它将增加 +1 天,直到 中的所有值Desired Date 列具有唯一的日期。
这是我希望该函数执行的操作:
第 1 行包含原始日期值 8/1,由于所需行列中不存在其他值,它将返回 8/1。
第 2 行包含原始日期值 8/1,但由于所需日期值的第 1 行已经包含值 8/1,它将添加 +1 天,因此它变为 8/2。
第 3 行包含原始日期值为 8/1,但由于所需日期的第 1 行和第 2 行包含该值,它将增加 +2 天,因此它变为 8/3。
第 6 行包含原始日期值 8/3,但由于所需日期的第 3 行包含该值,它将添加 +1 天,因此它变为 8/4。
如果原始日期中的某个日期在任何给定时间发生变化,则所需日期中的值应相应更改,方法是添加可变天数,直到“所需日期”列中的所有值都是唯一的。
| Row | Original Dates | Desired Dates |
|---|---|---|
| 1 | 8/1/2021 | 8/1/2021 |
| 2 | 8/1/2021 | 8/2/2021 |
| 3 | 8/1/2021 | 8/3/2021 |
| 4 | 8/12/2021 | 8/12/2021 |
| 5 | 8/12/2021 | 8/13/2021 |
| 6 | 8/3/2021 | 8/4/2021 |
| 7 | 8/4/2021 | 8/5/2021 |
| 8 | 8/3/2021 | 8/6/2021 |
| 9 | 8/13/2021 | 8/14/2021 |
我已经在这个问题上花费了 9 多个小时,因此非常感谢您在这一点上提供的任何帮助。我不介意使用 VBA,但出于兼容性目的,最好使用函数。
谢谢!
【问题讨论】:
标签: excel vba recursion circular-reference