Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Округление времени до 5 - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Округление времени до 5
7773757 Дата: Понедельник, 25.09.2023, 10:27 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте, подскажите пожалуйста решение,
что нужно дописать в скрипте, чтобы он записывая дату и писал время,
округляя его до 5 минут, например 10:04 это 10:05, 10:32,это 10:35, а 10:57 это 11:00

[vba]
Код
function onEdit(e){
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getActiveRange();
var row = range.getRow(); // Адрес строки активной ячейки
var col = range.getColumn();
var name = sheet.getName();
if (name == "Основная" && col == 10){
sheet.getRange(row, 3).setValues([[new Date()]]); //Заполняем текущую дату
}
};
[/vba]


Сообщение отредактировал 7773757 - Понедельник, 25.09.2023, 12:07
 
Ответить
СообщениеЗдравствуйте, подскажите пожалуйста решение,
что нужно дописать в скрипте, чтобы он записывая дату и писал время,
округляя его до 5 минут, например 10:04 это 10:05, 10:32,это 10:35, а 10:57 это 11:00

[vba]
Код
function onEdit(e){
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getActiveRange();
var row = range.getRow(); // Адрес строки активной ячейки
var col = range.getColumn();
var name = sheet.getName();
if (name == "Основная" && col == 10){
sheet.getRange(row, 3).setValues([[new Date()]]); //Заполняем текущую дату
}
};
[/vba]

Автор - 7773757
Дата добавления - 25.09.2023 в 10:27
Gustav Дата: Вторник, 26.09.2023, 00:32 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2808
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Т.е. надо округлить минуты вверх до ближайших 5 минут. Для этого придётся немного препарировать получаемое значение даты. Сначала выделим из даты значение минут, затем посчитаем новое округленное значение и наконец запишем новое значение минут в общее значение даты, не забыв обнулить секунды и миллисекунды. Если получится значение 60 минут, то оно нас не испугает, так как объект Date корректно обрабатывает подобные ситуациию, так что обнулять минуты и добавлять целый час самостоятельно не придётся.

Вот как надо преобразовать в скрипте фрагмент с условием:
[vba]
Код
if (name == "Основная" && col == 10) {
    var date = new Date();
    var newMinutes = Math.ceil(date.getMinutes() / 5) * 5;
    date.setMinutes(newMinutes, 0, 0);
    sheet.getRange(row, 3).setValue(date); //Заполняем текущую дату c минутами, округленными до 5 вверх
}
[/vba]


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеТ.е. надо округлить минуты вверх до ближайших 5 минут. Для этого придётся немного препарировать получаемое значение даты. Сначала выделим из даты значение минут, затем посчитаем новое округленное значение и наконец запишем новое значение минут в общее значение даты, не забыв обнулить секунды и миллисекунды. Если получится значение 60 минут, то оно нас не испугает, так как объект Date корректно обрабатывает подобные ситуациию, так что обнулять минуты и добавлять целый час самостоятельно не придётся.

Вот как надо преобразовать в скрипте фрагмент с условием:
[vba]
Код
if (name == "Основная" && col == 10) {
    var date = new Date();
    var newMinutes = Math.ceil(date.getMinutes() / 5) * 5;
    date.setMinutes(newMinutes, 0, 0);
    sheet.getRange(row, 3).setValue(date); //Заполняем текущую дату c минутами, округленными до 5 вверх
}
[/vba]

Автор - Gustav
Дата добавления - 26.09.2023 в 00:32
7773757 Дата: Вторник, 26.09.2023, 08:51 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Gustav, Благодарю вас!
 
Ответить
СообщениеGustav, Благодарю вас!

Автор - 7773757
Дата добавления - 26.09.2023 в 08:51
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!