【问题标题】:Excel - How to copy rows and discard others based on today's date?Excel - 如何根据今天的日期复制行并丢弃其他行?
【发布时间】:2014-02-21 17:20:36
【问题描述】:

我有一个工作表,在一张名为“付款”的工作表中,A 列的每一行都有一个按升序排列的日期,C 列有一个客户名称,E 列有一个货币价值,G 列有一个是/没有复选框。

日期有时会重复,但其他值不会(Y/N/ 复选框也会重复)。所以,有时我有:

m / d / y

02/02/2014 - 客户 X - 100,00 - y;

02/02/2014 - 客户 Z - 120,00 - n;

02/03/2014 - 客户 W - 110,00 - n;

等等

我需要的是:在另一个名为 Today's Dues 的工作表上,在同一个工作表中,当 Payments 表中的 A 列(日期列)是今天的日期时,从 A 到 G 的该列的整行)被复制到今天的到期表。这同样适用于 A 列具有今天日期的所有其他行。但是,明天,该工作表需要自行更新,因此昨天的信息将不再存在,只有带有新日期的新行。

由于每天不超过 10 笔付款,Todays Due 上的可用空间不需要超过 10 行,但必须从付款表的整个 A 列中获取信息。

当时的想法是创建一个宏来复制付款表中的所有数据,然后自动应用带有今天日期的过滤器。这个宏将是打开时发生的第一件事。但事实证明,这非常令人沮丧。我似乎无法让 Excel 将我的日期识别为日期,只能识别为文本,我尝试了一切。

请提供任何帮助或更优雅的解决方案?

谢谢

【问题讨论】:

    标签: excel duplicates filtering vba


    【解决方案1】:

    假设多行相同日期是有序的,这些应该可以工作。

    日期: =IF(INDEX(Payments!A:A,MATCH(TODAY(),Payments!A:A,0)+ROW()-2)=0,"",INDEX(Payments!A:A,MATCH(TODAY(),Payments!A:A,0)+ROW()-2))

    客户名称: =IFERROR(INDEX(Payments!$C:$C,MATCH($A2,Payments!$A:$A,0)+ROW()-2),"")

    价值: =IFERROR(INDEX(Payments!$E:$E,MATCH($A2,Payments!$A:$A,0)+ROW()-2),"")

    是/否: =IFERROR(INDEX(Payments!$G:$G,MATCH($A2,Payments!$A:$A,0)+ROW()-2),"")

    将每个公式放在连续的列中以获得您的 4 个唯一值。将这些向下拖动 10 行以收集所有可能的值。

    **注意:“ROW()-2”中的 2 将是您开始此操作的任何行号。我使用了 2,因为我将标题放在第一行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-27
      • 2016-10-07
      • 1970-01-01
      • 2021-12-29
      • 2019-03-03
      • 2018-07-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多