我试图弄清楚如何将现有列表(每天更新)从一个工作表复制到另一个工作表,但不包括早于today()
的日期。
我知道如何通过VLookUp
或Index Match
查找具体日期,但我的目标是过滤掉一整套日期。
这是一个样本列表,每天通过一组公式更新:
另一张表上的输出应如下所示:
在这种情况下,不包括2月7日和2月10日,因为今天的日期是14日。 原始列表中的条目数量可能会有所不同。
如何在不使用VBA的情况下完成此操作?
提前感谢您的帮助!
答案 0 :(得分:2)
假设您的数据位于A1:C17
(我包括洛杉矶标题以及列标题名称),此公式应该可以解决问题:
=IFERROR(INDEX((--($A$3:$A$17>=TODAY())*$A$3:$C$17),COUNT($A$3:$A$17)-COUNTIF($A$3:$A$17,">="&TODAY())+ROW(1:1),1),"")
输入公式后,您可以将其复制到输出表的其余部分。
为此,只需将...+ROW(1:1),1)...
更改为:
...+ROW(1:1),2)...
代表 Out 列,...+ROW(1:1),3)...
代表在栏中。这有点令人费解,但似乎有效。它基于数组的思想运行,但它不是你需要提交的那种数组公式 Ctrl + Shift + Enter ,我通常觉得这是一个奖励,因为如果出现问题,更容易找出错误。
如果将输出范围拖过数据将会返回的点,那么在IFERROR
中很好地将其全部包装就可以清除错误。
答案 1 :(得分:0)
假设您有以下数据:
+---+-----------+
| | A |
+---+-----------+
| 1 | 2/10/2017 |
| 2 | 2/13/2018 |
| 3 | 2/17/2017 |
| 4 | 2/15/2018 |
| 5 | 2/18/2018 |
| 6 | 2/19/2018 |
| 7 | 2/20/2018 |
| 8 | 2/28/2018 |
+---+-----------+
然后,要获得大于或等于今天的日期列表,您可以使用:
=IFERROR(INDEX($A$1:$A$8,(ROW()-1)+COUNTIF($A$1:$A$8,"<="&TODAY())), "")
然后复制下来。
要从B列获取相应的值,只需将INDEX(<range>, ...
中的范围更改为B列:
=IFERROR(INDEX($B$1:$B$8,(ROW()-1)+COUNTIF($A$1:$A$8,"<="&TODAY())), "")
*这是假设您的日期从最小到最大排序,否则这很糟糕。