выделение из количества дней годы, месяцы, дни
Sashagor1982
Дата: Вторник, 13.12.2016, 07:20 |
Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 288
Репутация:
-6
±
Замечаний:
0% ±
Excel 2007
Уважаемые коллеги, подскажите есть какой-либо простой способ из определенного количества дней, выделения лет, месяцев и дней, без математических расчетов, например подсчет стажа работы.
Уважаемые коллеги, подскажите есть какой-либо простой способ из определенного количества дней, выделения лет, месяцев и дней, без математических расчетов, например подсчет стажа работы. Sashagor1982
Сообщение отредактировал Sashagor1982 - Вторник, 13.12.2016, 07:21
Ответить
Сообщение Уважаемые коллеги, подскажите есть какой-либо простой способ из определенного количества дней, выделения лет, месяцев и дней, без математических расчетов, например подсчет стажа работы. Автор - Sashagor1982 Дата добавления - 13.12.2016 в 07:20
Pelena
Дата: Вторник, 13.12.2016, 09:10 |
Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19603
Репутация:
4660
±
Замечаний:
±
Excel 365 & Mac Excel
А количество дней Вы как получаете? Вычитанием дат? Тогда смотрите в сторону функции РАЗНДАТ()
А количество дней Вы как получаете? Вычитанием дат? Тогда смотрите в сторону функции РАЗНДАТ() Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение А количество дней Вы как получаете? Вычитанием дат? Тогда смотрите в сторону функции РАЗНДАТ() Автор - Pelena Дата добавления - 13.12.2016 в 09:10
nilem
Дата: Вторник, 13.12.2016, 09:11 |
Сообщение № 3
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
Sashagor1982 , привет у меня получилось вот так: [vba]Код
Sub ertert() Dim dtB As Date, dtE As Date Dim nK& dtB = #3/12/1992# '12.03.1992 dtE = #10/21/2016# '21.10.2016 nK = DateDiff("yyyy", dtB, dtE, vbUseSystemDayOfWeek, vbUseSystem) dtB = DateAdd("yyyy", nK, dtB ) : [a1] = "years " & nK nK = DateDiff("m", dtB, dtE, vbUseSystemDayOfWeek, vbUseSystem) dtB = DateAdd("m", nK, dtB ) : [a2] = "months " & nK nK = DateDiff("d", dtB, dtE, vbUseSystemDayOfWeek, vbUseSystem) [a3] = "days " & nK 'years 24 'months 7 'Days 9 End Sub
[/vba] [p.s.]наверняка есть какие-то готовые функции[/p.s.] dtB ) - д.б. без пробела
Sashagor1982 , привет у меня получилось вот так: [vba]Код
Sub ertert() Dim dtB As Date, dtE As Date Dim nK& dtB = #3/12/1992# '12.03.1992 dtE = #10/21/2016# '21.10.2016 nK = DateDiff("yyyy", dtB, dtE, vbUseSystemDayOfWeek, vbUseSystem) dtB = DateAdd("yyyy", nK, dtB ) : [a1] = "years " & nK nK = DateDiff("m", dtB, dtE, vbUseSystemDayOfWeek, vbUseSystem) dtB = DateAdd("m", nK, dtB ) : [a2] = "months " & nK nK = DateDiff("d", dtB, dtE, vbUseSystemDayOfWeek, vbUseSystem) [a3] = "days " & nK 'years 24 'months 7 'Days 9 End Sub
[/vba] [p.s.]наверняка есть какие-то готовые функции[/p.s.] dtB ) - д.б. без пробелаnilem
Яндекс.Деньги 4100159601573
Сообщение отредактировал nilem - Вторник, 13.12.2016, 10:34
Ответить
Сообщение Sashagor1982 , привет у меня получилось вот так: [vba]Код
Sub ertert() Dim dtB As Date, dtE As Date Dim nK& dtB = #3/12/1992# '12.03.1992 dtE = #10/21/2016# '21.10.2016 nK = DateDiff("yyyy", dtB, dtE, vbUseSystemDayOfWeek, vbUseSystem) dtB = DateAdd("yyyy", nK, dtB ) : [a1] = "years " & nK nK = DateDiff("m", dtB, dtE, vbUseSystemDayOfWeek, vbUseSystem) dtB = DateAdd("m", nK, dtB ) : [a2] = "months " & nK nK = DateDiff("d", dtB, dtE, vbUseSystemDayOfWeek, vbUseSystem) [a3] = "days " & nK 'years 24 'months 7 'Days 9 End Sub
[/vba] [p.s.]наверняка есть какие-то готовые функции[/p.s.] dtB ) - д.б. без пробелаАвтор - nilem Дата добавления - 13.12.2016 в 09:11
dim34rus
Дата: Вторник, 13.12.2016, 10:10 |
Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация:
10
±
Замечаний:
0% ±
Excel 2007 - 2013
Что такое у Вас dt? Использование Datediff на предмет расчета разницы лет черевато следующим: DateDiff("yyyy", #12/31/2015, #01/01/2016, vbUseSystemDayOfWeek, vbUseSystem) = 1 Как указано выше - функция листа РАЗНДАТ(), она вычисляет именно целое количество прошедших лет, месяцев и т.д.
Что такое у Вас dt? Использование Datediff на предмет расчета разницы лет черевато следующим: DateDiff("yyyy", #12/31/2015, #01/01/2016, vbUseSystemDayOfWeek, vbUseSystem) = 1 Как указано выше - функция листа РАЗНДАТ(), она вычисляет именно целое количество прошедших лет, месяцев и т.д. dim34rus
Извращение - это писать формулы в Word'овских таблицах. ЯД 410014340958327
Ответить
Сообщение Что такое у Вас dt? Использование Datediff на предмет расчета разницы лет черевато следующим: DateDiff("yyyy", #12/31/2015, #01/01/2016, vbUseSystemDayOfWeek, vbUseSystem) = 1 Как указано выше - функция листа РАЗНДАТ(), она вычисляет именно целое количество прошедших лет, месяцев и т.д. Автор - dim34rus Дата добавления - 13.12.2016 в 10:10
nilem
Дата: Вторник, 13.12.2016, 10:28 |
Сообщение № 5
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация:
563
±
Замечаний:
0% ±
Excel 2013, 2016
DateDiff("yyyy", #12/31/2015, #01/01/2016, vbUseSystemDayOfWeek, vbUseSystem) = 1 Точно, в справке так и написано Вряд ли в практических расчетах такие даты возможны. Хотя, конечно, можно предусмотреть в коде.
DateDiff("yyyy", #12/31/2015, #01/01/2016, vbUseSystemDayOfWeek, vbUseSystem) = 1 Точно, в справке так и написано Вряд ли в практических расчетах такие даты возможны. Хотя, конечно, можно предусмотреть в коде. nilem
Яндекс.Деньги 4100159601573
Ответить
Сообщение DateDiff("yyyy", #12/31/2015, #01/01/2016, vbUseSystemDayOfWeek, vbUseSystem) = 1 Точно, в справке так и написано Вряд ли в практических расчетах такие даты возможны. Хотя, конечно, можно предусмотреть в коде. Автор - nilem Дата добавления - 13.12.2016 в 10:28
dim34rus
Дата: Вторник, 13.12.2016, 10:41 |
Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация:
10
±
Замечаний:
0% ±
Excel 2007 - 2013
Вряд ли в практических расчетах такие даты возможны. Хотя, конечно, можно предусмотреть в коде.
Так в Вашем коде если в датах месяца будут наоборот, то правильный результат в годах будет 23, а Ваш код упорно выдаст 24. Тогда смотрите в сторону функции РАЗНДАТ()
С листа работает, а вот из VBA что-то не получается достучаться до этой функции.
Вряд ли в практических расчетах такие даты возможны. Хотя, конечно, можно предусмотреть в коде.
Так в Вашем коде если в датах месяца будут наоборот, то правильный результат в годах будет 23, а Ваш код упорно выдаст 24. Тогда смотрите в сторону функции РАЗНДАТ()
С листа работает, а вот из VBA что-то не получается достучаться до этой функции.dim34rus
Извращение - это писать формулы в Word'овских таблицах. ЯД 410014340958327
Сообщение отредактировал dim34rus - Вторник, 13.12.2016, 12:35
Ответить
Сообщение Вряд ли в практических расчетах такие даты возможны. Хотя, конечно, можно предусмотреть в коде.
Так в Вашем коде если в датах месяца будут наоборот, то правильный результат в годах будет 23, а Ваш код упорно выдаст 24. Тогда смотрите в сторону функции РАЗНДАТ()
С листа работает, а вот из VBA что-то не получается достучаться до этой функции.Автор - dim34rus Дата добавления - 13.12.2016 в 10:41
Sashagor1982
Дата: Вторник, 13.12.2016, 16:58 |
Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 288
Репутация:
-6
±
Замечаний:
0% ±
Excel 2007
Еще вопрос, как к определенной дате прибавить год, минус один день и.е. 22.12.2016 получить 22.11.2017 [moder]Нарушение п.5q Правил форума[/moder]
Еще вопрос, как к определенной дате прибавить год, минус один день и.е. 22.12.2016 получить 22.11.2017 [moder]Нарушение п.5q Правил форума[/moder] Sashagor1982
Сообщение отредактировал _Boroda_ - Вторник, 13.12.2016, 17:13
Ответить
Сообщение Еще вопрос, как к определенной дате прибавить год, минус один день и.е. 22.12.2016 получить 22.11.2017 [moder]Нарушение п.5q Правил форума[/moder] Автор - Sashagor1982 Дата добавления - 13.12.2016 в 16:58
Pelena
Дата: Вторник, 13.12.2016, 17:12 |
Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 19603
Репутация:
4660
±
Замечаний:
±
Excel 365 & Mac Excel
Этот вопрос к теме "выделение из количества дней годы, месяцы, дни" не относится. [p.s.]Так и не поняла, первичная задача решена?[/p.s.]
Этот вопрос к теме "выделение из количества дней годы, месяцы, дни" не относится. [p.s.]Так и не поняла, первичная задача решена?[/p.s.] Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Этот вопрос к теме "выделение из количества дней годы, месяцы, дни" не относится. [p.s.]Так и не поняла, первичная задача решена?[/p.s.] Автор - Pelena Дата добавления - 13.12.2016 в 17:12
Sashagor1982
Дата: Вторник, 13.12.2016, 18:21 |
Сообщение № 9
Группа: Проверенные
Ранг: Обитатель
Сообщений: 288
Репутация:
-6
±
Замечаний:
0% ±
Excel 2007
Да, задача решена.
Ответить
Сообщение Да, задача решена. Автор - Sashagor1982 Дата добавления - 13.12.2016 в 18:21
Sashagor1982
Дата: Суббота, 04.02.2017, 23:26 |
Сообщение № 10
Группа: Проверенные
Ранг: Обитатель
Сообщений: 288
Репутация:
-6
±
Замечаний:
0% ±
Excel 2007
В продолжение темы подскажите как доработать код: [vba]Код
Sub ertert() Dim dtB As Date, dtE As Date Dim nK& dtB = #3/12/1992# '12.03.1992 dtE = #10/21/2016# '21.10.2016 nK = DateDiff("yyyy", dtB, dtE, vbUseSystemDayOfWeek, vbUseSystem) dtB = DateAdd("yyyy", nK, dtB ) : [a1] = "years " & nK nK = DateDiff("m", dtB, dtE, vbUseSystemDayOfWeek, vbUseSystem) dtB = DateAdd("m", nK, dtB ) : [a2] = "months " & nK nK = DateDiff("d", dtB, dtE, vbUseSystemDayOfWeek, vbUseSystem) [a3] = "days " & nK 'years 24 'months 7 'Days 9 End Sub
[/vba] что бы работать с ячейками A1 и A2, если даты в них сохранены в виде текста "12.03.1992" и т.д. Заранее спасибо.
В продолжение темы подскажите как доработать код: [vba]Код
Sub ertert() Dim dtB As Date, dtE As Date Dim nK& dtB = #3/12/1992# '12.03.1992 dtE = #10/21/2016# '21.10.2016 nK = DateDiff("yyyy", dtB, dtE, vbUseSystemDayOfWeek, vbUseSystem) dtB = DateAdd("yyyy", nK, dtB ) : [a1] = "years " & nK nK = DateDiff("m", dtB, dtE, vbUseSystemDayOfWeek, vbUseSystem) dtB = DateAdd("m", nK, dtB ) : [a2] = "months " & nK nK = DateDiff("d", dtB, dtE, vbUseSystemDayOfWeek, vbUseSystem) [a3] = "days " & nK 'years 24 'months 7 'Days 9 End Sub
[/vba] что бы работать с ячейками A1 и A2, если даты в них сохранены в виде текста "12.03.1992" и т.д. Заранее спасибо. Sashagor1982
Ответить
Сообщение В продолжение темы подскажите как доработать код: [vba]Код
Sub ertert() Dim dtB As Date, dtE As Date Dim nK& dtB = #3/12/1992# '12.03.1992 dtE = #10/21/2016# '21.10.2016 nK = DateDiff("yyyy", dtB, dtE, vbUseSystemDayOfWeek, vbUseSystem) dtB = DateAdd("yyyy", nK, dtB ) : [a1] = "years " & nK nK = DateDiff("m", dtB, dtE, vbUseSystemDayOfWeek, vbUseSystem) dtB = DateAdd("m", nK, dtB ) : [a2] = "months " & nK nK = DateDiff("d", dtB, dtE, vbUseSystemDayOfWeek, vbUseSystem) [a3] = "days " & nK 'years 24 'months 7 'Days 9 End Sub
[/vba] что бы работать с ячейками A1 и A2, если даты в них сохранены в виде текста "12.03.1992" и т.д. Заранее спасибо. Автор - Sashagor1982 Дата добавления - 04.02.2017 в 23:26