如何 select select 在 EXCEL 的每日数据中编辑月份的最后一天

How to select the last day of selected months in daily data in EXCEL

我有从 2005 年 1 月 1 日到 2017 年 12 月 29 日的每日数据。我想要每年 select 三月、六月、九月和十二月的最后一天,以及它们各自的数据。部分数据:

   Date    Variable
30-Mar-2005 1.2943
31-Mar-2005 1.2964
1-Apr-2005  1.2959
4-Apr-2005  1.2883
5-Apr-2005  1.281

I.E:对于 2005 年,我想要 2005 年 3 月 31 日、2005 年 6 月 30 日、2005 年 9 月 30 日和 2005 年 12 月 30 日的日期。期望的输出:

Date        Variable
31-Mar-2005 1.2964
30-Jun-2005 1.9859
30-Sep-2005 1.2233
30-Dec-2005 1.2814

我目前有内置的 excel 公式(我还没有安装任何其他插件等)。

更具体地说:左边是数据,右边是所需的输出。

我将欧元转换列表转换为 Table 并使用了结构化引用。但如果您愿意,可以使用正常范围引用。

在其他一些 table 中,输入以下公式,其中 $A$45 指的是数据中第一季度的结束日期 table。

F2: =IF(EOMONTH($A,(ROWS(:1)-1)*3)>MAX(Table1[Date]),"",LOOKUP(2,1/(EOMONTH($A,(ROWS(:1)-1)*3)>=Table1[Date]),Table1[Date]))

在相邻的列中,输入公式:

G2: =IFERROR(VLOOKUP(F3,Table1,2,FALSE),"")

然后往下填,直到出现空白。

(在我的示例 table 中,最后一个日期是 2006 年 1 月 27 日,所以最后包含的 "End date" 是 2005 年 12 月 30 日,没有 2005 年 12 月 31 日的数据)

不确定这是否适合您,但无论如何。

您似乎总是查看特定年份(例如 2005 年)的三月、六月、九月和十二月的最后一天。

但您并不是要查找每个月的最后一个 自然 日。您希望每个月的最后一天出现在您的数据中(例如,这解释了为什么您使用 2005 年 12 月 30 日而不是 31 日,因为没有 31)。

在Excel中,日期是数字。以后走的越多,相关的数字就越大。了解这一点后,您可以获取每个月的日期 只需查看日期范围内的最大值

但首先,您需要定义日期范围,使用 2 个条件:

  1. 日期的月份必须是三月、六月、九月和十二月
  2. 您需要特定年份的日期(例如 2005 年)。

为此,您需要一个数组公式。我的公式获取特定月份和年份的最大天数。为了测试它,在我的 Excel 中,我做了一个日期系列,从 01/01/2005 开始,到 31/12/2017 结束。我手动删除了 31/12/2005 因为那个日期没有数据。

在单元格 I4 中,只需键入要检查的年份。该公式将获取当年三月、六月、九月和十二月的最后一天。

我的数组公式是:

=MAX(IF(MONTH(IF(YEAR($A:$A50)=$I;$A:$A50))=3;$A:$A50))

IMPORTANT!: Because it is an array formula, you will need to type it as usual, and then, instead of pressing Enter press CTRL+SHIFT+ENTER

你需要4次这个公式。只需将 3(三月)更改为您需要的月份数(6、9 和 12)即可。

现在你有了日期,你只需要 VlookUp 来获得你想要的值。

=VLOOKUP(G5;$A:$B50;2;false)

如果我更改年份值,我会得到这些新值:

如果要查看文件。我把例子上传到Gdrive了,有需要的可以下载Download

无论如何,请尝试根据您的需要调整此公式。

那么,有两种情况

  1. 当您知道该月的最后几天时。 (更简单)。
    我有每两周一次的数据。我采用了这种简单而创新的方法。从所有日期中,我首先使用 Day() 函数提取了日期。例如,Day(A1)。 (请记住,在执行此操作时,请勿删除原始日期列。在单独的列中执行此操作,因为这将帮助您稍后匹配日期)。
    然后我使用之前构建的 Day 列对数据进行降序排序。这会将所有结束日期放在首位。然后删除底部的开始日期。所以,现在我只剩下结束日期,但显然月份不对。
    因此,使用 =MONTH(A1) & "/" & YEAR(A1) 创建另一列,仅从原始日期列中提取月份和年份。使用此列对数据进行排序。而且,你很高兴去!

  2. 当您没有确切的最后几天,但像上图所示的最长日期时。
    在这种情况下,在删除初始日期时,您必须注意需要删除的日期。
    例如,我删除了有 31 天(包括第 17 天)的月份的第 17 天和有 30 天的月份的第 16 天(如果存在)因为如果有这个日期,假设是 2018 年 4 月 18 日,那么这个将是该月的最后一天,因为我有每两周一次的数据。