2016-07-26 9 views
1

は、私は、Excelエクセル向上日付関数diff

=DATEDIF(B595;TODAY();"y") & " years, " & DATEDIF(B595;TODAY();"ym") & " months, " & DATEDIF(B595;TODAY();"md") & " days" 

に次の式を定義しました。しかし、それは同様の結果を示しています。私が見ることを好むだろう

0 years, 0 months, 20 days 

を:

20 days 

VBA関数を使用してより良い結果を得ることはできますか?または式ですか?文場合

+0

少し長い数式を使うことができますが、いくつかの 'IF'を追加することができます –

+1

' DATEDIF'を使用している場合は、特に 'start_date'が月。たとえば、2015年1月31日に「2015年1月3日」に試してください。日出力は負の数になります。 –

答えて

2

ただ、DATEDIFはゼロと評価された場合のコンポーネントを削除します式に追加します。

=IF(DATEDIF(B595;TODAY();"y")=0;"";DATEDIF(B595;TODAY();"y") & " years, ") & _ 
IF(DATEDIF(B595;TODAY();"ym")=0;"";DATEDIF(B595;TODAY();"ym") & " months, ") & _ 
IF(DATEDIF(B595;TODAY();"md")=0;"";DATEDIF(B595;TODAY();"md") & " days, ") 

私はここので、その読み込み可能な3行に式を破ったが、それは1行として入力する必要があります

+0

ありがとう! ps:数式に小さな間違いがあります。カンマはセミコラムでなければなりません。 – Revious

+1

@私のところではあまりにも間違った間違いです。地域の違いを忘れてしまった – RGA