소프트웨어 엑셀에서 정규식 사용, 내장 함수 추가
2019.08.26 23:57
하단에 내장함수로만 해결한 내용을 추가하였습니다. 혹시 오류있으면 댓글로 남겨주세요~.
안녕하세요. 질문 https://windowsforum.kr/12070953 에 어울릴 것 같아서 간단히 정리하여 보았습니다.
[참고하실만한 내용]
숫자와 영문이 혼합되어 있는 셀에서 영문만 골라내는 수식과 사용자정의함수; https://dorobo.tk/492
구글에서 "엑셀 정규식"으로 검색하면 자료가 많네요;
- https://www.google.co.kr/search?q=%EC%97%91%EC%85%80+%EC%A0%95%EA%B7%9C%EC%8B%9D
[설명]
사용자 정의 함수로 정규식을 사용할 수 있게 합니다. 엑셀파일 열어서 alt + F11 누르면 함수를 볼 수 있습니다.
1. FindENG 사용자 함수; 질문에 맞게 영문 시작 문자를 찾아서 반환합니다.
- FIND(FindENG(A2),A2) 함수로 위치를 반환합니다.
2. RegExpFind 사용자 함수; 정규식 패턴을 직접 입력하여 문자를 찾아서 반환합니다.
- FIND(RegExpFind("[a-z]",A4),A4) 1번과 같은 결과를 냅니다.
3. 2번의 예로써 FIND(RegExpFind("[a-z]+",A6),A6) 은 연속된 영어 문자열을 찾아서 반환합니다.
- FIND(RegExpFind("[a-z]+",A6),A6) 단어의 시작 위치를 반환합니다.
4. 한글 단어 찾는 예제입니다.
언젠가 해보고 싶었던 것이라 찾아보았습니다. ^^
PS. 숫자 아닌 문자 시작 위치를 찾는 것은 다음과 같이 내장 함수로만 가능합니다. 참고 하세요~.
=MATCH(TRUE,ISERROR(VALUE(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1))),0)
입력할때 ctrl+shift+enter 하여서 배열 수식으로 입력해야 합니다. 그럼 mid 함수로 낱자로 모두 분리하여
value 함수로 숫자가 아닌 위치에서 에러가 나고 그 에러 위치를 match 함수가 잡아냅니다.
출처; https://www.extendoffice.com/documents/excel/3790-excel-find-position-of-first-letter-in-string.html
주말에 시간되어 내장 함수로만 영문 위치를 찾도록 하여 보았습니다. 원 질문자님이 보실지 모르겠지만 도움되셨으면 합니다.
=MATCH(3,ERROR.TYPE((INDIRECT(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)&"1"))),0)
위 함수중 A1 부분 2곳만 문자열이 있는 셀주소로 고치고 배열함수로 입력하세요. ctrl + shift + enter
댓글 [6]
-
코리아센 2019.08.27 09:54
-
지후빠 2019.08.27 13:15
단순 오타인 A1 -> A2 로 수정했습니다.
위 에러는 사용자 정의 함수를 잘 못 호출해서 생기는 오류입니다.
사용자 정의 함수는 해당 엑셀 파일이 열린 상태에서 사용가능합니다.
"함수 마법사 -> 사용자 정의 함수"에서 선택하세요.
alt+F11 누르면 모듈에 다음과 같은 코드가 들어 있습니다.
새로운 파일에 적용시에도 모듈을 만들어 다음 코드를 추가하시면 됩니다.
Option Explicit
Function RegExpFind(Pttrn, inData)
With CreateObject("Vbscript.RegExp")
.IgnoreCase = True
.Pattern = Pttrn
If .Test(inData) Then
RegExpFind = .Execute(inData)(0)
Else
RegExpFind = 0
End If
End With
End Function
Function FindENG(inData)
With CreateObject("Vbscript.RegExp")
.IgnoreCase = True
.Pattern = "[a-z]"
If .Test(inData) Then
FindENG = .Execute(inData)(0)
Else
FindENG = 0
End If
End With
End Function
-
Nic네임 2019.08.28 15:24
엑셀 함수에서 정규식이 먹히는지 처음 알았네요. ㅎ
-
kungms 2019.08.28 17:47
저도 엑셀에서 정규식이 되는 걸 덕분에 처음 알게 됐습니다. 좋은 정보 감사합니다.
-
에메랄드캐슬 2019.09.06 14:22
원질문 질문자입니다
감사합니다
배열수식은 일단 먼저 가져다 쓰고 분석해봐야겠네요 함수보니 눈돌아가네요 ^^
-
지후빠 2019.09.21 22:05
배열함수는 위쪽은 숫자 아닌 곳에서 에러를 내고 그 위치를 찾는 것이고,
아래는 알파벳이 참조 주소로 쓰이는 것에 착안하여 셀주소 지정에서 에러 형태로 위치를 찾습니다. ^^;
번호 | 제목 | 글쓴이 | 조회 | 추천 | 등록일 |
---|---|---|---|---|---|
[공지] | 강좌 작성간 참고해주세요 | gooddew | - | - | - |
4468 | 윈 도 우| PrincePE_V18.5 [164] |
|
204975 | 99 | 02-02 |
4467 | 윈 도 우| 윈도우7 Windows 정품 인증 기술 업데이트로 인증하기 [21] |
|
111616 | 0 | 02-27 |
4466 | 윈 도 우| 비스타(VISTA) 인증 후 무한 리부팅 현상 해결법 [1] | gooddew | 98123 | 0 | 06-17 |
4465 | 윈 도 우| 바이오스 안에 OEM SLIC 가 내장되었는지 확인하는 방법 [5] | gooddew | 84994 | 0 | 06-17 |
4464 | 윈 도 우| UEFI-모드 부팅 [설치 USB] 만들기 [8] |
|
76992 | 0 | 09-07 |
4463 | A.I 사용법 무작정 따라하기 (스샷 첨부) - 마지막 수정 [67] | PoLaRiS | 74985 | 6 | 09-10 |
4462 | 하드웨어| 유튜브 버퍼링 완전해결2 (hosts파일 사용, DNS변경 x, SKB... [44] | hsk | 63891 | 6 | 05-06 |
4461 | 윈 도 우| 비스타/세븐 DVD-4cd 분할 가이드 v2 |
|
63408 | 0 | 01-21 |
4460 | 윈 도 우| Usb를 이용한 XP설치 [21] | 고맙쥐 | 62263 | 11 | 10-23 |
4459 | 윈 도 우| 비스타의 숨겨진 부팅로고를 보자 [5] |
|
60477 | 0 | 05-26 |
4458 | 윈 도 우| 소소한팁..Windows 로그온 사진이 작을때.. |
|
59252 | 0 | 07-12 |
4457 | 윈 도 우| God Mode 만들기 [5] | 적광 | 55431 | 0 | 12-26 |
4456 | 기 타| Superfetch 기능 사용중단하기 [13] | gooddew | 55293 | 1 | 09-16 |
4455 | 윈 도 우| Win7_8 PE/수정/추가/바탕화면/교체하기 [13] | 까꾸리 | 54248 | 17 | 05-18 |
4454 | Windows 7 과 XP 프린터와 파일 서로 공유하기 [5] | sp2 | 52848 | 3 | 08-22 |
4453 | 윈 도 우| 윈도우8 다국어 언어팩 설치 방법(영문 기준) [6] | chkid | 51175 | 5 | 11-11 |
4452 | 윈 도 우| 삼성 노트북의 복원솔루션 5 를 이용하여 SSD에 복원영역 ... [13] | 울랄라백수 | 48960 | 4 | 06-17 |
4451 | 소프트웨어| USB키보드인채로 PLOP 사용하기 (USB 2.0 MODE + PE) [19] | hazuki | 48383 | 0 | 01-19 |
4450 | 윈 도 우| 만능고스트 사용후 hal.dll 오류로 부터 벗어나기 [2] |
|
47761 | 0 | 04-29 |
엑셀 2013에서 작동 불
첨부파일은 이상없네요
첨부파일 이미지 A1 이 아니라 A2 인것 같은데요~