Excel改进的日期差函数

Excel改进的日期差函数,excel,excel-formula,vba,Excel,Excel Formula,Vba,我在Excel中定义了以下公式 =DATEDIF(B595;TODAY();"y") & " years, " & DATEDIF(B595;TODAY();"ym") & " months, " & DATEDIF(B595;TODAY();"md") & " days" 但它显示的结果如下: 0 years, 0 months, 20 days 我希望看到: 20 days 我可以使用VBA函数来获得更好的结果吗?或者一个公式?只需将If语句添加

我在Excel中定义了以下公式

=DATEDIF(B595;TODAY();"y") & " years, " & DATEDIF(B595;TODAY();"ym") & " months, " & DATEDIF(B595;TODAY();"md") & " days"
但它显示的结果如下:

0 years, 0 months, 20 days
我希望看到:

20 days

我可以使用VBA函数来获得更好的结果吗?或者一个公式?

只需将If语句添加到公式中,如果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, ")

我把公式分成三行,这样它在这里是可读的,但是它应该作为一行输入。你可以使用一个公式,有点长,但是只要添加一些
,如果你使用
DATEDIF
,请确保你理解它的一些限制,特别是
开始日期
在本月28日之后。例如,使用
2015年1月31日
2015年3月1日
进行尝试,输出天数将为负数。谢谢!ps:公式中有一个小错误,逗号应该是semicolumn@Revious啊,我犯了一个粗心的错误。忘记了地区差异(我与excel合作的祸根!)