2016-07-06 4 views
0

저는 현재 대형 슈퍼마켓의 계산대 카운터에서 직원을 관리하기 위해 Excel 프로그램을 작성하고 있습니다. 온라인 데이터베이스에서 직원의 작업 일정을로드 한 다음 직원을 다른 카운터에 배치합니다.하나의 데이터 세트를 정렬하여 다른 데이터 세트와 가장 잘 어울립니다.

A  B C  D  E F 
1 Name1 0745 1615 Name5 1515 2130 
2 Name2 0830 1600 Name6 1600 2230 
3 Name3 0915 1615 Name7 1630 2230 
4 Name4 1000 1530 
:

현재는 내가 일정을로드하고 하루 이동과 (단지 현실에서 훨씬 더 많은 사람들과 함께)이처럼 보이는 시트에서 저녁 교대로 직원을 구분 한 점에 있어요 0745가 7시 45분입니다

1615는 16시 15분은 (4:15 PM) 이제

, 내가 이상적이 될 수 있도록 저녁 변화에서 사람과 하루 변화에서 사람을 일치하고자하는 것입니다 그들 사이에 15 분의 겹침. 위의 예에서와 같이 하루 종일 똑같이 많은 사람이 있고 저녁 시간에 교대하는 경우 반드시 주어지는 것은 아니며 두 팀으로 구성된 모든 팀 사이에 정확히 15 분의 중복이있을 수 있습니다. 이 경우 30 분의 겹침은 예를 들어 0 분의 겹침보다 좋습니다.

내 생각에 두 데이터 세트 간의 모든 가능한 일치 조합을 시도한 다음 서로 다른 종류의 중복에 서로 다른 오류 값을 할당하여 예를 들어 15 분이 겹치면 0, 30 분이 1이되고 , 0 분이면 2가되고 가장 좋은 일치는 가장 작은 총 오류가있는 것입니다.

그러나 VBA에서 이것을 프로그래밍하는 방법이나 이것이 최선의 방법인지 모릅니다.

포럼 검색을 시도했지만 불행히도 도움이되는 정보를 찾지 못했습니다. 여러분 중 한 분이 나를 도울 수 있거나 내가 검색 할 수있는 곳에서 아이디어를 얻을 수 있기를 바랍니다.

답변

0

귀하의 질문에 대한 답변 뒤에 많은 생각이 있다고 생각합니다. 이 코드를 작성하는 것은 약간의 프로젝트라고 생각합니다.

C 열에 따라 AC 열을 정렬하고 D 열로 DF 열을 정렬하면 삶을 좀 더 쉽게 만들 수 있습니다. 많은 직원과 일하지 않는다면 그 대답은 그로부터 벗어날 것입니다 . (샘플 데이터 세트에서 Name4가 Name5와 Name1이 쌍을 이룬다거나 Name3이 Name6과 쌍을 이룬다는 것을 즉시 알 수 있습니다.)

완전한 대답은 아니지만 시작일 수도 있습니다.