Deshacerse de todo excepto los números (Microsoft Excel)
Linda tiene una columna que contiene caracteres alfanuméricos. Necesita retener los caracteres numéricos y eliminar los alfabéticos. Por ejemplo, una celda puede contener 10003E111 y quiere terminar con 10003111.
Hay algunas formas de abordar este problema. Sin embargo, antes de continuar con cualquier solución, debe asegurarse de que no está tratando de cambiar algo que realmente no está roto. Por ejemplo, querrá asegurarse de que la «E» que aparece en el número no sea parte del formato del número; en otras palabras, una designación de exponenciación. Si es así, entonces realmente no desea eliminar el carácter porque terminará cambiando la naturaleza del número subyacente.
Si determina que los caracteres no forman parte del formato del número, primero puede intentar usar fórmulas para eliminar los caracteres alfabéticos. Si los valores que desea cambiar están en la columna A, puede ingresar la siguiente fórmula (muy larga) en la columna B:
=MID(A1,MATCH(TRUE,ISERROR(1MID(A1,ROW(INDIRECT ("1:"&LEN(A1))),1)),0),-MATCH(TRUE,ISERROR(1MID (A1,ABS(ROW(INDIRECT("1:"&LEN(A1)))-LEN(A1)-1),1)) ,0)+LEN(A1)+2-MATCH(TRUE,ISERROR(1*MID(A1,ROW (INDIRECT("1:"&LEN(A1))),1)),0))
Asegúrese de ingresar esto como una fórmula de matriz presionando Ctrl + Shift + Enter. Luego ingrese lo siguiente en la columna C:
=SUBSTITUTE(A1,B1,"")
El resultado es que la columna C contiene los valores de la columna A, sin los caracteres alfabéticos. Puede usar Pegado especial para copiar la información de la columna C a otra columna para que termine con valores reales en lugar de resultados de fórmula.
Este enfoque puede funcionar muy bien para el uso a corto plazo en un solo libro de trabajo, pero si necesita hacer este tipo de procesamiento de datos con más frecuencia, entonces querrá crear una función definida por el usuario para realizar el procesamiento. Aquí tienes un ejemplo:
Function OnlyNums(sWord As String) Dim sChar As String Dim x As Integer Dim sTemp As String sTemp = "" For x = 1 To Len(sWord) sChar = Mid(sWord, x, 1) If Asc(sChar) >= 48 And _ Asc(sChar) <= 57 Then sTemp = sTemp & sChar End If Next OnlyNums = Val(sTemp) End Function
Utiliza esta función llamándola desde dentro de una celda de la hoja de trabajo:
=OnlyNums(A1)
La función devuelve un valor numérico. Si desea crear una macro aún más corta para realizar el procesamiento, considere lo siguiente:
Function StripChar(aText As String) Dim I As Integer StripChar = "" For I = 1 To Len(aText) aChar = Mid(aText, I, 1) Select Case aChar Case "0" To "9" StripChar = StripChar & aChar End Select Next End Function
Para usar esta función, use cualquiera de los siguientes en su hoja de trabajo:
=STRIPCHAR(A1) =VALUE(STRIPCHAR(A1))
El primero devuelve una cadena de texto que consta de dígitos, el segundo devuelve la versión numérica de esa cadena.
_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 (3840) se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posterior) aquí:
link: / excelribbon-Getting_Rid_of_Everything_Except_Numbers [Deshacerse de todo excepto los números]
.