Clasificación no estándar (Microsoft Excel)
No es inusual en un entorno de oficina trabajar con archivos de Excel creados por otras personas. Algunos de estos archivos pueden ser bastante diferentes a los archivos que podría crear. Por ejemplo, puede heredar un archivo en el que la primera columna contiene el nombre de una persona en la primera línea y luego su apellido en la segunda línea. (El usuario presionó Alt + Intro para separar el primer nombre del segundo nombre dentro de la misma celda). ¿Qué sucede si necesita ordenar las filas en la hoja de trabajo según el apellido de la persona?
Quizás la mejor manera de completar dicha tarea es insertar una nueva columna en la hoja de trabajo, la columna B. (Esta columna podría estar oculta para que no aparezca cuando se trabaja normalmente con la hoja de trabajo o cuando se imprime). la fórmula debe colocarse en cada celda de la columna B:
=RIGHT(A2,LEN(A2)-FIND(CHAR(10),A2))
Obviamente, las referencias de celda cambiarán cuando se coloquen en la columna B. En esta fórmula, la parte FIND determina la posición del carácter Alt + Enter (el código de carácter de este carácter es 10). La función DERECHA devuelve los caracteres de la celda que comienzan en el carácter que sigue al carácter Alt + Intro. Esta solución da como resultado la columna B que contiene la información de la segunda línea de la primera columna. A continuación, puede ordenar fácilmente según la información de la columna B.
Hay una suposición en esta solución: que solo hay dos líneas en cada celda de la columna A. Si hay más o menos, la solución se vuelve más difícil. Si ese es el caso, la mejor (y más fácil) solución puede ser reformatear la hoja de trabajo para que la clave de clasificación esté en una columna por sí sola. Si eso no es posible (por cualquier motivo), entonces se puede utilizar la siguiente función VBA definida por el usuario:
Function SecLine(x) As String Dim B1 As Integer Dim B2 As Integer B1 = InStr(x, Chr(10)) B2 = InStr(B1 + 1, x, Chr(10)) If (B1 + B2) > 0 Then If B2 > 0 Then SecLine = Mid(x, B1 + 1, B2 – B1 - 1) Else SecLine = Mid(x, B1 + 1) End If End If End Function
Para usar esta rutina, simplemente incluya lo siguiente en las celdas de la columna B:
=SecLine(A2)
Independientemente de cuántas líneas haya en la celda A2 (en este caso), la función devuelve una cadena que representa el valor de la segunda línea.
_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 (2252) 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 posteriores) aquí:
enlace: / excelribbon-Non-standard_Sorting [Clasificación no estándar]
.