
데이터 열이 있고 그 옆에 마커가 있습니다. 생각하다:
ID#1 -- A
ID#2 -- B
ID#3 -- A
마커 A가 있는 ID 번호 위로만 이동하려고 합니다. 최종 결과는 다음과 같습니다.
ID#1
ID#3
VBA를 사용하면 매우 쉽습니다. 범위 필터링, 복사, 붙여넣기 등이 있습니다. 이 문제에 대한 VBA가 아닌 솔루션을 찾으려고 합니다. 다양한 배열 수식(Index(range,sumproduct(row*criteria)))을 시도했지만 제대로 작동하지 않습니다. 이것이 작동하도록 하려면 어떻게 해야 합니까?
계산상의 우아함은 중요한 요소입니다. 제가 다루고 있는 시트는 크기 때문에 데이터베이스여야 하지만 그 능력이 그 아이디어를 거부했습니다.
답변1
사용:
=IFERROR(INDEX($A$1:$A$8,SMALL(IF($B$1:$B$8="A",ROW($B$1:$B$8),999999),ROW(A1))),"")
Small은 각 행(가장 작은 것부터 가장 큰 것까지)에 대해 "A"가 있는 ID를 반환합니다.
A1:A8 ID 열에 해당하도록 변경합니다.
B1:B8 A 열에 해당하도록 변경합니다.
고정 참조를 위해 $를 유지하는 대신 + + 를
누릅니다 . 배열 수식 CtrlShiftEnterEnter