본문 바로가기
  • We are looking for banner advertisers Please refer to the email below
Excel - 엑셀 - 스프레드시트

[스프레드시트] FIND 함수 - 데이터를 찾아보자 대량데이터정제

by 크론크롱 2019. 10. 31.
반응형

이번시간에는 자주사용되는함수는 아니지만

가끔씩 데이터를 정제 하기위해 사용되는 FIND 함수를 알아보도록 하겠습니다.

스프레드시트를 열어줍니다.

 

https://docs.google.com/spreadsheets

 

Google 스프레드시트 - 온라인에서 무료로 스프레드시트를 만들고 수정해 보세요.

Excel과 호환 Chrome 확장 프로그램 또는 앱을 사용하여 Microsoft Excel 파일을 열고 수정하고 저장할 수 있습니다. Excel 파일을 Google 스프레드시트로, Google 스프레드시트를 Excel 파일로 변환할 수 있습니다. 더 이상 파일 형식은 신경쓰지 마세요.

www.google.com

 

FIND(검색하려는_문자열, 검색할_텍스트, [시작])

 

FIND 함수의 대입은 검색하는 문자열, 그다음 검색할 범위/위치 를 선택해준뒤 , 시작위치를 정해줍니다.

자, 뭐 설명은 됫고 이제 실제 데이터에 대입하여 보여드리도록하겠습니다

 

A2열의 가나다, 까나다, 나가다 데이터중 "까나다" 라는 데이터가 몇번째 위치하고있는지 찾아보겠습니다.

위와같이 =find("까나다",A2,1) 와 같이 입력했습니다. 첫번쨰 까나다라는데이터를 찾는다고 입력하고, 그다음에는 기준데이터인 A2를 선택한 뒤, 몇번째부터 찾을것인지선택합니다, 까나다 라는 데이터는 6번째 부터 위치하고있기때문에, 0~6 사이의 값을 입력하는 경우 적용됩니다.

시작위치의 경우 데이터가 중복되는경우에 순서를 정해 중복되는데이터도 찾아 낼 수 있습니다.

 

값이 6이라고 반환되었고, A2의 6번째부터 해당데이터가 시작된다라는 의미입니다.

여기서 조금더 더 나아가, 찾고자하는데이터와 남은데이터를 각각 분리하여 만들어보겠습니다.

이때 SUBSTITUTE 또는 REPLACE의 함수를 이용하여 만들수도 있지만, 이번시간에는 find 함수를 활용하여 데이터를

만들어내는것이 목표이기때문에 이번시간에는 find함수를 사용하여 만들어보도록하겠습니다.

 

찾고자하는 데이터 위치를 찾았습니다. 그리고는 다음 찾고자하는데이터의 길이가 얼마나되는지 LEN 함수를 사용하겠습니다.

 

예시데이터의 총길이도 구합니다.

 

 

저는 함수를 아래와같이 입력하겠습니다

풀이를 하자면, C2의 값은 찾고자하는 데이터가 시작되는 데이터이므로 해당데이터를 제외하기위해서 -1값을 넣고 left 함수를 사용하여 =left(A2,C2-1) 의 함수를 만들었습니다 , 그다음 연결 부호 & 를 사용하여 E2 , 예시데이터의 총 전체길이 에서 C2 (찾고자하는데이터위치) 빼고, 또 찾고자하는데이터의 길이도 같이 뺐습니다. 거기에 한자리를 더하기위해 1을더했습니다. 빼게되면 나머지부분만남게되는데요, 그럼 아래와같이 값이 반환됩니다.

 

위와같은형태로 원하는데이터의 위치를 뽑아내거나 반대로, 원하는데이터를 제외한 나머지데이터를 산출하거나,

또는 찾고자하는데이터만 변경하여 데이터를 만들어낼수도 있습니다.

 

가장중요한건 해당함수가 사용되는건 REPLCAE와 SUBSTITUE의 함수는 문자열의 모든 데이터를 변경하게됩니다.

하지만 작업을하다보면 모든 문자를 변경하는것이아니고 특정문자열만 또는 위의 예시 데이터가 "까나다" 라는 데이터가 중복되어 두번째에 해당할때, 이럴때 FIND함수가 곁들여져 사용되게됩니다.

 

그림으로 보겠습니다.

 

위의 데이터는 "까나다" 라는 데이터가 두번중복됩니다.

여기서 뒤에있는 "까나다" 의 데이터를 가공하거나 위치를 변경하거나 하고 싶을때 사용된다는 겁니다.

함수를 적용해보도록하겠습니다.

 

처번째 시작하는 까나다라는 데이터는 6번째 있기때문에 함수내 3번째 순서를 정하는 값에 7을 대입했습니다.

이때, 데이터가 많은경우 일일히 첫번째 있는값을 대입하여 입력할수는 없겠죠..?

아래와같이 함수를 조금더 응용해보도록 하겠습니다.

 

우선 아주단순하게 "까나다" 라는 데이터를 먼저 찾았습니다.

첫번째 까나다 데이터위치인 5라는 값이 반환되었습니다.

이 데이터는 곧 바로 다음사용될 FIND 함수의 순서값으로 사용할생각입니다.

=find("까나다",F5, find("까나다",F5,1)+1 )

위와같이 함수를 대입했을때, 풀이는 다음과같습니다.

첫번째 까나다라는 데이터의위치를 찾은뒤, 그다음 까나다라는 데이터를 또 찾습니다 하지만 순서는 첫번째에 있는 "까나다" 라는 데이터의 위치 +1 부터 까나다라는 데이터를 찾습니다. 따라서 두번째에 위치하고있는 "까나다" 라는 데이터를 찾은겁니다.

 

네 바로 그렇습니다.

 

Ctrl + F 단축키를 눌러 데이터를 찾는쪽이 더빠르기때문에 find의 경우 정말 자주사용되는 함수는 아닙니다. 

하지만, 제경우 예를들어 특정데이터가 두번째 중복되어있는 데이터를 없애고 데이터를 나열한다! 라고했을때

이런함수를 사용하곤했습니다.

 

빈번히 일어나는 일은 아니지만,, 그나마 이런 간단한 함수도 모르고계셨다면 일일 순수 노가다를 해야된다는..ㅠㅠ

그리고 find 함수는 다른함수와 응용하여 여러가지의 형태로 데이터를 추출, 변경 하여 데이터를 "정제" 하는데에 정말 많이 사용됩니다.

 

* 데이터정제 *

 - 원하는 데이터를 얻기위해 수집된 데이터를 기반으로 핵심적인 형태로 변환하는 작업을 말한다.

 

이는 데이터의 양이 적은경우에는 전혀 사용되지않습니다만

데이터의 양이 많은경우, 빅데이터를 다루시는경우 자주사용되므로 알아두시면 꼭 좋을것같아 포스팅 하게되었습니다.

반응형

댓글