일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- #패스트캠퍼스 #내일배움카드취업 #국비지원교육 #K디지털기초역량훈련 # 데이터시각화강의
- #코멘토 #코멘토실무PT #실무PT후기 #Google BigQuery
- #코멘토 #코멘토실무PT #실무PT후기 #Google BigQuery # 전환율
- #코멘토 #코멘토실무PT #실무PT후기 #Google BigQuery # 자동화
- #코멘토 #코멘토실무PT #실무PT후기 #Google BigQuery # 대시보드
문과생의 데이터 연습
[Google Spreadsheet] 문자 결합 & 추출 연습 본문
[Google Spreadsheet] 문자 결합 & 추출 연습
의인은 믿음으로 2022. 7. 15. 19:14Google 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 & ")"
마지막으로 진짜 잘 합쳐주면
잘 나옵니다
진짜 힘드네요 ㅋㅋㅋ
이렇게 해서 구글 스프레드 시트로 문자 추출 합치기을 실습해봤습니다~
