Separando una URL (Microsoft Excel)
Jordan tiene la necesidad de dividir una URL en sus componentes. Si la URL completa (http://www.xyz.com/business) está en la columna A, le gustaría tener una forma de tener el dominio principal (xyz o xyz.com) en la columna B y la ruta (negocio) en la columna C.
Hay varias formas de resolver este problema. Si solo necesita hacer esto una o dos veces, podría ser más fácil usar la herramienta Texto a columnas, disponible en la pestaña Datos de la cinta. Cuando especifique cómo desea que la herramienta separe las cadenas, indique que desea que use la barra (/) como delimitador. Dependiendo de la forma en que se junten las URL originales, esto puede requerir un poco de «limpieza»
una vez terminada la herramienta, pero es rápida y fácil.
Si hace esto con más frecuencia, entonces podría beneficiarse del uso de una fórmula para manipular la URL. La primera tarea es extraer el dominio de la URL, pero esto es un poco más complicado de lo que parece. Por ejemplo, la URL puede comenzar con cualquier número de especificadores de protocolo (como http: //, https: //, ftp: //, etc.) o puede que no comience con un especificador de protocolo en absoluto. Además, es posible que desee eliminar el «www».
nomenclatura, ya que algunas personas la consideran extraña. Para averiguar dónde comienza el dominio «real», puede usar esta fórmula en la columna B:
=IFERROR(FIND("www.",$A1)+4,IFERROR(FIND("://",$A1,1)+3,1))
Qué hace para devolver la posición del primer carácter después de «www.», Si está disponible. Si no está presente, devuelve la posición del primer carácter después de «: //», si está presente. Si no aparece, se devuelve el número 1, ya que la URL no contiene ningún prefijo de protocolo o www.
Con ese valor en la columna B, puede comenzar a extraer las partes que desee. Lo siguiente, colocado en la columna C, devolverá el dominio, como ya se describió. Básicamente, devuelve todo, desde la posición del carácter que se muestra en la columna B hasta la siguiente barra (/).
=MID(A1,B1,IFERROR(FIND("/",A1,B1)-B1,LEN(A1))
Si la URL original incluía «www.xyz.com», la fórmula devuelve «xyz.com». Si contenía un subdominio diferente a «www»
(como «research.xyz.com»), se devuelve el dominio completo, incluido el subdominio. La función IFERROR se incluye en caso de que no haya una barra (/) después del nombre de dominio. (La función ENCONTRAR devuelve un error #VALOR si no puede encontrar el elemento que está buscando).
Para seleccionar la ruta después del dominio, puede utilizar la siguiente fórmula en la columna D:
=IFERROR(MID(A1,FIND("/",A1,B1)+1,LEN(A1)),"")
La fórmula devuelve todo después de la primera barra (/) que aparece después del nombre de dominio. Si no hay una barra después del nombre de dominio, no devuelve nada. (Esto es, nuevamente, gracias al uso de la función IFERROR.)
La clave para usar las fórmulas anteriores, nuevamente, es la columna auxiliar en la columna B. Si quisiera eliminar la necesidad de la columna B, necesitaría reemplazar en las otras dos fórmulas todas las instancias de B1 con la fórmula (sin el signo igual) que pertenece a B1. Eso, por supuesto, haría que las otras dos fórmulas fueran bastante largas, especialmente la indicada para la columna C.
Si lo desea, puede crear una macro que esencialmente haga lo mismo, sin la necesidad de una columna auxiliar. El siguiente ejemplo espera que haga una selección y luego extrae las partes de la URL de las celdas y las coloca en las dos columnas a la derecha de la selección.
Sub GetURLParts() Dim c As Range Dim sRaw As String Dim J As Integer For Each c In Selection sRaw = c.Text J = InStr(sRaw, "://") If J > 0 Then sRaw = Mid(sRaw, J + 3) If LCase(Left(sRaw, 4)) = "www." Then sRaw = Mid(sRaw, 5) End If J = InStr(sRaw, "/") If J > 0 Then c.Offset(0, 1) = Left(sRaw, J - 1) c.Offset(0, 2) = Mid(sRaw, J + 1) Else c.Offset(0, 1) = sRaw c.Offset(0, 2) = "" End If Next c End Sub
_Nota: _
Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.
link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador]
.
ExcelTips es su fuente de formación rentable en Microsoft Excel.
Este consejo (13320) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.