소프트웨어 엑셀에서 정규식 사용, 내장 함수 추가
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 | - | - | - |
4469 | 호환이 안된다는 드라이버 강제로 적용하는 방법 [1] | ASUS | 13188 | 0 | 10-13 |
4468 | ASUS,LG....자동인증 씨디 만들기 [4] | 왕대인 | 14833 | 0 | 10-13 |
4467 | 구매시 XP가 기본 장착된 모델인 경우 개조안하고 VISTA O... [5] |
|
9787 | 0 | 10-13 |
4466 | 구매시 XP가 기본 장착된 모델인 경우 VISTA OEM으로 [6] |
|
11449 | 0 | 10-13 |
4465 | 기 타| 종이로 시디케이스 만들기(두가지) [5] | gooddew | 11680 | 0 | 10-14 |
4464 | VISTA의 BCDEDIT로 간단히 XP 멀티부팅정보 추가하기 [1] |
|
11481 | 0 | 10-16 |
4463 | 미디어플레이어 64비트 설정 방법 [4] | 히로 | 10667 | 0 | 10-18 |
4462 | 탐색기에서 파일이동 복사하기 메뉴만들기 [2] | gg | 10217 | 0 | 10-27 |
4461 | 윈도탐색기에서 보기옵션 고정하기 [3] | gg | 10370 | 0 | 10-27 |
4460 | Xp 가 탑제된 컴의 Vista 인증원리 [2] |
|
12284 | 0 | 10-27 |
4459 | [Vista] 레디부스트 지원 안되는 USB 사용방법!? [5] | 김용환 | 11107 | 0 | 10-30 |
4458 | 비스타 RC 버전 인증기 [4] | 묵은지 | 12086 | 0 | 10-31 |
4457 | ReadyBoost, Qsoft의 RamDisk로 "체험"하기 [1] |
|
13852 | 0 | 11-04 |
4456 | 즐겨찾기 목록 폴더 자동 원상복구 [1] | 퍼온이 | 10365 | 0 | 11-04 |
4455 | 지포스 최신 드라이버 설치시 카트라이더 문제점 해결.. [1] |
|
9584 | 0 | 11-13 |
4454 | 기 타| JRSKD24.SYS 손상에 의한 부팅불가시 복구법..!! [4] | gooddew | 13979 | 0 | 11-14 |
4453 | 기 타| 비스타 버전별 기능 [6] | gooddew | 10126 | 0 | 11-17 |
4452 | 비스타 서팩1 설치 안될때의 설치방법 제안! [5] | 테스트맨 | 9393 | 0 | 11-17 |
4451 | sp1 rc v658 삭제 [4] |
|
7946 | 0 | 11-18 |
4450 | 비스타 SP1 v658설치 [4] | 비스타유져 | 8846 | 0 | 11-18 |
엑셀 2013에서 작동 불
첨부파일은 이상없네요
첨부파일 이미지 A1 이 아니라 A2 인것 같은데요~