배열을 통해 실행되고 N개의 일치하는 결과를 반환하는 Excel 수식을 만들려고 합니다. 즉, 예를 들어 셀 A1에 이 수식을 먼저 넣고 일치하는 첫 번째 결과를 반환합니다. 셀 A2, A3 등으로 드래그하면 각각 두 번째 및 세 번째 일치 결과가 반환됩니다. 현재 이 정도의 작업을 수행하는 공식이 있습니다.
INDEX(Sheet2!$B$2:$B$10081,AGGREGATE(15,3,(Sheet2!$AA$2:$AA$10081="TRUE")/(Sheet2!$AA$2:$AA$10081="TRUE")*(ROW(Sheet2!$AA$2:$AA$10081)-ROW(Sheet2!$AA$1)),ROWS($R$73:R73))))
그러나 OR 함수를 사용하려고 하므로 셀 범위가 TRUE 또는 FALSE인지 확인하는 대신(현재 도우미 셀/열을 사용하여 수행됨) 범위를 확인하고 싶습니다. 다음 조건 중 하나와 일치합니다.
- 값이 999999를 넘는 셀
- 값이 0인 셀
- 값이 음수(<0)인 셀
내 시도는 다음과 같습니다.
INDEX(Sheet2!$A$2:$A$10081,AGGREGATE(15,3,(OR(Sheet2!$B$2:$B$10081>999999,Sheet2!$B$2:$B$10081=0,Sheet2!$B$2:$B$10081<0))/(OR(Sheet2!$B$2:$B$10081>999999,Sheet2!$B$2:$B$10081=0,Sheet2!$B$2:$B$10081<0))*(ROW(Sheet2!$B$2:$B$10081)-ROW(Sheet2!$B$1)),ROWS($P$73:P73))))
그러나 이것은 작동하지 않습니다. 왜냐하면 Aggregate()의 세 번째 인수는 배열이어야 하고 부울로 평가되는 OR 함수를 사용했기 때문입니다. 위의 3가지 조건을 확인하기 위해 OR 기능을 올바르게 통합하는 방법을 잘 모르겠습니다.
답변1
추가는 다음을 수행합니다.또는각 항목에 해당하는 기능이 있습니다. 그래서:
(myRng>999999)+(myRng<=0)
{1..0}
기준이 충족되는지 여부에 따라 배열을 반환합니다 .
함수 에 대한 배열을 만들려면 AGGREGATE
다음과 같습니다.
1/((myRng>999999)+(myRng<=0))*myRng
답변2
Excel 365를 사용하고 FILTER 함수에 액세스할 수 있는 경우 FILTER를 사용하여 배열을 반환할 수 있습니다. 각 OR 조건은 여기에 설명된 대로 괄호로 묶고 로 구분할 수 있습니다 +
.
구체적으로:
...더하기 연산자(+)와 함께 FILTER 함수를 사용하여 사과가 있거나 동부 지역에 있는 배열 범위(A5:D20)의 모든 값을 반환합니다.
데이터에 대해 너무 많이 알지 못하면 이와 유사한 것이 올바른 배열을 반환해야 합니다(일치하는 행을 모두 반환하려는 경우 실제로는 small로 집계할 필요가 없습니다).
=FILTER(Sheet2!$A$2:$A$10081,(Sheet2!$B$2:$B$10081>999999)+(Sheet2!$B$2:$B$10081=0)+(Sheet2!$B$2:$B$10081<0))
하지만... 방금 Excel 2016에서 사용될 것이라는 귀하의 의견을 보았는데 FILTER가 작동하지 않습니다. (다른 사람들에게 도움이 될 수 있도록 답변에 남겨 두겠습니다.)
Excel 2016(및 Excel 365)에서는 실제로 특정 기준을 충족하는 행을 찾으려는 것처럼 보이기 때문에 파워 쿼리를 사용할 수 있습니다.
몇 가지 샘플 데이터를 만들었습니다.
이제 데이터에서 아무 셀이나 선택하고 데이터>데이터 가져오기 및 변환>테이블/범위에서를 사용하여 데이터에 대한 쿼리가 포함된 파워 쿼리 편집기를 엽니다.
파워 쿼리 편집기에서 사용하려는 기준에 따라 값을 필터링합니다.
이제 홈>닫기 및 로드를 사용하여 데이터를 통합 문서에 다시 넣습니다.
마지막 단계는 쿼리가 적절한 간격으로 새로 고쳐지는지 확인하는 것입니다.
쿼리 결과에 커서를 놓고 쿼리>속성으로 이동하여 원하는 대로 새로 고침 속성을 구성합니다.