Excel

단위 앞의 숫자 추출하기(1) - Find 함수

별동산 2024. 2. 28. 08:57
반응형

1. 문제

 

아래와 같이 단위 앞에 숫자가 있는데, 숫자의 길이가 무작위일 것입니다.

이와 같은 경우 문자를 기준으로 숫자만 추출하는 것을 해보고자 합니다.

단위앞 숫자 추출.xlsx
0.01MB

 

 

2. 해결 방안

여러 가지가 있을 것입니다.

단순하게 each라면 간단하게 추출이 가능한데, pack까지 있다면 2가지를 찾아야 하고,

이런 것이 많아진다면 복잡해질 겁니다.

 

두번째는 단위인 each나 pack과는 무관하게 문자가 나올 때 그 위치 이전까지가 문자이므로 이를 이용하는 것입니다.

그런데 영어면 간단한데 한글이라면 어떻게 해야 할까요?

 

이렇게 3가지로 나눠서 해결 방안을 찾아보겠습니다.

 

3. 방법 1 : find 함수 이용

 

가. 단위의 위치 찾기

 each와 pack을 찾아서 그 위치를 기준으로 숫자를 추출해 보겠습니다.

=FIND("pack",$B3)라고 하면 2가 반환되고,

=FIND("ea",$B3)라고 하면 해당하는 문자열이 없기 때문에 #VALUE! 에러가 발생합니다.

 

 

그리고, =FIND({"pack","ea"},$B3)라고 하면 2와 #VALUE! 에러가 발생합니다.

 

따라서, 단위를 일정한 열에 미리 기입해 놓으면 단위의 개수가 늘어날 때 편리합니다.

=FIND(G3:G10,$B3)

 

그런데 #VALUE!가 있으면 최댓값, 최솟값 등 계산이 안되므로

IfError함수를 이용해 0으로 바꾸던가, 큰 숫자인 100으로 바꿔야 합니다.

 

따라서, 최종 수식은

=1*LEFT($B3,MAX(IFERROR(FIND($G$3:$G$4,$B3),0))-1)이 됩니다.

 

 

동적 배열 수식을 적용하지 2019 버전 등의 경우는

먼저 결괏값이 저장될 범위, 위의 경우 D3와 E3셀을 선택하고,

수식을 입력한 후 CSR(Ctrl + Shift + Enter) 키를 눌러야 하며,

수식을 입력하면 수식의 좌우에 중괄호({}) 표시가 들어갑니다.

 

365 버전의 경우 값이 표시되는 영역에 파란색 실선이 둘러쌓이는 것과 다릅니다.

 

단위앞 숫자 추출(1).xlsx
0.01MB

반응형