Excel – 从给定月份的随机最后date获取值
我正在研究大约400家公司的股票每日市值的数据。 每个公司的数据范围从2000年到2016年不过,我想在6月的最后一天和12月的最后一天select市值。 此外,这些最后的date并不总是意味着月份date的结束。 例如; 去年十二月份,一家公司的最后市值已于十二月十四日上市。
为了总结我的问题,我想select6月份最后一个“可用”市值,以及2000年至2016年12月份的最后可用市值。
请帮助我,或给我一个方向来解决这个问题。 作为可用值的最后date并不意味着月末值,我想我不能使用月底公式。 查找function也看起来不切实际。
再次感谢您提供的任何build议。 先谢谢你。
样本数据
Date - Closing - Market Capitalization 2-Jan - 23.5 - 177,282,000 1-Jan - 22 - 177,282,000 31-Dec - 33 - 177,282,000 30-Dec - 33 - 177,282,000 4-Jul - 31 - 120,960,000 2-Jul - 31.1 - 113,400,000 1-Jul - 31 - 113,400,000 28-Jun - 30 - 113,400,000 27-Jun - 30 - 113,400,000 26-Jun - 30.1 - 113,400,000
你可以使用这个数组公式:
=INDEX($C$2:$C$11,MATCH(TRUE,(MIN(IF($A$2:$A$11<=EOMONTH(E6,0),EOMONTH(E6,0)-$A$2:$A$11))=IF($A$2:$A$11<=EOMONTH(E6,0),EOMONTH(E6,0)-$A$2:$A$11)),0))
作为数组公式必须使用Ctrl-Shift-Enter确认。 如果做得正确的话,excel会把{}
放在公式的周围。
如果您能够按升序对date进行sorting,那么您可以使用这个非数组公式:
=INDEX($C$2:$C$11,MATCH(EOMONTH(E6,0),$A$2:$A$11,1))
潜在的解决scheme。 有一个小小的警告,我会在最后。
让我们在E列的日子里生成一个我们想要search的目标date列表。 他们将是六月和十二月的结束date。 每行将提前6个月。
在E2中,我们把播种date放在:
=EOMONTH(DATE(2000,6,1),0)
在E3中,我们把我们的列表生成器放在如下,并尽可能地复制下来:
=EOMONTH(E2,6)
在G2中,我们使用下面的公式并尽可能地复制下来:
=IFERROR(INDEX($C$2:$C$11,AGGREGATE(15,6,ROW($A$2:$A$11)/((MONTH($A$2:$A$11)=MONTH(E2))*(YEAR($A$2:$A$11)=YEAR(E2))),1)-1),"NOT FOUND")
需要注意的是市值必须至less在六月或十二月份发生。 这些月之外不会被看着。
如果你想显示你拉的号码的date,因为它实际上不是一个月的最后一天,你可以把这个date放在F列中:
=IFERROR(INDEX($A$2:$A$11,AGGREGATE(15,6,ROW($A$2:$A$11)/((MONTH($A$2:$A$11)=MONTH(E2))*(YEAR($A$2:$A$11)=YEAR(E2))),1)-1),"NOT FOUND")
概念validation