색인 – 일치 명령 구문 스캔해야하며 시트의 L3 위치에서 숫자 1의

나는 대부분의 셀에서 0을 유지하는 10 열 17 행을 가진 배열을 스캔하려고합니다.

처음부터 끝까지 행을 스캔해야하며 시트의 L3 위치에서 숫자 1의 첫 번째 모양에 대한 색인 (행 1은 5)을 강조 표시해야합니다.

처음에는 값 1이 E10에 나타납니다.

나는 L3에서 5라는 값을 출력해야하는 열 E에서 처음으로 1을 검출 한 것에 대해 5의 값 (열 E10에 해당하는 1의 인덱스)을 얻기 위해 어떤 수식을 사용하는지 이해할 수 없습니다.

enter image description here



답변

이 방법이 효과가 있을지 모르지만 공식을 사용할 수는 있습니다.

= MATCH (1, A3 : J3,0)

L3에서 누른 다음 L20으로 끕니다. 결과는 검색 문자열의 첫 번째 항목이 발견 된 열을 표시합니다. 다음은 그 예입니다.

이 오히려 서투른 해결책이 작동하지 않는다면, 나는 당신이 원하는 것을 얻기 위해 사용자 정의 함수를 사용할 것이라고 생각하고 있습니다. 너무 어렵지 않을 것입니다. for / next 루프 몇 개만 있습니다. 아마도 그 코드를 쓸 수는 있지만 코드를 항상 작성하지는 않습니다. 잠깐 시간이 걸릴 수 있습니다.


답변

당신의 문제에 대한 해결책을 찾았습니다. L3에서 다음 수식을 사용하십시오.

=INDEX(A1,J1,1,MATCH(1,INDIRECT("A"&SMALL(IF(A3,J20=1,ROW(A3,J20),5000),1)&":J"&SMALL(IF(A3:J20,ROW(A3:J20),5000),1)),0))

설명:

  • A1 : J1이 조회 범위입니다.
  • 1은 조회 행입니다.
  • SMALL(IF(A3:J20=1,ROW(A3:J20),5000);1) 1을 포함하는 모든 행을 찾은 다음 가장 작은 것을 반환합니다 (이 배열에서 가장 작은 수인 경우 틀린 옵션이 있는지 확인하기 위해 5000을 추가했습니다)
  • INDIRECT 함수는 MATCH가 INDEX에서 사용할 올바른 번호를 검색 할 수있는 “행”을 작성하는 데 사용됩니다

내 대답이 명확하지 않은 경우 항상 추가 질문을 할 수 있습니다.