문과생의 데이터 연습

[Google Spreadsheet] 문자 결합 & 추출 연습 본문

Google Spreadsheet/Google Spreadsheet Basic

[Google Spreadsheet] 문자 결합 & 추출 연습

의인은 믿음으로 2022. 7. 15. 19:14
728x90

Google Spread sheet 엑셀처럼 좋은 기능들이 많은데요 

 

오늘은 Google Spread sheet만 제공하는 함수를 써서 문자연습을 해보려고 합니다

                                                                                         GO GO  ~ 

 

데이터를 보면 상호명지점명을 합치려고 하는데 약간 문제가 있습니다. 😣 

 

데이터를 자세히 보면 

 

1️⃣ [상호명]에 애초에 지점이 앞뒤 포함되어 있는 것

2️⃣ [지점명]이 없는 것 

3️⃣ [상호명]과 [지점명]이 분리되어 있는 것(제일 정상적인...🙄)

4️⃣ [상호명]과 [지점명]에 동시에 지점이름이 있는 것(대체 왜이러는거죠?ㅋㅋㅋ😫) 

이런걸 합쳐버리면 중복이...

 

따라서 1 ~ 4가지를 고려하지많고 그냥 합쳐버리면 특히 4️⃣중복문제가 발생하고 (화곡옛길점화곡옛길점) 1️⃣ 같은 경우는 하필 지점명이 앞에 위치를 해서(가락중앙 파리바게트) 깔끔하게 [ex) 파리바게트 (가락중앙)] 이렇게 하면 좋을텐데 말이죠... 

 

따라서 깔끔하게 합치고 전처리도 하고 싶다면! 그냥 합치는 건 좀 찝찝합니다. 😤

 

음.. 여러가지 방법이 있을 것 같습니다만 저는! Google Spreadsheet에서만! 제공하는(Excel의 시대는 갔다?) 함수를 써서 해결해보려고 합니다. 

 

바로바로..!! 

 

REGEXREPLACE

함수입니다. 

REGEX 관련 함수는 총 3가지 정도가 있는데요 추후 더 포스팅 해보겠습니다. 

오늘 글은 REGEXREPLACE만 사용해보겠습니다! 

 

어이쿠..어렵네?

 

함수 설명을 보면 [텍스트]에 [정규표현식]을 넣고 [바꿀 문자]를 넣어줍니다. 

따라해봅시다 ㅋㅋ 

✅  =REGEXREPLACE(A2,"[뚜레쥬르]"," ")

해석: 만약 A2(CJ뚜레쥬르)에 뚜레쥬르 라는 문자가 있으면 " "(공백) 처리 해라 

[  ]는 정규표현식으로 [뚜레쥬르]는 뚜레쥬르 문자를 포함하라 라는 뜻입니다. 

 

-> 우리의 1차 목적은 일단 (1️⃣ [상호명]에 애초에 지점이 앞뒤에 포함되어 있는 것) 이 문제를 해결하는 것이기 때문입니다. 

 

그런데...

이 데이터 뚜레쥬르만 있는거 아니잖아요? 😅 

 

맞습니다 ㅠ 

 

따라서 우리는 네.. IF문을 써야합니다 

                                                                               (아 코드 길어진다고)

 

개인적으로 생각했던 문구는 이겁니다.

해석: 만약 셀에 [뚜레쥬르]가 있으면 [뚜레쥬르]문자를 공백처리(그래야 지점만 나오니깐) 
         만약 셀에 [파리바게뜨] 가 있으면 [파리바게뜨]문자를 공백처리 
=IF(I2 = "*뚜레쥬르*",REGEXREPLACE(I2,"[뚜레쥬르]"," "),
 If(I2 = "*파리바게뜨*",REGEXREPLACE(I2,"[파리바게뜨]"," ")," "))

이런식으로 와일드카드를 써서 해결하는 겁니다. 

 

문제는 IF문이 와일드카드 사용이 불가능하더라고요?ㅋㅋㅋ 🤣 맙소사 

 

그래서 머리를 굴려서...

=FIND("뚜레쥬르",A2)

Find 함수를 쓰기로 했습니다. 이러면 이제 그 문자가 위치한 숫자로 나옵니다. 

그리고 이 숫자를 논리형식에 따라서 문자를 처리하도록 IF문을 설정하면 될 것 같았습니다. 

=if(ISNUMBER(FIND("파리바게뜨",A2)) = True, 
    REGEXREPLACE(A2,"[파리바게뜨]"," "),
    REGEXREPLACE(A2,"[뚜레쥬르]"," "))

해석: 만약 A2셀에 파리바게트 숫자가 존재(True)하면 [파리바게뜨] 문자를 공백으로 아니면 [뚜레쥬르]문자를 공백으로 

깔끔하게 잘 나왔습니다. 

 

보시면 IF문을 썼을 때 뚜레쥬르든 파리바게뜨든 지점이 잘 분리되었습니다.  공백은 3️⃣ [상호명]과 [지점명]이 분리되어 있는 것(제일 정상적인...🙄) 3번 부분이기 때문에 공백으로 나오는 겁니다. 

 

지점명만 분리를 했으니 이번에는 상호명만 뽑아봅시다. 

=if(ISNUMBER(FIND("파리바게뜨",A3)) = True, 
    REGEXREPLACE(A3,"[^파리바게뜨]"," "),
    REGEXREPLACE(A3,"[^뚜레쥬르]"," "))

똑같이 적되 정규표현식 ^만 추가해주면 상호명(파리바게트, 뚜레쥬르)만 추출됩니다. 정규표현식 ^은 아니다 라는 뜻입니다. 

 

잘 나왔습니다. 

 

이제 기존의 지점명이랑 추출한 지점명을 합치면 되는데! 

합칠 때  4️⃣중복문제를 해결해야 합니다. (화곡옛길점화곡옛길점) 

 

=IF(B2 & C2 = C2,C2,
 if(B2 & C2 = B2,B2,
 if(B2 & C2 = B2 & C2, B2, 
 if(B2 & C2 <> B2 & C2,  B2 & C2))))

이런 IF문을 써주면 된는데 

 

해석하자면 

 

만약 기존의 지점명추출한 지점명합친게 추출한 지점명과 같다면 추출한 지점명을 

만약 기존의 지점명 추출한 지점명합친게 기존의 지점명과 같다면 기존의 지점명

만약 기존의 지점명 추출한 지점명 합친게 기존의 지점명과 추출한 지점명을 합친거랑 같다면 기존의  기존의 지점명

만약 기존의 지점명과 추출한 지점명을 합친게 기존의 지점명과 추출한 지점명을 합친거랑 같지 않다면 합친거 그대로

 

이렇게 하면 반복되는 문자를 없앨 수 있고 지점명이 아예 없는 공백끼리도 그대로 공백으로 나옵니다. 😋

보시면 반복되지 않고 하나만 잘 나옵니다

 

=F2 & " " & "(" & E2 & ")"

마지막으로 진짜 잘 합쳐주면 

 

잘 나옵니다 

 

진짜 힘드네요 ㅋㅋㅋ 

 

이렇게 해서 구글 스프레드 시트로 문자 추출 합치기을 실습해봤습니다~

728x90
Comments