Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.11.2009, 10:34   #1
Talisman
Пользователь
 
Регистрация: 29.12.2007
Сообщений: 31
По умолчанию Как прибавить 20 дней к дате

В новой ячейке должно прибавляться 20 дней к той дате которая находится в другой ячейки, подскажите формулу
Talisman вне форума Ответить с цитированием
Старый 21.11.2009, 10:40   #2
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Дата находится в ячейке А1, тогда
=ДАТА(ГОД(A1);МЕСЯЦ(A1);ДЕНЬ(A1)+20 )
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 21.11.2009, 11:11   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

VictorM, прикалываемся?
На исходных, которые описал VictorM, в любую ячейку пишем =A1+20. Если в итоге увидели число, задайте новой ячейке формат дата и будет вам...
Вообще, даты ексель хранит, как рациональное или действительное число. Число Пи, например, - это действительное число.
Целая часть - это количество дней от 31.12.1899, напишите в ячейку 1, поставьте формат дата "ДД.ММ.ГГГГ" увидите 01.01.1900.
Дробная часть числа овечает за часы, минуты, секунды.
поставьте в ячеку =ПИ(), задайте формат "ДД.ММ.ГГГГ чч:мм:сс", увидите: 03.01.1900 3:23:54. Колонка только должна быть достаточной ширины, чтобы все это увидеть.
Поставьте в третью ячейку =121+15/24+ 3/1440. ПоставЬте формат время "ДД.ММ.ГГГГ чч:мм", увидите 30.04.1900 15:03.
если в соседней написать =предыдущая + 4/24 + 2/1440 (где предыдущая - это адрес ячейки с 30.04.1900 15:03), то получите 30.04.1900 19:05 (прибавили 4 часа, 2 минуты)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете

Последний раз редактировалось IgorGO; 21.11.2009 в 11:33.
IgorGO вне форума Ответить с цитированием
Старый 21.11.2009, 11:29   #4
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

IgorGO, спасибо за исчерпывающую информацию!
С датами и временем вечная проблема))
А приведеная выше формула у меня работает в коде VBA и используется для прибавления месяца.
ActiveCell.FormulaLocal = "=ДАТА(ГОД(A1);МЕСЯЦ(A1)+C1 ;ДЕНЬ(A1))"
Кстати, может подскажете, правильно ли это?
Извините, если ввел в заблуждение)
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499

Последний раз редактировалось VictorM; 21.11.2009 в 11:38.
VictorM вне форума Ответить с цитированием
Старый 21.11.2009, 12:34   #5
Talisman
Пользователь
 
Регистрация: 29.12.2007
Сообщений: 31
По умолчанию

Спасиб работает, апреобразования числа в дату считаю ненадежным, просто потому что не понимаю что это за число
Talisman вне форума Ответить с цитированием
Старый 23.11.2009, 08:21   #6
Юнлинг
Форумчанин
 
Регистрация: 17.10.2008
Сообщений: 239
По умолчанию

Цитата:
Сообщение от VictorM Посмотреть сообщение
IgorGO, спасибо за исчерпывающую информацию!
С датами и временем вечная проблема))
А приведеная выше формула у меня работает в коде VBA и используется для прибавления месяца.
ActiveCell.FormulaLocal = "=ДАТА(ГОД(A1);МЕСЯЦ(A1)+C1 ;ДЕНЬ(A1))"
Кстати, может подскажете, правильно ли это?
Извините, если ввел в заблуждение)
Уважаемый VictorM!
Я в свое время очень мучался с такой же проблемой. Это было связанно с использованием особого формата даты и времени в контроллерах Siemens. В них дата и время раздельные. И если с временем особых проблем не было измеряется в милисекундах, то дата - в них исчесляется от рождества Христова.
Эта путаница продолжалось до тех пока, я не перешел в VBA в формат представления даты Еxcel. ЧТо же касается вашего примера я записал бы так.
Код:
ActiveCell.FormulaLocal = "=ДАТА(ГОД(A1)+ЦЕЛОЕ((МЕСЯЦ(A1)+C1)/12);МЕСЯЦ(A1)+C1-ЦЕЛОЕ((МЕСЯЦ(A1)+C1)/12)*12 ;ДЕНЬ(A1))"
Юнлинг вне форума Ответить с цитированием
Старый 21.02.2010, 23:26   #7
rick1177
Пользователь
 
Регистрация: 15.02.2010
Сообщений: 59
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
VictorM, прикалываемся?
На исходных, которые описал VictorM, в любую ячейку пишем =A1+20. Если в итоге увидели число, задайте новой ячейке формат дата и будет вам...
Вообще, даты ексель хранит, как рациональное или действительное число. Число Пи, например, - это действительное число.
Целая часть - это количество дней от 31.12.1899, напишите в ячейку 1, поставьте формат дата "ДД.ММ.ГГГГ" увидите 01.01.1900.
Дробная часть числа овечает за часы, минуты, секунды.
поставьте в ячеку =ПИ(), задайте формат "ДД.ММ.ГГГГ чч:мм:сс", увидите: 03.01.1900 3:23:54. Колонка только должна быть достаточной ширины, чтобы все это увидеть.
Поставьте в третью ячейку =121+15/24+ 3/1440. ПоставЬте формат время "ДД.ММ.ГГГГ чч:мм", увидите 30.04.1900 15:03.
если в соседней написать =предыдущая + 4/24 + 2/1440 (где предыдущая - это адрес ячейки с 30.04.1900 15:03), то получите 30.04.1900 19:05 (прибавили 4 часа, 2 минуты)
А как программно сделать такое..Пользователь в Excel ставит дату (в одной ячейке) и число дней в другой. Мне требуется определить, какое число будет через это количество дней (причём важно знать, что может быть весокосный или нет год) и какой день недели будет по календарю?
rick1177 вне форума Ответить с цитированием
Старый 21.02.2010, 23:31   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Sub test()
    ДатаИзЯчейки = CDate([a1])
    КолвоДней = 20
    НоваяДата = DateAdd("d", КолвоДней, ДатаИзЯчейки)
    ДеньНедели = Weekday(НоваяДата, vbMonday)
End Sub
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как к числу прибавить проценты 90 + 10% и получить 100. а не 99. il_il Microsoft Office Excel 30 21.07.2012 02:42
Как прибавить год к текущей дате Bigtyoma Общие вопросы Delphi 18 06.05.2011 21:22
Как прибавить привлекательности сделанной программе Arassir Свободное общение 5 09.11.2008 22:20
Помогите прибавить 3% Miyazaki Microsoft Office Excel 6 01.09.2008 13:29
Как сделать отсчет дней от заданной даты в Excel? ru16 Microsoft Office Excel 1 22.11.2007 11:13