2013-07-25 27 views
0
A1: I have 1/1/13 
A2: I have 7/25/13 

我如何使用一个公式,A3,使得输出看起来是这样的:一个公式阵列月末只有2日期

1/31/13,2/28/13,3/31/13,4/30/13,5/31/13,6/30/13,7/31,13 

即。在一个单元格中,一个公式给我所有的月份结束日期。

请勿使用代码。

+2

我不认为有这样做没有一个宏观的一种方式,或一个特别长,混乱和重复的公式。 – RowanC

+0

我有信心在stackoverflow社区 – jason

回答

4

把这个模块中:

Function myFormula(startDate, endDate) 
    On Error GoTo err 
    Dim result As String 
    result = "" 
    noOfMonths = DateDiff("m", startDate, endDate) 
    For i = 1 To noOfMonths + 1 
     Dim myDate As Date 
     myDate = DateAdd("d", Day(startDate) - 1, startDate) 
     myDate = DateAdd("m", i, myDate) 
     myDate = DateAdd("d", -1, myDate) 
     result = result & Format(myDate, "m\/d\/yy") 
     If i <= noOfMonths Then result = result & "," 
    Next i 
    myFormula = result 
ex: 
    Exit Function 
err: 
    MsgBox (err.Number & err.Description) 
    myFormula = "Error" 
    Resume ex 
End Function 

,这在A3:= myFormula(A1,A2)

+0

艾伦感谢您的代码,但它可能没有代码? – jason

+0

我总是试着做没有代码的东西......它是可能的,但在一个单一的单元格中的一个单一的公式中不可行... –

+1

我只是想通了...... google电子表格解决方案'= join(“,” ,ArrayFormula(eomonth($ A $ 1,row(indirect(“C1:C”&month(A2)-month(A1)+1))-1)))' – jason