【发布时间】:2013-03-01 05:56:11
【问题描述】:
我为表示列表中日期数组的动态范围构建了一个 OFFSET 公式。根据今天的日期,它采用从 X 周前的星期一开始到 Y 周前的星期五的日期。除了我想从数组输出中排除周末日期之外,一切都很愉快。
我的原始数据有时会出现多次日期,即
04/03/2013 = Mo
05/03/2013 = Tu
06/03/2013 = We
06/03/2013 = We
07/03/2013 = Th
08/03/2013 = Fr
09/03/2013 = Sa
10/03/2013 = Su
11/03/2013 = Mo
12/03/2013 = Tu
这是我的动态范围。日历!$D:$D 是找到上述格式的所有日期的位置。
=OFFSET(Calendar!$D$1,MATCH(TODAY()+1-WEEKDAY(TODAY(),2)-14,Calendar!$D:$D,0)-1,0,MATCH(TODAY()+28-WEEKDAY(TODAY()+1),Calendar!$D:$D,0)-MATCH(TODAY()+1-WEEKDAY(TODAY(),2)-14,Calendar!$D:$D,0)+1)
根据今天的日期,它会查找两周前的星期一,然后将范围扩大到 3 周前的星期五。如何使动态范围不包括周末?
【问题讨论】:
-
我无法更改源工作表的布局,但我可以将包含周末值的单元格设为空白。不知道这有多大帮助。我尝试在 OFFSET 函数上使用 IF 周末日期然后 "" 条件,这确实有效,但它会在数组中留下空白单元格,而不是将列合并到一个一致的流
-
只是想,用
na()代替""怎么样,或者你可以用三个偏移函数代替一个来消除周末? -
实际上,我只是删除了所有的周末日期。不想碰它们,因为它会毁掉另一张纸,但我改变了那张纸上的公式,现在我的两张纸都可以工作了。回应您的评论:我不相信动态范围可以是一组串联的偏移函数。至于 NA(),它将像空白一样工作,即周末日期将被输出数组中的 NA() 替换。虽然我找到了解决方法,但我仍然热衷于寻找解决方案。
-
我不在我的电脑前,但我很想尝试一些事情......
-
如果你找到解决方案我会很高兴的!
标签: excel dynamic range date-range