0

嗨,我有一个用于计算季度利率的 ocde。要从日期计算季度,我在代码中有“YYYYq”。任何人都可以帮助用半年一次的时间段替换季度。我已经尝试过“YYYY/2”,但这确实是工作。我也尝试过使用“YYYYmm”,但也没有用。

我想有半年期的分子和分母。例如:如果访问日期是 2012 年 1 月 1 日,那么这将计入今年上半年。2012 年 1 月 1 日至 2012 年 6 月 30 日期间的所有访问将计入第一个半年期,2012 年 6 月 30 日至 2012 年 12/31 日将计入第二个半年期。

非常感谢您的时间和建议。

   Function Visits(target_timeframe)

        Target_Quarter = Format(target_timeframe, "YYYYq")

        For vRow = 2 To 2000

            entered_timeframe = Format(Sheets("sheet1").Range("A" & vRow).Value, "YYYYq")

            Entered_Visits = Sheets("sheet1").Range("B" & vRow).Value 'equals value of column

            If (entered_timeframe = Target_Quarter) Then
                denominator = denominator + 1
                If (Entered_Visits > 0) Then
                    numerator = numerator + 1
                End If
            End If
        Next

        If denominator > 0 Then
            Average = numerator / denominator
        Else
            Average = "N/A"
        End If

    End Function
4

2 回答 2

1

测试格式的“q”部分,看它是1还是2,并相应地设置字符串。

Target_Half = Format(target_timeframe, "YYYY") & _
     IIf(Format(target_timeframe, "q") <= "2", "/1", "/2")

这将使上半年Target_Half和下半年YYYY/1YYYY/2

于 2012-11-29T16:19:51.190 回答
0

半年没有自定义日期格式,因此您必须自己构建字符串。将函数中的第一行替换为:

Target_Quarter = Year(target_timeframe) & IIf(Month(target_timeframe) <= 6, 1, 2)

您将不得不对循环中的第一行执行类似的操作。

于 2012-11-29T16:25:03.993 回答