2016-07-26 2 views
1

Я определил следующую формулу в ExcelExcel улучшение дата функции 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' находится после 28-го числа месяц. Например, попробуйте с «31-янв-2015» до «1-Мар-2015», а выход «Дни» будет отрицательным. –

ответ

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, ") 

Я сломал формулу в три строки так его читаемым здесь, но она должна быть введена в виде одной строки

+0

Спасибо! ps: есть небольшая ошибка в формуле, запятая должна быть полукольцо – Revious

+1

@Revious ahh неосторожная ошибка с моей стороны. Забыл о региональных различиях (проклятие моего существования, работающего с excel!) – RGA

Смежные вопросы