2012-11-29 18 views
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 

回答

1

測試格式的「q」部分以查看它是1還是2,並相應地設置字符串。

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

這將使Target_HalfYYYY/1在今年上半年YYYY/2下半年

+0

LOL @Sean,在我打字時看不到你的。很好的回答:-) – ExactaBox

0

有半年沒有自定義日期格式,所以你必須建立你自己的弦。將函數中的第一行替換爲:

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

您必須在循環中執行與第一行類似的操作。