MS Excel에서 파일 확장자를 얻는 방법?


10

파일 경로가 포함 된 열이 있습니다. 경로의 확장자 만 포함하는 다른 열을 만들고 싶습니다. Microsoft Excel에서 어떻게해야합니까?


1
Google 스프레드 시트에서이 작업을 수행하는 방법을 찾는 사람이라면 누구나 사용할 수 있습니다.REGEXEXTRACT(A1, "\.([^.]*)$")
Joe

답변:


20
=REPLACE(RIGHT(A1,5),1,SEARCH(".",RIGHT(A1,5)),"")

이 수식은 파일 이름에 둘 이상의 점이있는 경우 유용합니다


2
이는 4 자 이하의 파일 확장자에만 적용됩니다.
Tim Robinson

1
5를 6으로 바꾸면됩니다
악마의 옹호자

아니, 문제가 발생합니다.
악마의 옹호자

4

다른 대답 에서 가져 왔습니다 (공백이 아닌 점을 찾도록 변경됨).

=RIGHT(A1,LEN(A1)-FIND("|",SUBSTITUTE(A1,".","|",LEN(A1)-LEN(SUBSTITUTE(A1,".","")))))

치료를한다! 빠른 복사 / 붙여 넣기 솔루션에 감사드립니다. 파일 이름에 전체 경로와 네임 스페이스 표기법이있는 2 ~ 7 자의 파일 확장자를 가진 파일 확장자에 사용됩니다.
Zephan Schroeder

2

Cyril 응답은 확장명이 3 자 또는 4 자이고 .파일 이름에 (마침표) 가있을 때 user273281 응답이 작동하지 않은 경우에만 작동합니다 .

그래서 나는 이것을 달성하는 새로운 방법을 찾았다.

=TRIM(RIGHT(SUBSTITUTE(TRIM(A1), ".", REPT(" ", LEN(TRIM(A1)))), LEN(TRIM(A1))))

참고 : 파일 이름이 인 경우 user273281의 aswer가 작동하지 않았습니다 1. Macro based file.zip. 반환. Macro based file.zip


0

적절한 형식의 확장이 있다고 가정하면 다음과 같이 빠르게 할 수 있습니다 =RIGHT(A1,3). 보다 강력한 솔루션은 가장 오른쪽의 색인을 찾은 .다음 나머지 문자를 추출합니다.


내가 준 답변 인 질문을 읽습니다.
VerGuy

여기서 가장 중요한 질문은 바로 "."을 찾는 방법입니다. Excel에서.
petersohn

확장명은 항상 3 자로되어 있지 않습니다. @ pertersohn : 그래, 맞아.
Nam G VU

0

나는 이것을 보았습니다. 이것은 내가 본 가장 간단한 솔루션입니다 ...

=SUBSTITUTE(RIGHT(SUBSTITUTE(A5,".",REPT(".",50)),50),".","")

마지막 마침표 이후의 모든 문자를 50 개의 마침표 또는 원하는 숫자로 구분하여 작동합니다. 그런 다음 확장 문자와 마침표 만 선택한다는 것을 알고 가장 오른쪽에있는 50자를 선택할 수 있습니다. 마침표를 대치하면 갈 준비가되었습니다.

출처

대안 : XML 파싱


일반적으로 문자열 구문 분석에 사용하는 깔끔한 트릭은 FilterXML()함수 를 활용하는 것입니다 (Excel 2013 이상). 기본 전략은 Substitute()xml 문자열의 요소에서 구문 분석되는 방식으로 문자열을 형식화하는 데 사용 되며 xpath 구문을 사용하여 구문 분석 된 요소를 편리하게 탐색 할 수 있습니다 . 이 전략을 사용하면 확장을 얻는 것이 다음과 같습니다.

=FILTERXML("<A><p>" & SUBSTITUTE(A1,".","</p><p>.")&"</p></A>","//p[last()]")

xml에 익숙하지 않다면 협박하는 것처럼 보일 수 있지만 진행 상황을 파악할 수 있다면 len (), replacement (), 더 좋은 이유 중 하나는 셀 참조가 하나뿐이기 때문입니다.

불법 문자

이 경로에서가 아니라 XML에서 허용되는 두 개의 문자는 다음과 같습니다 &'

위의 방정식은 이러한 문자가 없으면 작동합니다. 그렇지 않으면 다음과 같이 처리해야합니다.

=FILTERXML("<A><p>" & SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(J8,"'",""),"&",""),".","</p><p>.")&"</p></A>","//p[last()]")

다음과 같은 불쾌한 파일 경로가 있다고 가정하십시오.

C : \ Folder1 \ Folder2 \ (ugly characters! @ # $ % ^ () _ + = {} ;;,`) \ two.dots.LongExt

1.) Substitution()부분은 이것을 다음과 같은 XML 문자열로 변환합니다 ...

<A>
    <p>
        C:\Folder1\Folder2\(ugly characters !@#$%^()_+={};;,`)\two
    </p>
    <p>
        .dots
    </p>
    <p>
        .txt
    </p>
</A>

2.) 이와 같이 포맷되면 pxpath 구문을 사용하여 마지막 요소 를 선택하는 것이 쉽지 //p[last()]않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.