1

私のタイムゾーン(中央)と(太平洋;山;東部)の間の期間を日数で計算する方法を見つけようとしています。どこから始めればよいのかわからないだけです。私の基準は次のようになります。

セル C5:C100 は、2010 年 3 月 18 日 23:45 の形式のタイムスタンプですが、日付と時刻が異なります。セル D5:D100 は、テキスト形式の対応するタイムゾーンです: Pacific; 山; 東部; 中央。

セル F5 は、日数の期間が必要な場所です。

私が探しているものを私に与える式を書く方法がわからないだけです。事前にご支援いただければ幸いです。ありがとう

4

2 に答える 2

1

タイムゾーンと夏時間から

VBAもVB6も、タイムゾーン、グリニッジ標準時(GMT、UTCとも呼ばれる)、または夏時間を操作するためのネイティブ関数を提供していません。これらの値を操作するには、いくつかのWindowsアプリケーションプログラムインターフェイス(API)関数を使用する必要があります。このページでは、これらのAPI関数と、VBAコードでそれらを使用する方法について説明します。

于 2010-04-07T16:28:43.767 に答える
0

最も簡単な方法は、おそらくネストされたIF式です。

=IF(D22="Pacific",(1/24*2),IF(D22="Mountain",(1/24),IF(D22="Eastern",-(1/24),0)))

または、LOOKUP関数を使用して同じものを返します。

=(C5+(1/24*LOOKUP(D5,{"Central","Eastern","Mountain","Pacific"},{-2,-3,-1,0})))-C5

または、ローカルの日付/時刻を取得し、タイムゾーンのテキスト表現から太平洋の日付/時刻を計算するUDFを作成することもできます。

Function TimeDifference(LocalTime As Range, TimeZone As Range) As Date
    Application.Volatile
    Dim TimeOffset As Long

    Select Case TimeZone
        Case "Mountain"
            TimeOffset = -1
        Case "Central"
            TimeOffset = -2
        Case "Eastern"
            TimeOffset = -3
        Case Else
            TimeOffset = 0
    End Select
    TimeDifference = (1 / 24 * TimeOffset)
End Function

これを列Fから次のように呼び出します。

=TIMEDIFFERENCE(C5,D5)

于 2010-04-08T08:29:56.467 に答える