¿Cómo encontrar el primer/último número positivo/negativo en Excel?
Al trabajar con una columna de números que contiene tanto valores positivos como negativos, a menudo puede ser necesario localizar rápidamente el primer o último número positivo o negativo en el rango. Esto puede ser especialmente útil para el análisis de datos, la detección de tendencias o la identificación de puntos de entrada específicos en grandes conjuntos de datos. Confiar en la inspección manual para grandes conjuntos de datos es ineficiente y propenso a errores. Afortunadamente, Excel proporciona varios métodos prácticos para agilizar esta tarea, permitiéndote extraer los valores precisos que necesitas con fórmulas o automatización. A continuación, encontrarás múltiples soluciones adecuadas para diferentes escenarios, incluidos enfoques avanzados ideales para operaciones repetidas o a gran escala.
Encontrar el primer número positivo/negativo con fórmula matricial
Encontrar el último número positivo/negativo con fórmula matricial
Macro VBA para encontrar el primer/último número positivo/negativo
Encontrar el primer número positivo/negativo con fórmula matricial
Para extraer el primer número positivo o negativo de una serie de valores, puedes usar las fórmulas matriciales de Excel. Este método es adecuado para usuarios que necesitan una solución rápida para rangos de datos moderados y se sienten cómodos con las fórmulas, especialmente en entornos donde se restringen complementos o macros adicionales. El enfoque matricial se actualiza automáticamente si cambian tus datos de origen, lo que lo hace ideal para listas dinámicas. Aquí te mostramos cómo implementarlo:
1. Selecciona una celda en blanco, introduce la siguiente fórmula matricial para obtener el primer número positivo:
=INDEX(A2:A18,MATCH(TRUE,A2:A18>0,0))
Aquí, A2:A18 se refiere a la lista de datos que deseas buscar. Esta fórmula localiza la primera celda en el rango con un valor mayor que 0, luego devuelve el contenido de esa celda. Consulta la siguiente captura de pantalla:
2. Después de escribir la fórmula, presiona simultáneamente Ctrl + Shift + Enter, en lugar de solo presionar Enter. Esto ejecutará correctamente la fórmula matricial y devolverá el primer número positivo de tu lista, como se muestra en el ejemplo a continuación:
Consejo: Para recuperar el primer número negativo en su lugar, simplemente usa esta fórmula (recuerda presionar Ctrl + Shift + Enter después de escribirla):
=INDEX(A2:A18,MATCH(TRUE,A2:A18<0,0))
En ambas fórmulas, cambiar la condición (>0
para positivo, <0
para negativo) te permite dirigirte al tipo de número requerido. Ten en cuenta que las fórmulas matriciales no admiten referencias a celdas vacías, así que asegúrate de que tu rango de datos no incluya celdas en blanco para obtener resultados consistentes. Si todos los números son positivos o negativos, la fórmula puede devolver un error: considera agregar una función SI.ERROR
si deseas suprimir errores y mostrar un mensaje personalizado.
Nota: En versiones recientes de Excel (Office 365 y Excel 2021 y posteriores), puede que no sea necesario usar Ctrl + Shift + Enter; simplemente presionar Enter puede ser suficiente debido al soporte de matrices dinámicas.
Encontrar el último número positivo/negativo con fórmula matricial
Si tu objetivo es identificar el último valor positivo o negativo en una columna, puedes usar una fórmula matricial diferente. Este enfoque es adecuado para analizar rápidamente tendencias finales o localizar el punto de datos más reciente de un tipo específico. Ten en cuenta que este método refleja dinámicamente las actualizaciones de datos, lo cual es especialmente valioso cuando agregas regularmente nuevos números a la lista.
1. Selecciona una celda en blanco junto a tu columna de datos e introduce esta fórmula matricial para encontrar el último número positivo:
=LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >0, $A$2:$A$18))
Esta fórmula funciona aprovechando el comportamiento de BUSCAR
de devolver la última coincidencia numérica encontrada para un número extremadamente grande. Aquí, SI($A$2:$A$18 >0, $A$2:$A$18)
filtra solo los números positivos, y BUSCAR
luego devuelve la última ocurrencia. Consulta esto ilustrado a continuación:
2. Confirma la fórmula presionando Ctrl + Shift + Enter (a menos que tu versión de Excel admita matrices dinámicas). El resultado mostrará el último valor positivo presente en el rango especificado, como se demuestra a continuación:
Para devolver el último número negativo, utiliza la siguiente fórmula matricial en su lugar, también con Ctrl + Shift + Enter:
=LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 <0, $A$2:$A$18))
Si no se encuentra ningún valor positivo o negativo, la fórmula devolverá un error (#N/A
). Para manejar tales casos graciosamente, envuelve la fórmula en SI.ERROR
. Por ejemplo:
=IFERROR(LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >0, $A$2:$A$18)), "No match found")
Es importante evitar celdas combinadas o formatos combinados de texto/número en tu rango, ya que pueden interrumpir los resultados del cálculo de la fórmula. Siempre verifica la integridad de tus datos antes de usar estos métodos para obtener la mejor precisión.
Macro VBA para encontrar el primer/último número positivo/negativo
Si necesitas frecuentemente encontrar el primer o último número positivo o negativo en múltiples rangos o conjuntos de datos muy grandes, automatizar esta tarea con una macro VBA puede ahorrar tiempo significativo y reducir errores manuales. Esta solución te permite buscar un rango seleccionado y recuperar instantáneamente el valor requerido, lo que la hace ideal para el procesamiento por lotes o tareas analíticas repetitivas. El enfoque VBA es particularmente útil en escenarios donde se necesitan criterios complejos o flujos de trabajo personalizados, aunque requiere familiaridad básica con las herramientas de Desarrollador de Excel.
1. Haz clic en Desarrollador > Visual Basic para abrir la ventana Microsoft Visual Basic para Aplicaciones. Luego, en el editor VBA, haz clic en Insertar > Módulo, y copia el siguiente código en el nuevo módulo:
Sub FindFirstOrLastPosNegNumber()
Dim rng As Range
Dim cell As Range
Dim result As Variant
Dim firstPos As Variant, firstNeg As Variant
Dim lastPos As Variant, lastNeg As Variant
Dim selType As String
On Error Resume Next
Set rng = Application.InputBox("Select the data range", "KutoolsforExcel", Selection.Address, Type:=8)
If rng Is Nothing Then Exit Sub
selType = Application.InputBox("Type 'FirstPos' for first positive, 'FirstNeg' for first negative, 'LastPos' for last positive, or 'LastNeg' for last negative:", "KutoolsforExcel", "FirstPos", Type:=2)
If selType = "" Then Exit Sub
firstPos = Empty
firstNeg = Empty
lastPos = Empty
lastNeg = Empty
' Find first positive and first negative
For Each cell In rng
If IsNumeric(cell.Value) Then
If firstPos = Empty And cell.Value > 0 Then
firstPos = cell.Value
End If
If firstNeg = Empty And cell.Value < 0 Then
firstNeg = cell.Value
End If
If cell.Value > 0 Then
lastPos = cell.Value
End If
If cell.Value < 0 Then
lastNeg = cell.Value
End If
End If
Next cell
Select Case UCase(selType)
Case "FIRSTPOS"
result = firstPos
Case "FIRSTNEG"
result = firstNeg
Case "LASTPOS"
result = lastPos
Case "LASTNEG"
result = lastNeg
Case Else
result = "Invalid input"
End Select
If IsEmpty(result) Then
MsgBox "No matching value found in the selected range.", vbInformation, "KutoolsforExcel"
Else
MsgBox "Result: " & result, vbInformation, "KutoolsforExcel"
End If
End Sub
2. Para ejecutar la macro, presiona F5 (o haz clic en el botón Ejecutar , y sigue estos pasos:
- Un cuadro de diálogo te pedirá que selecciones tu rango de números (por ejemplo, A2:A18).
- Luego, ingresa tu tipo de búsqueda: escribe FirstPos para el primer número positivo, FirstNeg para el primer número negativo, LastPos para el último número positivo, o LastNeg para el último número negativo (no distingue entre mayúsculas y minúsculas).
- Después de ingresar tu elección y confirmar, el resultado se mostrará en un cuadro de mensaje.
Consejos:
- Esta macro puede manejar cualquier rango de números contiguos seleccionado por el usuario, permitiendo flexibilidad en la disposición de los datos.
- Si el tipo especificado no coincide con ningún número en el rango, recibirás una notificación en lugar de un error.
- Asegúrate de que las macros estén habilitadas en tu Excel para que funcione el código VBA.
- Si tus datos incluyen valores no numéricos, la macro los ignorará durante el procesamiento.
Solución de problemas y sugerencias: Para todas las soluciones, siempre confirma que tu selección contiene el rango previsto y no incluye encabezados. Si usas rangos grandes, considera limitar el tamaño para evitar retrasos en el cálculo o rendimiento, especialmente al usar fórmulas matriciales o macros.
Si te encuentras realizando esta tarea con frecuencia o quieres más personalización, considera combinar múltiples criterios en tu macro o crear un botón dedicado para un acceso más fácil. Siempre guarda tu trabajo antes de probar nuevos scripts VBA y prueba en copias de respaldo si eres nuevo en la programación.
Artículos relacionados:
¿Cómo encontrar el primer/último valor mayor que X en Excel?
¿Cómo encontrar el valor más alto en una fila y devolver el encabezado de columna en Excel?
¿Cómo encontrar el valor más alto y devolver el valor de la celda adyacente en Excel?
¿Cómo encontrar el valor máximo o mínimo basado en criterios en Excel?
Las mejores herramientas de productividad para Office
Mejora tu dominio de Excel con Kutools para Excel y experimenta una eficiencia sin precedentes. Kutools para Excel ofrece más de300 funciones avanzadas para aumentar la productividad y ahorrar tiempo. Haz clic aquí para obtener la función que más necesitas...
Office Tab incorpora la interfaz de pestañas en Office y facilita mucho tu trabajo
- Habilita la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abre y crea varios documentos en nuevas pestañas de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumenta tu productividad en un50% y reduce cientos de clics de ratón cada día!
Todos los complementos de Kutools. Un solo instalador
El paquete Kutools for Office agrupa complementos para Excel, Word, Outlook y PowerPoint junto con Office Tab Pro, ideal para equipos que trabajan en varias aplicaciones de Office.





- Suite todo en uno: complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un solo instalador, una licencia: configuración en minutos (compatible con MSI)
- Mejor juntos: productividad optimizada en todas las aplicaciones de Office
- Prueba completa de30 días: sin registro ni tarjeta de crédito
- La mejor relación calidad-precio: ahorra en comparación con la compra individual de complementos