Identificar celda que contiene dato alfanumérico

¿Cómo puedo identificar si una celda contiene un dato alfanumérico?. SIN VBA.

3 Respuestas

Respuesta
2

Si Excel no tiene función para evaluar lo que necesitas... podrías crear tu propia función.

Necesitas el Editor para colocar el siguiente código en un módulo. Y luego en la hoja será como una fórmula cualquiera de las de Excel.

Function soloAlfa(celda)
'x Elsamatilde
esNum = 0: esLet = 0
'largo del texto en celda
largo = Len(celda)
'se evalúa el tipo de cada caracter
For i = 1 To largo
    If IsNumeric(Mid(celda, i, 1)) Then
        esNum = 1
    Else
        esLet = 1
    End If
Next i
'si hubo números y textos se devuelve ALFA, sino vacío.
If esNum > 0 And esLet > 0 Then
    soloAlfa = "ALFA"
Else
    soloAlfa = ""
End If
End Function

Pero si no quieres agregar código a tu libro (y que siga siendo del tipo xlsx) entonces podrías crear un complemento. Estos son los pasos:

1-Abrir un libro en blanco, insertar un módulo y copiar el código.

2-Guardar el libro como Complemento (xlam o .xla en versiones anterioresal 2007). Recordar la carpeta donde se guardó.

3- Abrir cualquier Excel y desde menu de Opciones, Complementos seguir las imágenes:

Una vez instalado el complemento podrás utilizar esta función en cualquier libro Excel.

PD) Si la función se encuentra en un módulo del mismo libro como en primera imagen, también se puede utilizar el formato condicional con fórmulas:

¡Gracias! Mil gracias por la respuesta. Sabia que debía haber una forma en VBA y seria más fácil. Solo que alguien me lo planteo para realizarlo sin código y no pude. Mil gracias.

En el video 21 de mi canal trato el tema de las funciones personales.

PD) Te recuerdo que hay 2 opciones para valorar respuestas: Excelente y Buena ;(

Sdos!

Respuesta
2

Mezclando 2 funciones en una fórmula como se ve en la imagen

Función ESNUMERO para identificar el numero y función SI para que aparezca lo que tu quieras

=SI(B6<>"";SI(ESNUMERO(B6);"Excelente";"Va Mal");"")

El SI que esta por fuera  es para que si en la celda no hay dato que quede en blanco.

También puedes usar solo la función ESNUMERO, pero te aparecerá VERDADERO O FALSO

Si deseas que se pinte la misma celda que tiene numero puedes usar formato condicional

  • Seleccionas un rango ejemplo A1:G35
  • vas a Formato Condicional/Administrar Reglas..
  • Elige "Nueva regla..
  • Vas a la ultima opción que dice:

"Utilizar una fórmula que determine las celdas para aplicar formato"

  • Dentro del campo que aparece escribes la siguiente fórmula:
=ESNUMERO(A1:G30) 

' Este rango varia dependiendo donde quieres aplicar el formato

  • Selecciona debajo el formato que quieras darle, y le das click a aceptar.(Ejemplo fondo azul)

Listo ya tienes tu rango (A1:A30) configurado, ahora si alguna de las celdas en ese rango contienen numero se pintaran de azul .

Perdón, los rangos son un ejemplo, porque te puse A1:G35 y luego A1:G30... los rangos deben ser iguales sino una parte quedara sin efecto al formato condicional

Espero se entienda =)

Gracias pero no es lo que necesito. Necesito que una celda que tenga el valor por ejemplo

A123EDF45, sea identificada como alfanumérica. No sirve usar ESNUMERO porque esta función me identifica solo números y tampoco sirve utilizar ESTEXTO porque esta función me identifica, tanto solo texto solo como un valor alfanumérico (ambos). Necesito una fórmula que me identifique SOLAMENTE que es alfanumérico el valor de la celda. Podría hacerlo con VBA pero quiero hacerlo con fórmula.

AAAAAA  ESTEXTO(A1)  devolverà verdadero

A1234DF ESTEXTO(A1) Tambien devolverá verdadero por lo que no sirve

1233686 ESNUMERO(A1) devuelve verdadero

No se es como puedo SOLO el alfanumérico ya que no existe esa función!

Buscando un mejor método puedes probar este:

  • Selecciona el rango que desees aplicarlo ejemplo A1 a G30
  • Ve a formato condicional/administrar reglas/nueva regla...
  • Selecciona:

"Utilizar una fórmula que determine las celdas para aplicar formato"

  • Escribe la siguiente formula:
=O(ESNUMERO(HALLAR(0;A1));ESNUMERO(HALLAR(1;A1));ESNUMERO(HALLAR(2;A1));ESNUMERO(HALLAR(3;A1));ESNUMERO(HALLAR(4;A1));ESNUMERO(HALLAR(5;A1));ESNUMERO(HALLAR(6;A1));ESNUMERO(HALLAR(7;A1));ESNUMERO(HALLAR(8;A1));ESNUMERO(HALLAR(9;A1)
  • Selecciona el formato que desees darle....ejemplo color naranja

Con esta formula toda celda dentro del rango seleccionado que entre su contenido contenga algun numero se pintara de color naranja

Quizas haya algun mejor metodo, pero de momento puedes usar este...

Agregale al final 2 parentesis mas que nose porque se borraron ' )) ' no me deja escribir la formula denuevo pagina loca esta jeje

Respuesta
1

Multiplica el valor de la celda por 1, por ejemplo. Si da error, es alfanumérico.

=si.error(a1*1;"Alfanumérico")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas