¿Cómo encontrar el primer o último número positivo o negativo en Excel?
Al trabajar con una columna de números que incluye valores positivos y negativos, a menudo necesitará identificar rápidamente el primer o último número positivo o negativo dentro del rango. Esta capacidad resulta especialmente útil en análisis de datos, detección de tendencias o localización de puntos de entrada específicos en conjuntos de datos extensos. Depender de la inspección manual en estos casos es ineficiente y propenso a errores. Afortunadamente, Excel ofrece varios métodos prácticos para agilizar esta tarea, permitiéndole obtener los valores exactos que necesita mediante fórmulas o automatización. A continuación, encontrará múltiples soluciones adaptadas a distintos escenarios, incluidos enfoques avanzados ideales para operaciones repetitivas 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, puede usar fórmulas matriciales de Excel. Este método es ideal para usuarios que buscan una solución rápida para rangos moderados y se sienten cómodos con fórmulas, especialmente en entornos donde no están permitidos complementos ni macros adicionales. Además, el enfoque matricial se actualiza automáticamente cuando cambian sus datos de origen, lo que lo hace perfecto para listas dinámicas. A continuación, se explica cómo implementarlo:
1. Seleccione una celda vacía e introduzca la siguiente fórmula matricial para obtener el primer número positivo:
=INDEX(A2:A18,MATCH(TRUE,A2:A18>0,0)) Aquí, A2:A18 hace referencia a la lista de datos que desea buscar. Esta fórmula localiza la primera celda del rango con un valor mayor que 0 y devuelve su contenido. Vea la siguiente captura de pantalla:

2. Tras escribir la fórmula, pulse Ctrl + Mayús + Entrar simultáneamente, en lugar de pulsar solo Entrar. Así se ejecutará correctamente la fórmula matricial y devolverá el primer número positivo de su lista, tal como se muestra en el ejemplo siguiente:

Consejo:Para obtener el primer número negativo en su lugar, utilice simplemente esta fórmula (recuerde pulsar)Ctrl + Mayús + Entrartras escribirla):
=INDEX(A2:A18,MATCH(TRUE,A2:A18<0,0)) En ambas fórmulas, al modificar la condición ()>0 para números positivos, <0 para negativos), podrá enfocarse en el tipo de número que necesite. Tenga en cuenta que las fórmulas matriciales no admiten referencias a celdas vacías, por lo que debe asegurarse de que su rango de datos no incluya celdas en blanco para obtener resultados consistentes. Si todos los números son positivos o todos negativos, la fórmula podría devolver un error; en ese caso, considere añadir la función SI.ERROR para suprimir errores y mostrar un mensaje personalizado.
Aviso: En versiones recientes de Excel (Office 365 y Excel 2021 en adelante), es posible que ya no necesite usar Ctrl + Mayús + Entrar; basta con pulsar Entrar, gracias al soporte de matrices dinámicas.
Encontrar el último número positivo/negativo con fórmula matricial
Si su objetivo es identificar el último valor positivo o negativo en una columna, puede utilizar una fórmula matricial alternativa. Este enfoque es ideal para analizar rápidamente las tendencias finales o localizar el punto de datos más reciente de un tipo especificado. Tenga en cuenta que este método se actualiza dinámicamente con los cambios en los datos, lo que resulta especialmente valioso cuando añade nuevos números a la lista de forma regular.
1. Seleccione una celda vacía junto a su columna de datos e introduzca 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 BUSCARV, que devuelve la última coincidencia numérica encontrada al buscar un número extremadamente grande. Aquí, SI($A$2:$A$18 >0, $A$2:$A$18) filtra únicamente los números positivos, y BUSCARV devuelve entonces la última aparición. Vea esto ilustrado a continuación:

2. Confirme la fórmula pulsando Ctrl + Mayús + Entrar (a menos que su versión de Excel admita matrices dinámicas). El resultado mostrará el último valor positivo presente en el rango limitado, tal como se muestra a continuación:

Para devolver el último número negativo, utilice en su lugar la siguiente fórmula matricial, también con Ctrl + Mayús + Entrar:
=LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 <0, $A$2:$A$18)) Si no se encuentra ningún valor positivo ni negativo, la fórmula devolverá un error ()#N/A). Para gestionar estos casos de forma adecuada, envuelva la fórmula en la función SI.ERROR. Por ejemplo:
=IFERROR(LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >0, $A$2:$A$18)), "No match found") Es fundamental evitar formatos combinados de texto y número en su rango, ya que podrían distorsionar los resultados del cálculo de la fórmula. Verifique siempre la integridad de sus datos antes de aplicar estos métodos para garantizar la máxima precisión.
Macro VBA para encontrar el primer/último número positivo/negativo
Si con frecuencia necesita encontrar el primer o último número positivo o negativo en varios rangos o en conjuntos de datos muy grandes, automatizar esta tarea con una macro VBA puede ahorrarle mucho tiempo y minimizar errores manuales. Esta solución le permite seleccionar un rango y obtener al instante el valor que busca, lo que la convierte en una opción ideal para procesamiento por lotes o tareas analíticas repetitivas. El enfoque VBA resulta especialmente útil en escenarios que requieren criterios complejos o flujos de trabajo personalizados, aunque exige cierta familiaridad básica con las herramientas para desarrolladores de Excel.
1. Haga clic en Desarrollador > Visual Basic para abrir la ventana de Microsoft Visual Basic para Aplicaciones. A continuación, en el editor de VBA, haga clic en Insertar > Módulo y copie 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, pulse F5(o haga clic en el botón)
Ejecutar) y siga estos pasos:
- Aparecerá un cuadro de diálogo en el que deberá seleccionar su rango de números (por ejemplo, A2:A18).
- A continuación, introduzca su tipo de búsqueda: escriba 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 mayúsculas y minúsculas).
- Tras introducir y confirmar su elección, el resultado se mostrará en un cuadro de mensaje.
Consejos:
- Esta macro puede gestionar cualquier rango contiguo de números que el usuario seleccione, ofreciendo flexibilidad en la disposición de los datos.
- Si el tipo especificado no coincide con ningún número del rango, recibirá una notificación en lugar de un error.
- Asegúrese de tener las macros habilitadas en su Excel para que el código VBA funcione correctamente.
- Si sus datos contienen valores no numéricos, la macro los ignorará durante el procesamiento.
Resolución de problemas y sugerencias: En todas las soluciones, asegúrese siempre de que su selección incluya únicamente el rango deseado y no contenga encabezados. Si trabaja con rangos extensos, considere reducir su tamaño para evitar retrasos en los cálculos o en el rendimiento, especialmente al utilizar fórmulas matriciales o macros.
Si realiza esta tarea con frecuencia o busca una mayor personalización, considere combinar varios criterios en su macro o crear un botón dedicado para acceder a ella con facilidad. Siempre guarde su trabajo antes de probar nuevos scripts de VBA y realice las pruebas en copias de seguridad si está empezando a programar.
Artículos relacionados:
¿Cómo encontrar el primer o último valor mayor que X en Excel?
¿Cómo encontrar el valor más alto en una fila y devolver su encabezado de columna en Excel?
¿Cómo encontrar el valor más alto en Excel y devolver el valor de la celda adyacente?
¿Cómo encontrar el valor máximo o mínimo en Excel según criterios específicos?
Las mejores herramientas de productividad para Office
Potencie sus habilidades en Excel con Kutools para Excel y experimente una eficiencia como nunca antes.Kutools para Excel ofrece más de 300 funciones avanzadas para aumentar su productividad y Ahorrar tiempo.Haga clic aquí para obtener la función que más necesita...
Office Tab aporta una interfaz con pestañas a Office y hace que su trabajo sea mucho más fácil
- Active la edición y lectura con pestañas en Word, Excel, PowerPoint, Publisher, Access, Visio y Project.
- Abra y cree varios documentos en nuevas pestañas dentro de la misma ventana, en lugar de hacerlo en ventanas separadas.
- ¡Aumente su productividad en un 50 % y elimine cientos de clics del ratón cada día!
Todos los complementos de Kutools en un solo instalador.
Kutools for Office es la suite que incluye complementos para Excel, Word, Outlook y PowerPoint, además de Office Tab Pro, ideal para equipos que trabajan en distintas aplicaciones de Office.
- Suite integral— complementos para Excel, Word, Outlook y PowerPoint + Office Tab Pro
- Un instalador, una licencia— configuración en minutos (compatible con MSI)
- Rendimiento mejorado en conjunto— productividad optimizada en todas las aplicaciones de Office
- Prueba gratuita de 30 días con todas las funciones— sin registro ni tarjeta de crédito
- La mejor relación calidad-precio— ahorre frente a la compra individual de complementos