2017-10-17 3 views
2

직원 시간 기록표에 대한 날짜 및 시간 목록이 있습니다. 시간은 F 열에서 시작하고 G 열에서 끝납니다. 가끔 프로젝트가 중복되는 경우가 있습니다. 직원은 중복 된 프로젝트에 대해 비용을 지불하지 않지만 각 프로젝트를 개별적으로 추적해야합니다. E, F, G 열을보고 겹치는 프로젝트를 찾고 단일 시간 항목을 반환 할 수 있기를 바랍니다. 아래 예제에서 1 행은 다른 행과 겹치지 않지만 2 행에서 6 행에는 일련의 중복 된 항목이 있음을 유의하십시오. 반드시 모든 것이 겹치지는 않지만 "체인"과 같습니다. 이 문제를 해결하기 위해 공식이 아닌 스크립트를 작성하고 싶습니다.많은 겹치는 기간의 총 지속 시간 찾기

+---+------------+------------+----------+ 
| |  E  |  F | G  | 
+---+------------+------------+----------+ 
| 1 | 10/11/2017 | 12:30 PM | 1:00 PM | 
| 2 | 10/11/2017 | 1:00 PM | 3:00 PM | 
| 3 | 10/11/2017 | 2:15 PM | 6:45 PM | 
| 4 | 10/11/2017 | 2:30 PM | 3:00 PM | 
| 5 | 10/11/2017 | 2:15 PM | 6:45 PM | 
| 6 | 10/11/2017 | 3:00 PM | 6:45 PM | 
+---+------------+------------+----------+ 

이 열을 평가하고 일련의 겹침 부분의 마지막 줄에있는 각 "체인"의 총 지속 시간을 반환하고 싶습니다. 아래 예에서 우리는 H 열에 넣을 것입니다. 2 행에서 시작하여 6 행 (오후 1 시부 터 6시 45 분)까지 끝나는 계열에 대해 5.75 시간을 찾습니다.

+---+------------+------------+----------+------------+ 
| |  E  |  F | G  |  H  | 
+---+------------+------------+----------+------------+ 
| 1 | 10/11/2017 | 12:30 PM | 1:00 PM | 0.5  | 
| 2 | 10/11/2017 | 1:00 PM | 3:00 PM | overlap | 
| 3 | 10/11/2017 | 2:15 PM | 6:45 PM | overlap | 
| 4 | 10/11/2017 | 2:30 PM | 3:00 PM | overlap | 
| 5 | 10/11/2017 | 2:15 PM | 6:45 PM | overlap | 
| 6 | 10/11/2017 | 3:00 PM | 6:45 PM | 5.75  | 
+---+------------+------------+----------+------------+ 

나는 검색어를 쓰려고했지만 처음부터 다시 찾는다. 누구든지 제안이 있다면, 나는 그것을 알고 싶다! 미리 감사드립니다.

enter image description here

1 단계 반환 "확인", "중복"또는

두 줄 : 닐

답변

1

내 솔루션

는이 문제를 해결하려면

나는 2 여분의 열을 필요로 한쪽 끝이 다른 쪽 끝의 내부에있을 때 겹침 :

=if(QUERY(ArrayFormula({value(E1:E+F1:F),VALUE(E1:E+G1:G)}), "select count(Col1) where Col1 < "&value(G1+E1-1/10^4)&" and Col2 > "&value(F1+E1+1/10^4)&" label Count(Col1) ''",0)>1,"overlap","ok")

드래그하여 아래 공식 : enter image description here

나는 이것을 확인하는 query 공식을 만들었다. 식

ok 
overlap 
overlap 
overlap 
overlap 
ok 
ok 
overlap 
overlap 
overlap 
overlap 
ok 

:

  • value

    숫자를 비교하기 위해 사용되는 결과는 열이다. 각각의 pare : date + time을 비교해야합니다.
  • -1/10^4+1/10^4은 시간의 체인

    이 부분은 까다 롭습니다 받기 query

2 단계에 있기 때문에 부정확 사용됩니다. 내 솔루션은 예제 에서처럼 데이터가 정렬 된 경우에만 작동합니다.

셀에 I1을 입력하십시오. 화학식 다운

=if(or(and(H1=H2,H2="overlap"),and(H2="ok",H1="overlap")),I1,I1+1)

드래그 I2 셀에 수식을 입력한다.결과는 다음과 같습니다.

1 
2 
2 
2 
2 
2 
3 
4 
4 
4 
4 
4 

단계 3. J4 페이스트에서

재생 시간

를 확인하고 공식을 복사

=if(H1="ok", round(QUERY(ArrayFormula({value(E:E+F:F),VALUE(E:E+G:G),I:I}), "select max(Col2) - min(Col1) where Col3 = "&I1 &" label max(Col2) - min(Col1) ''")*24,2),"")

쿼리는 2 단계에서 발견 단체의 최대 지속 시간을 가져옵니다.

  • roundquery
+0

절대적으로 놀라운로 인해 부정확 사용된다! 고마워 맥스. 솔루션이 작동했을뿐만 아니라 포함 된 설명에 감사 드리며 작동 방식을 이해할 수 있습니다. 나는 아주 감사하고있다! – Neill