在Microsoft Excel 2007中查找和排序与单个月份相同的月份名称

在Microsoft Excel 2007中查找和排序与单个月份相同的月份名称,excel,excel-formula,Excel,Excel Formula,我正在使用Microsoft excel 2010。我有不同的日期,比如列E1:E19,它们不在特定的时间间隔内。我希望帮助您只查找开始月份日期并将其粘贴到G列中,如图所示。只要您的日期列按示例中的顺序排序,请执行以下操作: 在第1行上方插入一行(用于公式的使用) 在表中所有行的a列中输入公式。公式如下: =If(非(年($E2)和月($E2)=年($E1)和月($E1),最大($F$1:$F1)+1“”) 这会将数字从1增加到该月份表中第一个日期旁边的月份数 然后在G列的表格中输入: =VLO


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

只要您的日期列按示例中的顺序排序,请执行以下操作:

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

=If(非(年($E2)和月($E2)=年($E1)和月($E1),最大($F$1:$F1)+1“”)

这会将数字从1增加到该月份表中第一个日期旁边的月份数

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

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

您可以将此公式向下拖动到任意位置。公式会在A:E中找到与G中的行号匹配的第一条记录(
row()
在G1中返回1),然后
VLOOKUP()
将返回A:E中第5列的值(即带有日期的E列)

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

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

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


对于F中的值与G中单元格的行号匹配的行,这将对E中的所有值求和。

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

如果需要了解如何加载,请查看以下URL:


首先,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中的起点-因此我们使用
SUBTOTAL
获得E列中的最早日期,使用
MIN
(即5)

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

技巧是
OFFSET
。第一个参数是out basic range,我们将对其进行偏移,然后我们必须确定要偏移的行数,为了不出现错误,我们使用
行(basicRange)
-rowcoffset始终保持在out范围内

MATCH
用于通过使用
EOMONTH
查找从G1开始的当月最后一个列出日期的行来确定必要的偏移量

希望这能澄清任何问题

编辑:

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

=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)))

在G2公式中,您现在引用的EOMONTH(G2)应该是G1而不是G2。确实是一个不错的方法,不需要额外的列,非常干净!谢谢@Jook这个方法非常有用。