Excel: я хочу назначить перерывы в часах в зависимости от того, когда они произошли - PullRequest
0 голосов
/ 30 января 2019

У меня есть таблица с записями об отключениях в Excel с указанием времени начала и окончания.У меня есть еще одна электронная таблица, в которой показано, сколько клиентов обычно используют систему в течение определенного часа определенного дня недели, а также расходы на одного клиента, которые направляются на обслуживание клиентов, а не обрабатываются самообслуживанием.Я хочу использовать сложную формулу, предпочтительно (а не VBA, если это возможно), которая может посмотреть на время простоя, определить, сколько минут в каждом часе являются «минутами простоя», сколько клиентов будет затронуто за эти минутыв этот час и верните окончательную стоимость.

Например:

Таблица почасовых данных о клиентах

Hour  Customers
0     50
1     150
2     500

Outage record
Outage start:  0:35 (h24:mm)
Outage end:  2:42  (h24:mm)

Правильный ответ на форуме (-ах) должен дать итоговую общую стоимость ниже:

  • час 0, 25 минут простоя при скорости воздействия на клиента 50 / час,
  • час 1, 60 минут простоя при скорости воздействия на клиента 150 / час,
  • Час 2, 42 минуты простоя при скорости воздействия на клиента 500 / час,

Сумма (((25/60) * 50) + ((60/60) * 150) + ((42/60) * 500)) = 520,83 воздействия на клиента.

Пока что моя лучшая идея - использовать целый набор формул:

  • по одному на каждый часчтобы вычислить, сколько минут простоя было в этот конкретный час дня
  • еще раз для каждого часаминуты простоя в этом часе по ставке контакта с клиентом за этот час
  • , а затем простая формула для суммирования всех сумм (почасовая минута * почасовая связь с клиентом).

Я достаточно хорошо владею построением формул в Excel, но я, конечно, не знаком со всеми вариантами.У меня недавно был хороший успех с такими вещами, как sumif / sumifs, и я построил больше вложенных формул, чем могу сосчитать.

Как я могу выполнить этот расчет «взвешенных затрат на воздействие» с любым разумным уровнем эффективности

1 Ответ

0 голосов
/ 31 января 2019

убедитесь, что время истинное, без указания даты и используйте:

=SUMPRODUCT(LOOKUP(HOUR(ROW(INDEX(XFD:XFD,(B7*24*60)):INDEX(XFD:XFD,B8*24*60-1))/(24*60)),A2:A4,B2:B4)/60)

enter image description here


Если время включает датузатем используйте:

=SUMPRODUCT(LOOKUP(HOUR(ROW(INDEX(XFD:XFD,MOD(B7,1)*24*60):INDEX(XFD:XFD,(B8-TIME(0,1,0)-B7+MOD(B7,1))*24*60))/(24*60)),A2:A4,B2:B4)/60)

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...