
나는 24시간 내내 엑셀 문제를 풀고 있었습니다. 내가 원하는 것을 거의 수행하는 수식이 있지만 반환되어야 한다고 생각하는 것을 반환하지 않습니다.
=INDEX(Data!D:D,SUMPRODUCT((Data!C:C=Total!A5)*(Data!A:A="Total")*(Data!B:B="Total")*(ROW(Data!D:D))))
데이터에서 D열을 인덱싱하는 행을 상상해 보세요! 워크시트는 일치가 발생하는 실제 행이 되지만 첫 번째 값을 제외한 모든 값에 대해 반환된 값은 그 아래 3개 행에서 나옵니다.
예, 해당 수식을 적용한 첫 번째 셀의 경우 데이터!의 D열에서 올바른 값을 가져옵니다. 그러나 수식이 포함된 모든 후속 셀에 대해 데이터의 D열에 있는 값을 다시 가져옵니다! 일치 항목 아래 3줄.
나는 (적절한 행을 반환하기 위해) 수식에서 3을 빼는 모든 조합을 시도했지만 소용이 없었습니다. 그래도 수식이 적용된 첫 번째 셀이 예상 값을 반환하는 이유를 설명할 수 없습니다.
물론 모든 도움을 주시면 감사하겠습니다...
답변1
당신이 그것을 찾고 싶은지 나에게는 완전히 명확하지 않습니다첫 번째, 두 번째 등Total!A5와 일치하거나 A5와 첫 번째 일치 항목을 찾으려는 경우 A6과 첫 번째 일치 등을 찾습니다. 제안된 솔루션은 전자에 대한 것입니다.
나는 일치 항목에서 여러 번의 반환을 포착하기 위해 수학적 제외 방법을 사용하는 것을 선호합니다. 일치하지 않는 것을 제거하면 남은 것은 일치하는 결과 집합이어야 합니다. 나는 또한 짜증나는 전체 열 참조의 계산 지연을 발견할 만큼 SUMPRODUCT
참을성이 없어서 처음 ~1K 행에 대한 범위 참조를 잘랐습니다.
=IFERROR(INDEX(Data!$D$2:$D$999, SMALL(INDEX(ROW($1:$998)+((Data!$C$2:$C$999<>Total!$A$5)+(Data!$A$2:$A$999<>"Total")+(Data!$B$2:$B$999<>"Total"))*1E+99,,),ROW(1:1))),"")
이는 표준(비배열) 공식. 일치하는 모든 수익을 얻으려면 필요에 따라 입력하세요. 자신의 목적을 위해 이 내용을 기록할 때 다음 사항을 기억하십시오 ROW(1:998)
.내의 위치 Data!D2:D999
, 워크시트의 실제 행 번호가 아닙니다. ROW(1:1)
입력할 때마다 증가하는 단순한 카운터입니다. 때로는 a가 COUNTIF
더 적합하며 여러 조회 값에서 여러 일치하는 반환을 잡는 데 사용될 수 있습니다.