
우리 그룹에는 순환 책임을 추적하는 데 사용되는 Excel 시트가 있습니다. 간단한 예는 다음과 같이 배치됩니다.
- A열:시작각 항목이 나타내는 기간의 시작을 정의하는 날짜가 있습니다.
- B열:끝각 항목이 나타내는 기간의 끝을 정의하는 날짜가 있습니다.
- C열:양수인같은 줄에 START 및 END로 정의된 기간 동안 지정된 책임에 할당된 사람을 나타내는 문자열이 있습니다.
목록 자체는대개시작일 기준으로 오름차순으로 정렬됩니다. 그러나 시트가 다시 배열될 수도 있습니다.
목록에 정의된 기간 사이에는 중복이 있어서는 안 됩니다.
내가 추가하고 싶은 것은 세 가지 값(별도의 셀에 있음)이 있는 정보 섹션입니다.
- 이전의현재 기간 바로 전 기간에 해당하는 ASSIGNEE입니다.
- 현재의현재 책임을 맡은 담당자가 됩니다.
- 다음우리가 현재 있는 기간 이후의 기간에 해당하는 ASSIGNEE가 됩니다.
스프레드시트가 올바른 순서(START 기준으로 오름차순)로 유지된다고 가정하면 CURRENT에 대한 공식을 알아낸 후 PREVIOUS 및 NEXT를 반환하는 것이 쉬워야 합니다. 그러나 나는 그것을 어디서부터 시작해야 할지조차 확신하지 못합니다.
답변1
나생각하다이것은 전류를 찾는 데 효과적입니다. 어디까지나 테스트해봤지만추측이 경우 한 가지 특성을 무시하는 것은 문제가 되지 않습니다.
먼저 B와 C 사이에 열을 추가합니다(이후 담당자는 D가 됩니다). 이 열에 다음 수식을 입력하세요.
=IF(NOW()-A2>0,IF(NOW()-B2<0,"Yes","No"),"No")
그러면 예가 포함된 행 하나와 아니요가 포함된 나머지 행(현재 슬롯에 대해)이 생성됩니다.
이제 현재 담당자의 셀에 다음을 입력합니다.
=INDEX($C$2:$D$4, MATCH("Yes", $C$2:$C$4,0), 2)
이전: =INDEX($C$2:$D$4, MATCH("Yes", $C$2:$C$4,0) - 1, 2)
다음: =INDEX($C$2:$D$4, MATCH("Yes", $C$2:$C$4,0) + 1, 2)
일반적으로 MATCH는 검색 열을 정렬하려고 하지만 열에는 Yes가 하나만 있어야 하기 때문에생각하다(이것은 추측 부분입니다) 우리는 그 제한을 무시할 수 있습니다.
내 테스트 스프레드시트는 행이 3개뿐이므로 YMMV입니다.
current가 첫 번째 줄 등인 경우 이전에 대한 오류 검사가 필요하며 소스 범위의 이름을 지정하는 것이 아마도 좋은 생각일 것입니다.
추가 열을 숨길 수도 있습니다.
답변2
순서대로 입력:
현재 담당자: currRow=match(now(),A:A,1)
- 데이터가 정렬되면 현재 행을 찾게 되며 도우미 열이 필요하지 않습니다. 쉽게 참조할 수 있도록 이를 계산하는 셀 이름을 currRow로 설정합니다.
양수인: =indirect("C"& currRow + x)
- x: 이전, 현재 및 다음 행에 대해 각각 -1, 0, 1입니다.
비순차 입력:
현재 행: currRow=match(max(if(A:A>now(),"",A:A)),A:A,0)
- 배열 수식이므로 CTRL+SHIFT+ENTER를 눌러 입력해야 합니다.
현재 담당자: 이전과 동일합니다.
이전: =indirect("C" & match(max(if(A:A>=indirect("A" & currRow),"",A:A)),A:A,0))
- 배열 수식이기도 합니다.
다음: =indirect("C" & match(min(if(A:A<=indirect("A" & currRow),"",A:A)),A:A,0))
- 여전히 배열 수식입니다.