
Пре неколико недеља читалац ми је послао занимљиво питање о праћењу „заустављеног времена“ за флоту камиона. Камиони се прате путем ГПС-а, тако да се за сваки камион бележи локација сваког сата у дану. Подаци изгледају отприлике овако:
Изазов: која формула у колони Н ће тачно израчунати укупан број заустављених сати?
Ово сам мало поједноставио заменом стварних ГПС координата локацијама означеним као АЕ, али концепт остаје исти.
Слагалица
На колико сати је заустављен сваки камион?
Или, у Екцел-говору:
Која ће формула израчунати укупни број сати заустављања сваког камиона?
На пример, знамо да је Труцк1 заустављен на 1 сат, јер је његова локација забележена као „А“ и у 16 и у 17 сати.
Претпоставке
- Постоји 5 локација са овим именима: А, Б, Ц, Д, Е
- Камион на истом месту два сата узастопно = 1 сат заустављен
Имате формулу која ће то учинити?
Преузмите радну свеску и поделите своју формулу у коментарима испод. Као и код толико ствари у Екцелу, и на овај начин постоји много начина да се реши!
Одговор (кликните за проширење)У овом случају, свестрани СУМПРОДУЦТ је елегантан начин за решавање овог проблема:
=SUMPRODUCT(--(C6:K6=D6:L6))
Опсези бележака Ц6: К6 се компензују за једну колону. У основи упоређујемо „претходне позиције“ са „следећим позицијама“ и рачунамо случајеве када је претходна позиција иста као следећа позиција.
За податке у реду 6, операција поређења ствара низ ТРУЕ ФАЛСЕ вредности:
(FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,FALSE,TRUE)
Двоструки негатив тада присиљава вредности ТРУЕ ФАЛСЕ на јединице и нуле, а СУМПРОДУЦТ једноставно збир низа, који је 1:
=SUMPRODUCT((0,0,0,0,0,0,0,0,1))