아래와 같이 좌표와 도면 번호가 있을 때 특정 좌표에 해당하는 위치의 도면을 찾는 것을 해보겠습니다.
1. index 함수로 구하기
index함수의 구문은
INDEX(array, row_num, [column_num]) 로
배열, 행 수, 열 수인데 열 수는 대괄호 안에 있기 때문에 옵션이지만
위 경우에는 2차원 구조이기 때문에 열 수도 필요합니다.
index함수는 위 표에서 아래로 몇 번째 있는지, 오른쪽으로 몇 번째 있는지 위치를 정해주면 값을 반환하므로,
첫 번째 array는 표의 범위인 J3셀부터 AC24셀까지입니다.
이제 문제는 행 수와 열 수를 구하는 것입니다.
그런데 특이한 점은 E(ast)는 100이 네 번째 칸에 있고,
N(orth)는 100이 네 번째가 아닌 다섯 번째 칸에 있다는 것입니다.
가. 행 수 구하기
셀 병합이 되어 있기 때문에 J3셀부터 M6셀까지의 셀 주소는 J3셀로 해야 값을 구할 수 있습니다.
먼저 100은 J3셀 기준으로 다섯 번째에 있는데
이것은 100을 100으로 나눈 후 4를 곱하고 다시 1을 더하는 것입니다.
그런데 100부터 200 미만까지는 1이어야 하므로 정수를 구해야 합니다.
이를 수식으로 표현하면
=int(AG3/100)*4+1입니다.
또는 몫을 구하는 함수인 Quotient를 이용해도 됩니다.
이때는 =quotient(ag3,100)*4+1 식으로 / 기호가 아니라 쉼표(,)로 구분해서 입력합니다.
나 열 수 구하기
열 수는 100으로 나누는데, 100이 1이 아니라 0이므로 1을 빼주고 4를 곱한 다음 1을 더해야 합니다.
이때 100 미만은 100이 되어야 하므로 절상하는 Ceiling.Math함수 또는 RoundUp함수를 사용하면 됩니다.
종전에는 Ceiling함수를 사용했는데, 엑셀이 버전 업되면서 Ceiling.Math로 바뀌었습니다.
따라서, 수식은
=(ceiling.math(ag4/100)-1)*4+1
또는
=(roundup(ag4/100,0)-1)*4+1
이 됩니다.
다. index 함수와 결합
=INDEX(J3:AC22,INT(AG3/100)*4+1,(CEILING.MATH(AG4/100)-1)*4+1) 또는
=INDEX(J3:AC22,QUOTIENT(AG3,100)*4+1,(ROUNDUP(AG4/100,0)-1)*4+1)
'Excel' 카테고리의 다른 글
좌표와 일치하는 도면 번호찾기(3) (2) | 2023.11.09 |
---|---|
좌표와 일치하는 도면 번호 찾기(2) (0) | 2023.11.08 |
문장에서 숫자만 추출하기(2) (0) | 2023.11.06 |
문장에서 숫자만 추출하기(1) (2) | 2023.11.04 |
계산 오류 원인 2 - 날짜를 문자로 입력 (0) | 2023.11.01 |