엑셀간트 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(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'의 시작일로 설정)
의존관계가 설정되면 간트차트에서 작업 간의 연결선이 표시됩니다.
FS Lag (FS+2days) 예시
다음과 같이 수식을 입력하면 '프로그램B'의 시작일을 2일 지연 시켜서 2022-08-03에 시작하도록 합니다.
=GetWorkday(Q40,2) => 2022-08-03
작업 완료일 계산
시작일에 기간을 더해서 완료일 계산
'프로그램A' 작업의 완료일을 다음과 같이 계산할 수 있으나, 작업기간에 휴무일도 포함되는 문제점이 있습니다.
=P40+10 => 2022-07-28 (휴무일을 제외하면 실제 작업기간은 9일)
엑셀간트 GetFinishDate 함수로 완료일 계산
엑셀간트 5.0.0 버전부터 엑셀간트 환경설정에 지정된 휴무일을 제외하고 실제 근무일만 포함하여 작업완료일을 계산할 수 있도록 사용자정의함수 GetFinishDate를 제공합니다.
구문(Syntax)
GetFinishDate(start_date, [days])
작업의 시작일에서 지정된 작업 일수 이후의 날짜를 구해준다(엑셀간트 캘린더에 지정된 휴무일은 작업일에서 제외).
인수 :
- start_date : 현재 작업의 시작
- days : 작업 일수(생략 시 기본값은 1)
GetFinishDate 함수로 작업 완료일 계산 예시
=GetFinishDate(P40,10) => 2022-07-29 (휴무일을 제외하고 실제 작업기간 10일)
기간 필드를 추가하여 작업 완료일 계산 예시
다음과 같이 기간 필드를 추가하여 기간을 참조하여 완료일을 계산할 수도 있습니다.
=GetFinishDate(Q40,P40) => 2022-07-29 (휴무일을 제외하고 실제 작업기간 10일)
기타
수식이 입력된 셀 확인하기
XLGantt 리본메뉴에서 '수식셀 선택'을 클릭하면 수식이 입력된 셀을 한 번에 확인할 수 있습니다.
함수명 앞에 @ 표시
다음과 같이 함수명 앞에 @이 표시될 수 있습니다.
=@GetWorkday(R40)
@은 암시적 교차 연산자라고 합니다. 사용자 정의 함수가 다중 셀 범위를 반환할 수 있을 때 함수명 앞에 @이 표시될 수 있습니다.
GetWorkday, GetFinishDate함수는 다중 셀 범위를 반환하지 않지만 @이 표시됩니다. @ 표시 여부와 관계 없이 수식의 결과는 동일합니다. 사용자는 특별히 신경쓰지 않아도 됩니다.
수식을 입력할 때는 @은 입력하지 않아도 됩니다.
[ 엑셀간트 사용법 ]
- 심플간트(Simple Gantt) 사용법
- [엑셀간트 사용법 16] 작업 의존관계 설정
- [엑셀간트 사용법 15] WBS영역, 컬러테마 설정
- [엑셀간트 사용법 14] 작업량 계산방식
- [엑셀간트 사용법 13] Server Data 가져오기
- [엑셀간트 사용법 12] Excel 기능과 통합(행,열 추가, 함수제공)
- [엑셀간트 사용법 11] Calendar관리(시작요일,휴무일설정)
- [엑셀간트 사용법 10] 다른 파일에서 일정 가져오기
- [엑셀간트 사용법 09] 다국어 지원
- [엑셀간트 사용법 08] Microsoft Outlook작업, 일정 등록
- [엑셀간트 사용법 07] 산출물 관리
- [엑셀간트 사용법 06] 일정계획 변경관리
- [엑셀간트 사용법 05] 분석 리포트
- [엑셀간트 사용법 04] 프로젝트 전체 진행상황 파악하기
- [엑셀간트 사용법 03] 간트차트 표시 방법 설정
- [엑셀간트 사용법 02] 작업 입력, 스케줄 업데이트
- [엑셀간트 사용법 01] 간단 사용법
GetFinishDate 함수 사용 시 순환참조 오류메세지가 나는데, 원인이 어떤 게 있을까요?
함수는 바르게 사용한 것 같습니다.
안녕하세요. 혹시 서로 참조하도록 수식이 입력되지 않았는지 확인부탁드립니다. 수식을 어떻게 입력하셨는지 알려주시면 정확한 답변가능할것 같습니다.
순환참조는 다음 글을 참고하세요.
https://xlworks.net/excel-circula-reference/
GetWorkday 사용시 여러작업이 완료되어서 하나의 작업이 이뤄질수있게 안될까요? /일정표에서 화살표가 여러 항목에서 한항목으로 이어지게끔 가능한지 문의드립니다.
getworkday 함수 사용시 여러 셀 선택이 안되는지 궁금합니다.
넵, 여러 셀 선택은 안됩니다.
말씀하신 기능은 불가능합니다.
의존 관계일때 간트차트의 화살표가 ㄹ자로 표현되는걸 ㄱ자로 바꾸는 기능은 없나요?
task의 bar chart의 기간이 겹치면 구조적으로 ㄹ자로 표시될 수 밖에 없고요, 기간이 겹치지 않더라도 bar chart가 가까이 인접하면 ㄱ자가 아니라 자동으로 ㄹ로 표시됩니다.