Microsoft Projectと同じ式が必要です。これをExcelおよびSharePointタスクで作成する必要があります。プロジェクトで期間用に使用するExcelの式
ので、列には、二つの日付を比較し、次のようになります。式でこれをやって
1 wk
2 wks
3 days
1 day
1 mth
2 mths
Microsoft Projectと同じ式が必要です。これをExcelおよびSharePointタスクで作成する必要があります。プロジェクトで期間用に使用するExcelの式
ので、列には、二つの日付を比較し、次のようになります。式でこれをやって
1 wk
2 wks
3 days
1 day
1 mth
2 mths
は私が取り組むために喜んだものではありません、おそらく他の誰かがの無限の混乱に対処するように感じていますネストされたif
s。
代わりに、2つの日付の間の年、月、週、日を吐き出すVBAルーチンで十分です。
Function projectDuration(fromdate As Date, todate As Date) As String
'years
years = DateDiff("yyyy", fromdate, todate)
If years > 1 Then
projectDuration = years & " yrs "
ElseIf years = 1 Then
projectDuration = years & " yr "
End If
'months
months = DateDiff("m", DateAdd("yyyy", years, fromdate), todate)
If months > 1 Then
projectDuration = projectDuration & months & " mths "
ElseIf months = 1 Then
projectDuration = projectDuration & months & " mth "
End If
'weeks
weeks = DateDiff("w", DateAdd("m", months, DateAdd("yyyy", years, fromdate)), todate)
If weeks > 1 Then
projectDuration = projectDuration & weeks & " wks "
ElseIf weeks = 1 Then
projectDuration = projectDuration & weeks & " wk "
End If
'days
days = DateDiff("w", DateAdd("w", weeks, DateAdd("m", months, DateAdd("yyyy", years, fromdate))), todate)
If days > 1 Then
projectDuration = projectDuration & days & " days"
ElseIf days = 1 Then
projectDuration = projectDuration & days & " day"
End If
End Function
これはUDFです。 VBEの新しいモジュールに貼り付けるだけで、この式をワークシートで使用できます。あなたが持っている場合たとえば、あなたのシートに以下:あなたが式を使用することができます
+---+----------+-----------+
| | A | B |
+---+----------+-----------+
| 1 | 1/1/2016 | 2/16/2016 |
| 2 | | |
+---+----------+-----------+
:
=projectDuration(A1,B1)
をそして、それは1 mth 2 wks 1 day
を吐き出すます。
あなたはあまりにもいいです。私は数式を開始し、十分な時間や欲望をあきらめました。 –
私はこの考えを何年もの間に始め、範囲を狭めようとしました。その後、私はそれを試してみる必要がありました。それがうまくいったので、ここに貼り付けました。私はそれがOPのニーズに合うかどうか分かりませんが、私はそれが好きです! – JNevill
あなたの質問は何ですか? –
「DateDif」のような音がして、余分なピッツァーズが付いています。 [here](https://support.office.com/en-us/article/Calculate-the-difference-between-two-dates-8235e7c9-b430-44ca-9425-46100a162f38) – JNevill
を参照してください。@JNevillが ' pizzazz'というのは、すべての事態に対処するために、多くのIF()ステートメントを意味します。 –