Chris tiene una gran cantidad de celdas que contienen números de pieza. Estas celdas pueden contener dígitos o caracteres, en cualquier combinación. También pueden contener caracteres especiales como guiones, barras y espacios.

Chris necesita una forma de identificar si una celda contiene solo dígitos, sin tener en cuenta los caracteres especiales. Por lo tanto, una celda que contenga 123-45 mostraría que solo contiene dígitos, mientras que 123AB-45 no.

La forma más fácil de averiguar si una celda determinada contiene solo los caracteres y dígitos permitidos es usar una fórmula que elimine los caracteres permitidos que no sean dígitos y luego vea si el valor resultante es numérico. Todas las fórmulas siguientes pueden hacer el truco bastante bien:

=IF(IFERROR(INT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"-", ""),"/", "")," ", "")),FALSE), TRUE, FALSE)

=OR(ISNUMBER(SUBSTITUTE(A1,"-","")+0),ISNUMBER(SUBSTITUTE(A1,"/","")+0),ISNUMBER(SUBSTITUTE(A1," ","")+0))

=ISNUMBER(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1," ",""),"/",""),"-","")*1)

También puede usar una macro simple para averiguar si una celda contiene solo dígitos y los caracteres permitidos. Si bien hay varias formas de abordar una macro de este tipo, aquí hay un método bastante fácil:

Function DigitsOnly(sRaw As String) As Boolean     Dim X As Integer     Const sAllowed As String = "0123456789 -/"



Application.Volatile     For X = 1 To Len(sRaw)

If InStr(sAllowed, Mid(sRaw, X, 1)) = 0 Then Exit For     Next X     DigitsOnly = False     If X > Len(sRaw) Then DigitsOnly = True End Function

La macro examina todo lo que se le pasa, comparando cada carácter de la cadena con una lista de caracteres permitidos (en la constante sAllowed).

Si se detecta un carácter no permitido, el bucle se sale antes y se devuelve un valor Falso. Por lo tanto, si quisiera evaluar la celda en A1, podría usar lo siguiente en su macro:

=DigitsOnly(A1)

Dado que devuelven valores verdaderos o falsos, cualquiera de estos enfoques (fórmula o función definida por el usuario) se puede utilizar junto con el formato condicional para realizar cambios de formato en los números de pieza.

_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 (12654) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365.