Skip to main content

Kutools para Office — Una Suite. Cinco Herramientas. Haz Más.

¿Cómo encontrar el primer/último número positivo/negativo en Excel?

Author Xiaoyang Last modified

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


arrow blue right bubble 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:

A screenshot showing a dataset to find the first positive number in Excel

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:

A screenshot showing the result of the first positive number using an array formula in Excel

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.


arrow blue right bubbleEncontrar 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:

A screenshot showing the array formula for finding the last positive number in Excel

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:

A screenshot showing the result of the last positive number using an array formula in Excel

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.


arrow blue right bubbleMacro 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 Run button 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

🤖 Kutools AI Aide: Revoluciona el análisis de datos basado en: Ejecución inteligente | Generar código | Crear fórmulas personalizadas | Analizar datos y generar gráficos | Invocar Funciones mejoradas
Funciones populares: Buscar, resaltar o identificar duplicados | Eliminar filas en blanco | Combinar columnas o celdas sin perder datos | Redondear...
Super BUSCARV: Búsqueda por varios criterios | Búsqueda por varios valores | Búsqueda en varias hojas | Coincidencia difusa....
Lista desplegable avanzada: Cree rápidamente una lista desplegable | Lista desplegable dependiente | Lista desplegable de selección múltiple....
Administrador de columnas: Agregar un número específico de columnas | Mover columnas | Alternar el estado de visibilidad de columnas ocultas | Comparar rangos y columnas...
Funciones destacadas: Cuadrícula de enfoque | Vista de diseño | Barra de fórmulas mejorada | Administrador de Libro de trabajo y Hoja de cálculo | Biblioteca de AutoTexto | Selector de fechas | Combinar Datos | Cifrar/Descifrar celdas | Enviar correo electrónico por lista | Super Filtro | Filtro especial (filtrar celdas con fuente en negrita/cursiva/tachado...)...
Los15 principales conjuntos de herramientas:12 herramientas de texto (Agregar texto, Eliminar caracteres específicos, ...) | Más de50 tipos de gráficos (Diagrama de Gantt, ...) | Más de40 fórmulas prácticas (Calcular edad basada en la fecha de nacimiento, ...) |19 herramientas de inserción (Insertar código QR, Insertar imagen desde ruta, ...) |12 herramientas de conversión (Convertir a palabras, Conversión de moneda, ...) |7 herramientas de combinar y dividir (Combinar filas avanzado, Dividir celdas, ...) ... y más
Utiliza Kutools en tu idioma preferido: admite inglés, español, alemán, francés, chino y más de40 idiomas adicionales.

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.

Excel Word Outlook Tabs PowerPoint
  • 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