質問

私はExcelのためにVBAで働いており、Excel変換日の形式である日付を入力できる関数の使用を必要としています(40736など)。四半期の入力日の直後の四半期の日付を、四半期が1月1日、4月1日、7月1日、および10月1日の順に出力されます。 例として:私の入力は40736(2011年7月12日に対応するExcel日付です。 私の出力が201111001になるのを望み、次の四半期に対応しています。

戦略や述べられているコードの人々の援助や、指示されたコードの援助が大きくなるように、これにアプローチする方法はわかりません。ありがとう

役に立ちましたか?

解決

これはMartinのコードのわずかな変動です。 next quarter:

Function GetQuarterDate2(InDate As Date) As Date

    Dim Quarter As Integer
    Dim OutDate As Date
    Dim yr As Long

    Quarter = DatePart("q", InDate)
    yr = Year(InDate)

    If Quarter = 1 Then
        OutDate = DateSerial(yr, 4, 1)
    ElseIf Quarter = 2 Then
        OutDate = DateSerial(yr, 7, 1)
    ElseIf Quarter = 3 Then
        OutDate = DateSerial(yr, 10, 1)
    ElseIf Quarter = 4 Then
        OutDate = DateSerial(yr + 1, 1, 1)
    End If

    GetQuarterDate2 = OutDate

End Function
.

他のヒント

下記が機能するはずで、DATEをINDATEの引数として指定してください。

Function GetQuarterDate(InDate As Date) As Date

  Dim Quarter As Integer
  Dim OutDate As Date

  Quarter = DatePart("q",InDate)

  If Quarter = 1 Then
    OutDate = DateSerial(DatePart("yyyy",InDate),1,1)
  ElseIf Quarter = 2 Then
    OutDate = DateSerial(DatePart("yyyy",InDate),4,1)
  ElseIf Quarter = 3 Then
    OutDate = DateSerial(DatePart("yyyy",InDate),7,1)
  ElseIf Quarter = 4 Then
    OutDate = DateSerial(DatePart("yyyy",InDate),10,1)
  End If

  GetQuarterDate = OutDate

End Function
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top