Robert tiene una serie de números en la columna A que van del 1 al 100. Le gustaría extraer solo los valores entre 65 y 100, inclusive, y colocarlos en la columna B. Se pregunta si hay una manera de hacerlo fácilmente.

La respuesta corta es que hay una manera muy fácil de hacerlo, siempre que no le importe ordenar la lista de números. Siga estos pasos:

  1. Seleccione una celda en la columna A. (Realmente no importa qué celda seleccione, siempre que sea una de las celdas que contenga un número).

  2. Muestre la pestaña Datos de la cinta.

  3. Haga clic en la herramienta Ordenar del más pequeño al más grande, en el grupo Ordenar y filtrar.

Excel ordena todos los números de la columna.

  1. Seleccione los números que desea poner en la columna B.

  2. Presione Ctrl + X para cortar las celdas en el Portapapeles.

  3. Seleccione la celda B1 (o la primera celda de la columna B donde desea que aparezcan los valores).

  4. Presione Ctrl + V para pegar las celdas en la columna.

Eso es; ahora tiene las celdas deseadas en la columna B. Si simplemente desea copiar las celdas, entonces en el paso 5 podría haber presionado Ctrl + C en su lugar.

Si necesita mantener los valores en la columna A en su orden original (menos los valores que desea mover), puede hacerlo usando la columna B como una columna de «retención de lugares». A la derecha del primer valor en la columna A, coloque el valor 1. Luego, debajo de la columna B, coloque un 2, luego un 3, y así sucesivamente, hasta que cada valor en la columna A tenga un valor correspondiente en la columna B que indique la ubicación de los números. Luego, sigue estos pasos:

  1. Seleccione una celda en la columna A. (Realmente no importa qué celda seleccione, siempre que sea una de las celdas que contenga un número).

  2. Muestre la pestaña Datos de la cinta.

  3. Haga clic en la herramienta Ordenar de menor a mayor, en el grupo Ordenar y filtrar.

Excel ordena todos los números de la columna.

  1. Seleccione los números en la columna A que desea mover, junto con los números a la derecha de ellos en la columna B.

  2. Presione Ctrl + X para cortar las celdas en el Portapapeles.

  3. Seleccione la celda D1. (Es importante seleccionar la celda D1 porque debe dejar la columna C en blanco).

  4. Presione Ctrl + V para pegar las celdas en las columnas D y E.

  5. Seleccione una celda en la columna B.

  6. Muestre la pestaña Datos de la cinta.

  7. Haga clic en la herramienta Ordenar del más pequeño al más grande, en el grupo Ordenar y filtrar.

Excel ordena todos los números de la columna según los valores de la columna B.

  1. Seleccione una celda en la columna E.

  2. La pestaña Datos de la cinta aún debería mostrarse.

  3. Haga clic en la herramienta Ordenar del más pequeño al más grande, en el grupo Ordenar y filtrar.

Excel ordena todos los números de la columna según los valores de la columna E.

  1. Elimine las columnas B, C y E.

En este punto, los valores de las columnas A y B reflejan su orden original, desde que estaban todos en la columna A.

Otra forma de mover las celdas es utilizar las capacidades de filtrado de Excel. Siga estos pasos:

  1. Seleccione una celda en la columna A. (Realmente no importa qué celda seleccione, siempre que sea una de las celdas que contenga un número).

  2. Muestre la pestaña Datos de la cinta.

  3. Haga clic en la herramienta Filtro. Excel agrega una flecha desplegable de filtro en el lado derecho del encabezado de la columna A.

  4. Haga clic en la flecha hacia abajo y seleccione Filtros numéricos | Entre. Excel muestra el cuadro de diálogo Autofiltro personalizado. (Ver figura 1)

  5. En el cuadro Mayor o igual a, ingrese 65.

  6. En el cuadro Menor o igual a, ingrese 100.

  7. Haga clic en Aceptar. Excel limita lo que se muestra a solo aquellas filas que cumplen con los criterios que especificó en los pasos 4 a 6.

  8. Seleccione las celdas que se muestran.

  9. Presione Ctrl + C para copiar las celdas al Portapapeles.

  10. Seleccione la celda B1 (o la primera celda de la columna B donde desea que aparezcan los valores).

  11. Presione Ctrl + V para pegar las celdas en la columna.

  12. Seleccione una de las celdas de la columna A.

  13. Nuevamente haga clic en la herramienta Filtro. (La pestaña Datos de la cinta debería seguir mostrándose). Excel elimina el filtro que aplicó anteriormente.

También puede usar fórmulas en la columna B para extraer los valores que están dentro del rango deseado. Una forma fácil de hacer esto es colocar esta fórmula en la celda B1:

=IF(AND(A1>=65, A1<=100),A1,"")

Copie la fórmula tanto como sea necesario en la columna B y terminará con cualquier valor en el rango de 65 a 100, inclusive, «copiado»

en la columna B. Si el valor está fuera de este rango, la celda de la columna B se deja vacía.

Suponiendo que no desea celdas vacías en la columna B, entonces podría usar una fórmula de matriz para tomar los valores. Si sus valores están en el rango A1: A500, coloque lo siguiente en la celda B1:

=IFERROR(INDEX(A$1:A$500,SMALL(IF(A$1:A$500>=65,ROW($1:$500)),ROW())),"")

Ingréselo usando Ctrl + Shift + Enter, y luego copie la fórmula hacia abajo tanto como desee.

Por supuesto, existen soluciones basadas en macros que puede utilizar. Estos son útiles si necesita realizar esta tarea bastante con datos que recupera de una fuente externa. El siguiente es un ejemplo simple de una macro que podría usar:

Sub ExtractValues1()

Dim x As Integer

x = 1     For Each cell In Selection         If cell.Value >= 65 And cell.Value <= 100 Then             Cells(x, 2) = cell.Value             x = x + 1         End If     Next cell End Sub

Utilice la macro seleccionando las celdas que desea evaluar en la columna A y luego ejecutándola. Examina cada celda y copia el valor en la columna B. El valor original en la columna A no se modifica.

Para mayor flexibilidad, puede confiar en pedirle al usuario los valores superior e inferior, como se muestra en esta macro:

Sub ExtractValues2()

Dim iLowVal As Integer     Dim iHighVal As Integer

iLowVal = InputBox("Lowest value wanted?")

iHighVal = InputBox("Highest value wanted?")



For Each cell In Range("A:A")

If cell.Value <= iHighVal And cell.Value >= iLowVal Then             ActiveCell.Value = cell.Value             ActiveCell.Offset(1, 0).Activate         End If     Next End Sub

Antes de ejecutar la macro, seleccione la celda en la parte superior del rango donde desea colocar los valores extraídos. Nada en la columna A se ve afectado; solo los valores entre el rango inferior y superior se copian en la nueva ubicación.

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