2

在此处输入图像描述

我正在使用 Microsoft excel 2010。我有不同的日期,例如 E1:E19 列,它们不在特定的时间间隔内。我想要帮助查找仅开始月份的日期并将它们粘贴到 G 列中,如图所示。

4

3 回答 3

4

首先,就是说 - K_B 和Ibrahim Odeh都有有效且良好的尝试。我只想添加另一个选项,因为这些选项使用额外的行或手动工具。

这是我想出的解决此问题的公式,如您的屏幕截图所示 - 只有一列,只有带有开始日期的行:

G1=SUBTOTAL(5,E$1:E$19)

G2=SUBTOTAL(5,OFFSET(E$1:E$19,MATCH(EOMONTH(G1,0),E$1:E$19,1),0,ROWS(E$1:E$19)-MATCH(EOMONTH(G1,0),E$1:E$19,1)))

可以将它用于整个列,如下所示:

G1=SUBTOTAL(5,E:E)

G2=SUBTOTAL(5,OFFSET(E:E,MATCH(EOMONTH(G1,0),E:E,1),0,ROWS(E:E)-MATCH(EOMONTH(G1,0),E:E,1)))

现在,一些解释:

首先,您需要G1中的起点- 因此我们使用(即 5)SUBTOTAL获取 E 列中的最早日期。MIN

现在我们从这里开始工作,通过偏移我们用来计算的范围SUBTOTAL,仍然使用MIN(5),得到每个月的开始。

诀窍是OFFSET。第一个参数是超出基本范围,我们将偏移,然后我们必须确定要偏移多少行,为了不出错,我们使用ROWS(basicRange)-rowOffset 始终保持在超出范围内。

MATCH用于确定必要的偏移量,方法是 使用. 从G1EOMONTH中查找该月最后列出的日期所在的行。

希望这可以解决任何问题。

编辑:

因为我必须翻译这个,这里是原文:

=TEILERGEBNIS(5;E:E)

=TEILERGEBNIS(5;BEREICH.VERSCHIEBEN(E:E;VERGLEICH(MONATSENDE(G1;0);E:E;1);0;ZEILEN(E:E)-VERGLEICH(MONATSENDE(G1;0);E:E;1)))
于 2012-11-01T12:12:44.997 回答
1

只要您的日期列按照示例中的样子进行排序,然后执行以下操作:

在第 1 行上方插入一行(用于使用公式)在表格所有行的 A 列中输入公式。公式如下:

=If(NOT(YEAR($E2)&MONTH($E2)=YEAR($E1)&MONTH($E1), MAX($F$1:$F1)+1, "")

这会将增加的数字从 1 添加到仅在该月表中的第一个日期旁边所涉及的月数。

然后在 G 列的表格中输入:

=VLOOKUP(ROW(), A:E, 5)

您可以根据需要将此公式向下拖动。该公式在 A:E 中找到与 G 中的行号匹配的第一条记录(ROW()在 G1 中返回 1),然后VLOOKUP()将返回 A:E 中第 5 列中的值(即 E 列与日期)。

A 列中的公式应位于日期的左侧,以使VLOOKUP()公式生效。

或者,您可以将其放在右侧的列中,然后使用另一个公式代替VLOOKUP()G 列:

=SUMIF(F:F,ROW(),E:E)

这会将 E 中的所有值相加,其中 F 中的值与 G 中单元格的行号匹配。

于 2012-11-01T11:52:53.340 回答
0

我认为您需要使用 analysis-toolpak 插件来执行此任务:

如果您需要知道如何加载它,请查看以下 URL:

http://office.microsoft.com/en-us/excel-help/load-the-analysis-toolpak-HP001127724.aspx

问候

于 2012-11-01T11:54:04.500 回答