엑셀 프로그램 > 엑셀간트 사용법 > [엑셀간트 사용법 16] 작업 의존관계 설정

[엑셀간트 사용법 16] 작업 의존관계 설정

엑셀간트 5.0 버전부터 날짜 필드에 수식을 입력할 수 있습니다. 이번 글에서는 수식 입력 기능을 사용하여 작업 의존관계를 설정하는 방법을 알아 보겠습니다.

작업 의존관계 설정

날짜에 기간을 더해서 작업 의존관계 설정

아래 그림의 '프로그램B'의 시작일 필드 [P41] 셀에 다음 수식을 입력하면 작업 의존 관계를 설정할 수 있습니다.

=Q40+1 => 2022-07-30 ('프로그램A'의 완료일에 1을 더해서 완료일 다음날을 '프로그램B'의 시작일로 설정)

날짜에 기간을 더해서 작업 의존관계 설정

 

수식이 입력되면 2022-07-29의 다음 날인 2022-07-30(토요일)이 시작일로 표시됩니다.  단순히 기간을 더하기만 하므로 휴무일, 평일 구분하지 않고 시작일이 구해지는 문제가 있습니다.

날짜에 기간을 더해서 작업 의존관계 설정

 

엑셀간트 GetWorkday 함수로 작업 의존관계 설정

엑셀간트 5.0.0 버전부터 엑셀간트 환경설정에 지정된 휴무일을 제외하고 실제 근무일만 포함하여 작업 의존관계를 설정하고 작업일을 계산할 수 있도록 사용자정의함수 GetWorkday를 제공합니다.

구문(Syntax)

GetWorkday

GetWorkday(pre_task_date, [days])

선행 작업의 날짜에서 지정된 작업 일수 이후의 날짜를 구해준다(엑셀간트 캘린더에 지정된 휴무일은 작업일에서 제외).

인수 :

  • pre_task_date : 선행 작업의 날짜(시작일 또는 완료일)
  • days : lead 또는 lag할 작업 일수(생략시 0이 기본값으로 설정됨, 양수는 lag, 음수는 lead)

작업 의존관계 :

  • FS(Finish-to-Start) : 선행작업의 완료일을 pre_task_date로 설정하고 후행작업의 시작일을 구할 때
  • SS(Start-to-Start) : 선행작업의 시작일을 pre_task_date로 설정하고 후행작업의 시작일을 구할 때
  • FF(Finish-to-Finish) : 선행작업의 완료일을 pre_task_date로 설정하고 후행작업의 완료일을 구할 때
  • SF(Start-to-Finish) : 선행작업의 시작일을 pre_task_date로 설정하고 후행작업의 완료일을 구할 때

FS(Finish-to-Start, 선행작업 완료 후 후행작업 시작 ) 예시

'프로그램B'의 시작일 필드 [P41] 셀에 다음 수식을 입력하면 휴무일을 제외하고 작업 의존 관계를 설정할 수 있습니다.

=GetWorkday(Q40) => 20222-08-01(휴무일은 제외하고 '프로그램A'의 완료일 다음날을 '프로그램B'의 시작일로 설정)

엑셀간트 GetWorkday 함수로 작업 의존관계 설정

엑셀간트 GetWorkday 함수로 작업 의존관계 설정

 

의존관계가 설정되면 간트차트에서 작업 간의 연결선이 표시됩니다.

엑셀간트 GetWorkday 함수로 작업 의존관계 설정

 

FS Lag (FS+2days) 예시

다음과 같이 수식을 입력하면 '프로그램B'의 시작일을 2일 지연 시켜서 2022-08-03에 시작하도록 합니다.

=GetWorkday(Q40,2) => 2022-08-03

FS Lag (FS-2days) 예시

 

 

작업 완료일 계산

시작일에 기간을 더해서 완료일 계산

'프로그램A' 작업의 완료일을 다음과 같이 계산할 수 있으나, 작업기간에 휴무일도 포함되는 문제점이 있습니다.

=P40+10 => 2022-07-28 (휴무일을 제외하면 실제 작업기간은 9일)

시작일에 기간을 더해서 완료일 계산

 

엑셀간트 GetFinishDate 함수로 완료일 계산

엑셀간트 5.0.0 버전부터 엑셀간트 환경설정에 지정된 휴무일을 제외하고 실제 근무일만 포함하여 작업완료일을 계산할 수 있도록 사용자정의함수 GetFinishDate를 제공합니다.

구문(Syntax)

GetFinishDate

GetFinishDate(start_date, [days])

작업의 시작일에서 지정된 작업 일수 이후의 날짜를 구해준다(엑셀간트 캘린더에 지정된 휴무일은 작업일에서 제외).

인수 :

  • start_date : 현재 작업의 시작
  • days : 작업 일수(생략 시 기본값은 1)

GetFinishDate 함수로 작업 완료일 계산 예시

=GetFinishDate(P40,10) => 2022-07-29 (휴무일을 제외하고 실제 작업기간 10일)

GetFinishDate 함수로 작업 완료일 계산 예시

 

기간 필드를 추가하여 작업 완료일 계산 예시

다음과 같이 기간 필드를 추가하여 기간을 참조하여 완료일을 계산할 수도 있습니다.

=GetFinishDate(Q40,P40) => 2022-07-29 (휴무일을 제외하고 실제 작업기간 10일)

기간 필드를 추가하여 작업 완료일 계산 예시

 

 

기타

수식이 입력된 셀 확인하기

XLGantt 리본메뉴에서 '수식셀 선택'을 클릭하면 수식이 입력된 셀을 한 번에 확인할 수 있습니다.

수식이 입력된 셀 확인하기

 

함수명 앞에 @ 표시

다음과 같이 함수명 앞에 @이 표시될 수 있습니다.

=@GetWorkday(R40)
@은 암시적 교차 연산자라고 합니다. 사용자 정의 함수가 다중 셀 범위를 반환할 수 있을 때 함수명 앞에 @이 표시될 수 있습니다.
GetWorkday, GetFinishDate함수는 다중 셀 범위를 반환하지 않지만 @이 표시됩니다. @ 표시 여부와 관계 없이 수식의 결과는 동일합니다. 사용자는 특별히 신경쓰지 않아도 됩니다.

수식을 입력할 때는 @은 입력하지 않아도 됩니다.

 

[ 엑셀간트 사용법 ]

엑셀웍스 책 출간 안내

그동안 엑셀웍스에 올린 '엑셀 강좌', '함수 사용법', 여러 '실무 예제'에서 핵심만 뽑아 '된다! 엑셀 수식 & 함수' 책으로 출간하였습니다.

 자세히 보기

온라인 구매처: 예스24   교보문고   알라딘 

“[엑셀간트 사용법 16] 작업 의존관계 설정”에 대한 14개의 생각

  1. GetFinishDate 함수 사용 시 순환참조 오류메세지가 나는데, 원인이 어떤 게 있을까요?
    함수는 바르게 사용한 것 같습니다.

  2. GetWorkday 사용시 여러작업이 완료되어서 하나의 작업이 이뤄질수있게 안될까요? /일정표에서 화살표가 여러 항목에서 한항목으로 이어지게끔 가능한지 문의드립니다.

  3. 의존 관계일때 간트차트의 화살표가 ㄹ자로 표현되는걸 ㄱ자로 바꾸는 기능은 없나요?

    1. task의 bar chart의 기간이 겹치면 구조적으로 ㄹ자로 표시될 수 밖에 없고요, 기간이 겹치지 않더라도 bar chart가 가까이 인접하면 ㄱ자가 아니라 자동으로 ㄹ로 표시됩니다.

  4. Getworkday 함수로 시작일을 잡을 때, 시작일이 휴무일로 잡힌 경우, 스케줄 업데이트 시에 휴무일 반영이 되지 않습니다.

    1. 시작일이 휴무일인 경우 휴무일은 건너뛰고 휴무일 다음날로 반영됩니다. 휴무일을 시작일로 반영하려면 Calendar 설정에서 휴무일 지정 방법을 바꾸면 됩니다(해당날짜가 휴무일로 지정되지 않도록 변경).
      다음 링크 참고하세요.
      https://xlworks.net/xlgantt-howto-11-calendar/

      1. 네 =Getworkday로 앞의 행의 완료일을 잡아 엔터를 치면 말씀하신대로 휴무일이 반영되서 정확하게 입력이 되지만 스케줄 업데이트 시에 휴무일이 반영 안된 날짜로 바뀝니다.

  5. XLGant 정말 유용하게 잘 사용하고 있습니다. 정말 감사드립니다.
    이제는 사용자 함수 및 계산치도 넣을수 있게되어 편리해졌고, Relation도 표시가 되어 정말 유용합니다.

    하지만, 공정표 내용이 많은 경우, Relation(선행-후행 연결선) 표현으로 공정표가 복잡해지는 경우도 있습니다.
    발주처나 협력사에 공정표 공유할때 연결선을 지워서 보내야 하는 경우 연결선을 감추는 방법이 있을까요?
    지금은 함수로 계산된 일정을 복사하여 다시 텍스트로 붙여넣어 연결선을 제거하고 있습니다.

    아직 연결선 숨김기능이 없다면, 다음 버전에서는 고려해 봐 주셨으면 하는 바램입니다.

    1. 안녕하세요.
      현재는 연결선 숨김기능은 없습니다. 다음 버전에는 연결선을 숨김기능을 반영해보겠습니다.

댓글 남기기

위로 스크롤