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

Страницы: 1
Расчёт рабочих часов, С учетом обеденного перерыва
 
Ну вообще я для Google-таблиц это делаю, но в обычных Excel-таблицах если это можно сделать формулами, или макросами, подскажите как?
Верь в себя, и ты чемпион!
Расчёт рабочих часов, С учетом обеденного перерыва
 
Всем привет! Народ, подскажите где можно взять алгоритм расчёта рабочего времени для 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
Верь в себя, и ты чемпион!
Задать ячейке именованый диапазон по условию
 
Я это из 3 пункта так понял
Верь в себя, и ты чемпион!
Задать ячейке именованый диапазон по условию
 
Так пробовали уже. В 5 посте.
Верь в себя, и ты чемпион!
Задать ячейке именованый диапазон по условию
 
Сделал как вы пишете. Создал копию листа ЧОУ, переименовал его в ЕЦПК. Теперь у меня на листах ЧОУ, СИС, ЕЦПК в ячейке О7 везде написано ЕЦПК. Ну да ладно, дальше мне не понятно зачем надо вставлять в диапазон А:N только что созданного листа данные из листа подрядчики? Если организация есть в Подрядчиках и есть на листе, например СИС, то в именованный диапазон включаем эту компанию, если компания есть на листе Подрядчики, но её нет на листе СИС, то просто в листе СИС пустое поле, и всё.

В вашем примере работает лист СИС только для "ПРОАЙТИ ООО", а например для ИП Шлегель (на листе Подрядчики - Сопровождение) вообще никакого списка то не формируется. Кстати, как только я создаю копию листа ЧОУ, лист СИС перестаёт работать.

Не понятно зачем данные нужно копировать из листа Подрядчики на вновь создаваемый лист. Нужно только около каждой таблицы (ЧОУ, ЕЦПК, СИС) в колонке О указать статью затрат, и всё, причём выпадающий список нужен только если компания-подрядчик встречается сразу в нескольких статьях затрат. А если она встречается только в одной статье - надо чтобы пользователь не выбирал из списка это одно значение, а чтобы оно уже сразу было подставлено, вот и всё.

Я поэтому и спрашивал, как в формулу подставить именованный диапазон по условию.
Формула
Код
=ЕСЛИ (P9<=1;AI9;  СтатьиИнаправления     )
Выдаёт ошибку #ЗНАЧ  если в колонке P значение > 1 т.е. когда нужно подставить список в эту ячейку
Верь в себя, и ты чемпион!
Задать ячейке именованый диапазон по условию
 
ээм не совсем понял... вы написали в файле что надо создать дубликат листа. Я сделал дубликат листа ЧОУ, и в 1-ю строку скопировал заголовок листа "Отчёт по расходам" - получилась вообще ерунда какая то, не понял.
Изменено: fenix_63 - 15.05.2016 22:55:15
Верь в себя, и ты чемпион!
Задать ячейке именованый диапазон по условию
 
gling работает, спасибо!  А можно сделать что то вроде =ЕСЛИ(P12<=1;AI12;Мой_диапазон) ?  Просто там где столбец P=1 хотелось бы чтобы был не список из одного значения, которое надо выбирать, а сразу же было бы выбранное значение.
Верь в себя, и ты чемпион!
Задать ячейке именованый диапазон по условию
 
Всем привет. Народ, вот такой вопрос: кто-нибудь знает как программно макросом, или формулой определить тип данных ячейки? Ну т.е. определить не строка, число дата, и т.д. в ячейке, а присвоен ли ей именованный диапазон, или нет? Мне нужно макросом проверить. Если ячейка из столбца "P" листа "ЧОУ" (например) > 1 то соседней ячейке из столбца "О" присваиваем именованный диапазон, чтобы пользователь мог выбрать нужное значение. А если ячейка из столбца "Р" листа "ЧОУ"=0 или равна 1, то соседней ячейке именованный диапазон не присваиваем, а оставляем её просто пустой.

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

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

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

Документ прикрепил.
Верь в себя, и ты чемпион!
Список из несмежных диапазонов
 
gling спасибо, вроде бы работает, но вопрос, почему ищем в столбце В листа подрядчики? Названия фирм в столбце R листа ЧОУ могут быть разбросаны везде в диапазоне B3:W17, а не только в столбце В. И ещё, скажите, для чего используется в формуле именованого диапазона +ЧОУ! P9-1 ?  Например для ОАО РЕСУРС-91 формула правильно сработала - в списке только 2 записи - СВЯЗЬ и АРЕНДА, а вот для ООО "ОфсетПринт" - список только из одного значения - Удостоверения и печати.

Я формулу немного изменил, чтобы было применимо только к листу ЧОУ, и чтобы названия фирм искались не только в столбце В листа подрядчики, но и в других столбцах, остальные листы по аналогии буду делать, на вот такую:   =ИНДЕКС(Подрядчики!$A$1:$A$17;ПОИСКПОЗ(ЧОУ!R9;Подрядчики!$B$3:$W$17; )):ИНДЕКС(Подрядчики!$A$1:$A$81;ПОИСКПОЗ(ЧОУ!R9;Подрядчики!$B$3:$W$17;)+ЧОУ!P9-1)

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

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

Документ прикрепил
Верь в себя, и ты чемпион!
Извлечь уникальные значения
 
Сергей, да в 2007 экселе работает, спасибо, буду сейчас разбираться как она работает. На другой лист пробовал перенести - не получилось, ну да и ладно. Сразу бросилось в глаза $D$26:D26 это ж пустая ячейка. В общем буду разбираться, спасибо.

sv2013, протестировал - обе кнопки дают один и тот же результат. Макрос сам пока ещё не смотрел. Спасибо.
Верь в себя, и ты чемпион!
Извлечь уникальные значения
 
Пишет #ИМЯ? в ячейке.

Транспонировать из столбца в строку - ну просто по заданию нужно.
Верь в себя, и ты чемпион!
Извлечь уникальные значения
 
Извиняюсь, вот таблица с моими наработками: Таблица

Это надо сделать строго формулами, иначе б я сюда не писал.
Изменено: fenix_63 - 18.02.2016 09:28:55
Верь в себя, и ты чемпион!
Извлечь уникальные значения
 
Народ, помогите пожалуйста. Есть столбец с числами. Мне нужно из этого столбца извлечь только уникальные числа, без повторов.

Столбец А:
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
Наверх