나는 풀 리그 경기 결과에 대해 보관하는 스프레드시트의 값 및 요약 데이터 계산을 더욱 완전히 자동화하려고 합니다.
각 경기에 대한 많은 정보가 포함된 테이블이 있습니다. 관련 필드는 경기 날짜, 승자, 승자 시작 핸디캡, 승자 종료 핸디캡, 패자, 패자 시작 핸디캡, 패자 종료 핸디캡, 경기 시작 시간입니다.
핸디캡은 매 경기가 끝날 때와 다음 경기 전에 조정됩니다. 플레이어(승자 또는 패자일 수 있음)의 가장 최근 과거 기록을 찾고 해당 기록의 종료 핸디캡을 내가 지금 입력하는 시작 핸디캡(승자 또는 패자)에 복사하는 것은 고통스러운 일입니다.
나는 그가 승자 또는 패자였던 가장 최근 기록(하루에 두 번 플레이한 경우 가장 높은 날짜 및 시작 시간)을 찾은 다음 종료 핸디캡(해당 승자 또는 패자로부터)을 얻는 공식을 원합니다. ).
Teylyn의 제안에 따라 파일에 대한 Dropbox 링크가 있습니다. 관련 탭은 경기 결과입니다.https://www.dropbox.com/s/1j9c6zsxjd3q4dt/Sample%20for%20Excel%20Question%20on%20Superuser.xlsx?dl=0
테스트하기 위해 빈 열 L을 추가하고 결과를 K에 있는 것과 비교하여 작동하는지 확인했습니다. 이것이 바로 거기에 있는 이유입니다. Dropbox에 넣을 때 제거하는 것을 잊어버렸습니다.
답변1
문제 설명
워크시트의 열 E
및 에 이름이 있습니다 X
. 모든 행에 대해n
, ≠ . Column 에는 Column 의 이름에 해당하는 숫자가 있고 Column 에는 Column 의 이름에 해당하는 숫자가 있습니다 . 첫 번째 행 이후의 모든 행(예: 행 42)에 대해 가능하면 이전 행에 대한 값을 가져오고 싶습니다.En
Xn
M
E
AG
X
K42
AF42
- "John"인 경우
E42
"John"이 포함된 가장 최근 행을 찾습니다(열E
또는 에서X
). 해당 행에 전화하세요n
. = "John" 인 경우 와 동일하게 설정합니다 . = "John" 인 경우 와 동일하게 설정합니다 .En
K42
Mn
Xn
K42
AGn
"Scott"인 경우
X42
"Scott"이 포함된 가장 최근 행을 찾습니다(열E
또는 에서X
). 해당 행에 전화하세요n
. = "Scott" 인 경우 와 동일하게 설정합니다 . = "Scott" 인 경우 와 동일하게 설정합니다 .En
AF42
Mn
Xn
AF42
AGn
해결책
어느 정도 정신을 차리기 위해 도우미 열을 사용해 보겠습니다. 그리고 .AR
AS
(예제 파일에서와 같이) 데이터가 행 2에서 시작한다고 가정합니다.
=MAX(($E$2:$E2=$E3)*(100*ROW($E$2:$E2)+COLUMN($M:$M)), ($X$2:$X2=$E3)*(100*ROW($X$2:$X2)+COLUMN($AG:$AG)))
AR3
( 건너 뛰기 ) AR2
. Ctrl+ Shift+ 로 끝나서 Enter배열 수식으로 만듭니다. 마찬가지로 다음과 같이 설정합니다 AS3
.
=MAX(($E$2:$E2=$X3)*(100*ROW($E$2:$E2)+COLUMN($M:$M)), ($X$2:$X2=$X3)*(100*ROW($X$2:$X2)+COLUMN($AG:$AG)))
배열 수식으로. (이는 AR3
의 두 항목이 $E3
로 대체된 것을 제외 하고는 동일합니다 $X3
.)
K3
로 설정
=IF($AR3=0, "?", INDEX($A$1:$BG$999, INT($AR3/100), MOD($AR3,100)))
그리고AF3
=IF($AS3=0, "?", INDEX($A$1:$BG$999, INT($AS3/100), MOD($AS3,100)))
(배열 수식이 아님) 가 3 $AR3
개로 대체된 점을 제외하면 이는 동일합니다 $AS3
.
물론 아래로 드래그/채우기도 합니다.
도우미 열은 가장 최근에 발생한 이름을 찾습니다. — 의 가장 최근 이전 발생을 찾고 , 가장 최근의 이전 발생을 찾습니다. — 기본적으로 이전 행 전체에서 의 최대값을 찾습니다.ARn
En
ASn
Xn
(이전_값=this_value) * 열())
즉, 이름이 일치하는 가장 높은 행 번호입니다. 그런 다음 이름이 발견된 위치를 다음과 같이 인코딩합니다.
100*행() + 열(data_we_want_to_copy)
두 수식 모두 열과 을 모두 살펴보고 E
해당 X
열 M
이나 AG
셀의 인코딩된 좌표를 반환합니다. 그런 다음 K
및 AF
수식은 단순히 셀 주소를 디코딩하고 값을 검색합니다.
AR6
"John"( )이 가장 최근에 행 2에 표시되었기 때문에 213도 마찬가지 입니다. 그리고 그는 (가 아닌 ) E6
에 표시되었으므로 열 13(열 ) 의 값을 복사하려고 합니다 .E2
X2
M