我正在使用Microsoft excel 2010.我有不同的日期,如列E1:E19,不在特定的时间间隔内。我希望帮助只找到开始月份日期并将它们粘贴到G列中,如图所示。
答案 0 :(得分: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 中的起点 - 因此我们使用SUBTOTAL
使用MIN
(即5)来获取E列中的最早日期。< / p>
现在我们在这里工作,通过偏移我们用于计算SUBTOTAL
的范围,仍然使用MIN
(5)来获取每个月的开头。
技巧是OFFSET
。第一个参数是基本范围,我们将偏移,然后我们必须确定要偏移的行数,并且不会得到错误,我们使用ROWS(basicRange)
- rowOffset始终保持在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)))
答案 1 :(得分: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中的行号匹配的第一条记录(G1中的ROW()
返回1),然后VLOOKUP()
将返回A:E中第5列中的值(即列E与日期)。
A栏中的公式应位于VLOOKUP()
公式日期的左侧。
或者,您可以将其放在右侧的列中,然后在G列中使用另一个公式代替VLOOKUP()
:
=SUMIF(F:F,ROW(),E:E)
对于F中的值与G中单元格的行号相匹配的行,将E中的所有值相加。
答案 2 :(得分:0)
我认为您需要使用analysis-toolpak Add-on来执行此任务:
如果您需要知道如何加载它,请查看以下网址:
http://office.microsoft.com/en-us/excel-help/load-the-analysis-toolpak-HP001127724.aspx
此致