Excel에서 URL 매개변수 제거

Excel에서 URL 매개변수 제거

다음 형식의 URL이 있습니다.

http://www.example.com/page.html?param1=asdf&param2=asdfg&param3=asdfgh

URL에서 param2 또는 3의 값을 추출하고 URL에서 해당 특정 매개변수를 제거하고 싶습니다. Excel을 사용하여 이 작업을 수행하는 방법에 대한 아이디어가 있습니까?

답변1

LEN()저는 Excel에 URL 처리 기능이 내장되어 있다고 생각하지 않습니다. 따라서 , MID()및 와 같은 일반 문자열 조작 기능을 창의적으로 결합해야 합니다 SEARCH().

URL이 셀에 있고 A1값을 추출하려는 매개변수가 셀에 있다고 가정 B1하고 다음 공식을 사용해 보세요.

주어진 매개변수의 값을 얻으려면:

=IFERROR(MID(A1; SEARCH(B1 & "="; A1) + LEN(B1) + 1; IFERROR(SEARCH("&"; A1; SEARCH(B1 & "="; A1)) - SEARCH(B1 & "="; A1) - LEN(B1) - 1; LEN(A1))); "")

URL에서 매개변수와 해당 값을 제거하려면 다음 안내를 따르세요.

=IFERROR(REPLACE(A1; SEARCH(B1 & "="; A1); IFERROR(SEARCH("&"; A1; SEARCH(B1 & "="; A1)) - SEARCH(B1 & "="; A1) + 1; LEN(A1)); ""); A1)

참고: 지역 설정에 따라 수식의 모든 세미콜론을 쉼표로 바꿔야 할 수도 있습니다.


상해

주어진 매개변수의 값을 얻으려면 먼저 URL 내에서 해당 매개변수를 찾아야 합니다.

=SEARCH(B1 & "="; A1)

그만큼SEARCH()함수는 두 번째 매개변수(URL) 내에서 첫 번째 매개변수(주어진 매개변수)를 찾고 해당 매개변수가 발생한 시작 위치의 번호를 반환합니다. 올바른 것을 검색하고 있는지 확인하기 위해 매개변수 이름에 등호를 추가합니다. 그렇지 않으면 을 검색하면 예 를 들어 URL의 앞부분에서 param1해당 위치가 반환될 수 있습니다 .param10

매개변수를 찾았으면 매개변수 값이 시작되는 곳부터 시작하여 다음 앰퍼샌드 바로 앞에서 끝나는 URL 부분(또는 하위 문자열)을 반환해야 합니다. 그러기 위해 우리는MID()이 함수는 세 가지 매개변수, 즉 하위 문자열을 반환할 문자열, 시작할 위치, 반환할 문자 수를 사용합니다.

=MID(A1; SEARCH(B1 & "="; A1); LEN(A1))

우리는 또한LEN()함수는 단순히 주어진 문자열(이 경우 URL)의 길이를 반환합니다. 이는 현재로서는 단지 자리 표시자일 뿐이지만(세 번째 매개변수는 Excel 2010까지는 선택 사항이 아니었습니다) 나중에 마지막 매개변수의 값을 원할 때 유용하게 사용될 것입니다.

먼저 매개변수 자체의 시작 부분에서 해당 값이 시작되는 위치로 시작 위치를 이동해야 합니다. 이를 위해 문자열 내의 매개변수 위치에 해당 길이와 1(부호용 =)을 추가합니다.

=MID(A1; SEARCH(B1 & "="; A1) + LEN(B1) + 1; LEN(A1))

더 좋은 점은 반환된 값이 올바른 위치에서 시작된다는 것입니다. 올바른 위치에서 멈추려면 다음 매개변수가 시작되는 위치를 나타내는 다음 앰퍼샌드 기호를 찾아야 합니다.

=SEARCH("&"; A1; SEARCH(B1 & "="; A1))

우리는 SEARCH()함수를 다시 사용하고 있습니다. 이번에는 검색을 시작할 위치를 지정하는 세 번째 매개변수를 추가합니다. 우리는 주어진 매개변수 앞의 앰퍼샌드에는 관심이 없고 그 뒤의 앰퍼샌드에만 관심이 있습니다.

위의 내용에서 매개변수 값의 길이를 구하려면 매개변수가 시작되는 위치와 매개변수의 길이를 빼고 다시 부호 1을 빼야 합니다 =.

=SEARCH("&"; A1; SEARCH(B1 & "="; A1)) - SEARCH(B1 & "="; A1) - LEN(B1) - 1

URL 끝에 앰퍼샌드가 없기 때문에 이는 마지막 매개변수를 제외한 모든 매개변수에 적용됩니다. 그런 경우에는 다음을 사용할 수 있습니다.IFERROR()Excel에서 제공하는 오류를 감지하고 대신 고정된 숫자를 반환하는 함수입니다. 좋은 선택은 다음과 같습니다 LEN(A1). 문자열의 길이는 해당 하위 문자열의 길이보다 길어야 하며, 이를 세 번째 인수로 에 전달하면 MID()지정된 위치에서 끝까지의 모든 문자를 반환합니다. 문자열은 우리에게 꼭 필요한 것입니다.

=IFERROR(SEARCH("&"; A1; SEARCH(B1 & "="; A1)) - SEARCH(B1 & "="; A1) - LEN(B1) - 1; LEN(A1))

이를 위의 식과 결합하면 다음과 같은 공식을 얻게 됩니다.

=MID(A1; SEARCH(B1 & "="; A1) + LEN(B1) + 1; IFERROR(SEARCH("&"; A1; SEARCH(B1 & "="; A1)) - SEARCH(B1 & "="; A1) - LEN(B1) - 1; LEN(A1)))

마지막 사항: B1URL에 존재하지 않는 매개변수가 포함된 경우 위의 명령은 #VALUE오류를 반환합니다. 이러한 경우 빈 문자열(또는 다른 적절한 값)을 반환하려면 전체 내용을 다른 항목으로 감싸십시오 IFERROR().

=IFERROR(MID(A1; SEARCH(B1 & "="; A1) + LEN(B1) + 1; IFERROR(SEARCH("&"; A1; SEARCH(B1 & "="; A1)) - SEARCH(B1 & "="; A1) - LEN(B1) - 1; LEN(A1))); "")

URL에서 매개변수와 해당 값을 제거하는 공식은 다음을 사용하는 것과 매우 유사합니다.REPLACE()함수는 URL의 특정 하위 문자열(위와 거의 같은 방식으로 정의됨)을 빈 문자열로 바꾸는 함수입니다.

SEARCH(B1 & "="; A1)일반적으로 사용되는 블록(예 : )을 자체 열로 이동하고 수식을 여러 번 입력하는 대신 해당 셀을 참조하면 수식을 약간 간소화할 수 있습니다 . 그런 다음 해당 추가 열을 보기에서 숨길 수 있습니다.

관련 정보