Extraer un número de celular de una cadena de texto (celda)

Por tomarte el tiempo de leer esta pregunta. Tengo un rango de celdas, las cuales pueden contener o no un número de celular integrado por 10 dígitos (Ejemplo: 3152243252), en cualquier parte del texto.
Cada celda pude contener entre 10 y 500 caracteres; sin embargo necesito una formula que me permita extraer el número de celular (exactamente 10 dígitos), o en caso contrario me indique si no lo contiene. Si es de ayuda, todos los números de celular inician por el número 3 y en una celda puede haber más de un número.
Ejemplo de datos (Posibles variables):
A1: En este momento el cliente se encuentra en el celular 3124541388.
A2: Celular 3218542211, se informa que no es posible acceder al servicio.
A3: El cliente indica en el número 3224567893, que no tiene tiempo de atendernos.
A4: Números teléfono fijo 2438521, número de celular 3158683931.
A5: Cliente actualmente no registra celular en la base de datos.
A6: Los números del cliente actualmente son 3214428625 y 3148855321.
A7: Cliente registra celular incompleto: 311548212
A8: El número del teléfono fijo es 4428625.
Resultado:
B1: 3124541388
B2: 3218542211
B3: 3224567893
B4: 3158683931
B5: Vacío (No tiene número de celular)
B6: 3214428625
B7: Vacío ""(Celular incompleto)
B8: Vacío ""(no trae número de celular)

1 respuesta

Respuesta
1

Ya volví, te anexo la macro
Instrucciones
1. Abre tu hoja de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona ALt + F11
3. En el menú elige Insertar / Módulo
4. En el panel del lado derecho copia la macro
5. Para ejecutarla presiona F5
'***Macro, extrae números de celular de una cadena
Sub celular()
'Por.Dam
ufila = Range("A" & Rows.Count).End(xlUp).Row
cuentacel = 0
Range("B2:B" & ufila).ClearContents
For i = 2 To ufila
largo = Len(Cells(i, 1))
For j = 1 To largo
tres = Mid(Cells(i, 1), j, 1)
If tres = 3 Then
inicio = j
num = tres
contador = 1
For k = j + 1 To largo
signum = Mid(Cells(i, 1), k, 1)
If Not IsNumeric(signum) Then
j = k
Exit For
Else
contador = contador + 1
num = num & signum
If contador = 10 Then
signum = Mid(Cells(i, 1), k + 1, 1)
If Not IsNumeric(signum) Then
If cuentacel = 0 Then
Cells(i, 2) = num
Else
Cells(i, 2) = Cells(i, 2) & " y " & num
End If
cuentacel = cuentacel + 1
j = k
Exit For
End If
End If
End If
Next k
End If
Next j
If cuentacel = 0 Then
Cells(i, 2) = "No tiene celular"
End If
cuentacel = 0
Next i
End Sub
'***Macro
La macro tiene lo siguiente:
1. No considera números que no empiecen con 3
2. No considera números menores a 10
3. No considera números mayores a 10
4. Considera varios números y los pone en la columna B
5. Si no tiene número, pone la leyenda "No tiene celular"
Saludos. Dam

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas