Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Расчёт рабочих часов, С учетом обеденного перерыва
 
Всем привет! Народ, подскажите где можно взять алгоритм расчёта рабочего времени для Google-script? Ну или на JS? Или хотя бы просто между 2-мя ячейками сделать необходимые вычисления, и в 3-ю ячейку результат записать?

Нужно между двумя датами подсчитать количество рабочих часов.
Рабочий день с 9:00 до 18:00 Обед с 13:00 до 14:00 с учетом того что СБ и ВСКР - выходные. Помогите пожалуйста.

Есть функция, которая к дате добавляет несколько рабочих часов, и возвращает новую дату с временем, вот она:
Код
function getDeadlineDate(date, work) {
  
  var datework  = 0;
  var hour      = date.getHours();
  var timehour  = hour;
  var week   = getWeekDay(date);
  
  for(;;) 
  {
    if (work >= 8) 
    { 
      work -= 8;
      datework += 1;
    }
    else
    {      
      break;
    }
  }
  
  if (week == 6)
  {
    timehour = 9;
    datework += 2;
  }
  else if (week == 7) 
  {
    datework += 1;
    timehour = 9;
  }
  
  if((hour > 18) || (hour < 9)) 
  {
    timehour = 9 + work
  }
  else
  {    
    timehour += work;
  }
  
  
  if (hour < 13 && timehour >= 14 || timehour == 13)
  {
    timehour += 1;
  }
  
  if (week < 6 && ((week + datework) >= 7 || (week + datework == 6) ))
  {
    datework += 2;  
  }
  
    if (timehour >= 18)
  {
    timehour = timehour - 18 + 9;
    datework += 1;
  }
  
  var datework  = new Date(date.valueOf() + timehour*60*60*1000 + datework*24*60*60*1000 - hour*60*60*1000);
  return datework;
 
}

А вот как написать функцию, чтоб именно она вычисляла разницу (в рабочих часах) между 2-мя датами - не знаю пока, уже голову сломал.

Например

Первая дата: 30.01.2017 16:43
Вторая дата: 31.01.2017 11:45

Просто если разницу в часах считать, то это 19 часов и 3 минуты разница, но именно рабочих часов в них 4 часа 02 минуты.
Функция должна вернуть: 4 часа 02 минуты, ну или 4,03 часа

Помогите пожалуйста, кто может.
Изменено: fenix_63 - 02.02.2017 15:21:43
Верь в себя, и ты чемпион!
Задать ячейке именованый диапазон по условию
 
Всем привет. Народ, вот такой вопрос: кто-нибудь знает как программно макросом, или формулой определить тип данных ячейки? Ну т.е. определить не строка, число дата, и т.д. в ячейке, а присвоен ли ей именованный диапазон, или нет? Мне нужно макросом проверить. Если ячейка из столбца "P" листа "ЧОУ" (например) > 1 то соседней ячейке из столбца "О" присваиваем именованный диапазон, чтобы пользователь мог выбрать нужное значение. А если ячейка из столбца "Р" листа "ЧОУ"=0 или равна 1, то соседней ячейке именованный диапазон не присваиваем, а оставляем её просто пустой.

В конечном итоге при формировании суммы по расходам (лист "Отчёт по расходам") надо сделать так, чтобы пользователь выбирал статью расходов только тогда, когда подрядчик встречается в разных статьях затрат, например для "ЧОУ" - это подрядчик "РЕСУРС-91" - встречается в Связь и Аренда, соответственно на листе ЧОУ именованный диапазон надо сделать только для подрядчика "РЕСУРС-91", а остальные ячейки оставить пустыми.

Может кто знает, какая функция VBA есть для этого? Или как правильно формулу сотавить? Я сейчас формулу написал: =ЕСЛИ(P9<=1;AI9;СтатьиИнаправления), но для ячеек, где соседний столбец Р имеет значение 2 и больше Excel выдаёт ошибку #ЗНАЧ!  Подскажите, что тут можно сделать.

Именованный диспазон формируется динамически - по формуле

Документ прикрепил.
Верь в себя, и ты чемпион!
Список из несмежных диапазонов
 
Всем привет. Народ, у меня вот какая проблема: Есть таблица. В ней в некоторых ячейках надо сделать выпадающий список, но только этот список должен формироваться динамически. Сейчас объясню.
Есть таблица "Затраты", вкладка "ЧОУ". На этой вкладке есть столбец "О" - в нём надо в некоторых ячейках сделать выпадающий список.

Как он формируется, и в каких именно ячейках его надо сделать? Если например компания "ОАО РЕСУРС-91" встречается во вкладке "Подрядчики" в диапазоне В3:W17 больше 1 раза, то нужно в такой ячейке (для данного случая это ячейка О9 и О23) сделать выпадающий список, в котором бы были значения из столбца "Статьи и направления", а именно значения "Связь" и "Аренда", а остальные ячейки столбца "О" оставались бы без изменений. Сам по себе статичный список сделать не проблема. Не могу список привязать именно к нужной ячейке, и чтобы список был именно с нужными значениями. Подскажите пожалуйста, куда копать?

Документ прикрепил
Верь в себя, и ты чемпион!
Извлечь уникальные значения
 
Народ, помогите пожалуйста. Есть столбец с числами. Мне нужно из этого столбца извлечь только уникальные числа, без повторов.

Столбец А:
1
2
4
5
7
5
2
5
6
7
Надо в соседнем столбце получить:
1
2
4
5
7
6
Нашёл где то в инете формулу: Извлечение уникальных значений
=ИНДЕКС($B$2:$B$16;НАИБОЛЬШИЙ(ЕСЛИ(ПОИСКПОЗ($B$2:$B$16;$B$2:$B$16;0)=СТРОКА($A$1:$A$15);СТРОКА($A$1:$A$15));СТРОКА(A1)))
Но применить её к своему примеру пока не получается.

Помогите чайнику, знающие люди.
Верь в себя, и ты чемпион!
Страницы: 1
Наверх