Stuart tiene una serie de lecturas en una hoja de trabajo. En la primera columna tiene las fechas asociadas con las lecturas y en la segunda columna tiene las lecturas reales. A Stuart le gustaría tener una fórmula que devuelva la primera fecha en la que una lectura se volvió negativa. En otras palabras, la fórmula debe buscar el primer valor negativo en la segunda columna y luego devolver la fecha asociada con ese valor.

Puede haber varios valores negativos en la segunda columna, pero solo necesita la fecha asociada con el primer valor negativo.

Hay varias formas de abordar este problema. Todos los métodos suponen que las fechas de la columna A están en orden ascendente y que las lecturas de la columna B no están en ningún tipo de orden discernible. (En otras palabras, las lecturas podrían rebotar por encima y por debajo de 0 en cualquier fecha).

Siempre que tenga cierto control sobre el diseño de la hoja de trabajo, puede agregar una columna de trabajo intermedia en la columna C, que se utiliza para indicar cuándo un valor es negativo. Simplemente coloque una fórmula como esta en la columna C, a la derecha de cada lectura:

=IF(B1<0,A1,"")

Esta fórmula devuelve la fecha en la columna A si el valor en B está por debajo de 0 (negativo); de lo contrario, no devuelve nada. Todo lo que necesita hacer es buscar el valor mínimo en la columna C:

=MIN(C:C)

Formatee el resultado como una fecha y representa la fecha en la que las lecturas se volvieron negativas por primera vez.

Otro enfoque es renunciar al uso de la columna intermedia y usar una fórmula de matriz para determinar la fecha. Suponiendo que los datos están en el rango A1: B42, puede usar cualquiera de las siguientes fórmulas:

=MIN(IF(B1:B42<0,A1:A42,""))

=OFFSET($A$1,MATCH(TRUE,$B$1:$B$42<0,0)-1,,,)

=INDEX(A:A,MIN(IF(B1:B42<0,ROW(B1:B42))))

=INDEX(A1:A42,MATCH(TRUE,B1:B42<0,0))

=INDIRECT("A"&MIN(IF(B1:B42<0,ROW(B1:B42))),TRUE)

Recuerde que todas estas son fórmulas de matriz, por lo que debe ingresar la que elija presionando Shift + Ctrl + Enter. Formatee el resultado como una fecha, y es la respuesta que busca.

Si lo prefiere, también puede usar una macro simple para determinar la fecha:

Function GetFirstNegative(rngdata)

Dim c As Variant

For Each c In rngdata         If c < 0 Then             GetFirstNegative = c.Offset(0, -1)

Exit Function         Else             GetFirstNegative = "All Data is Positive"

End If     Next End Function

En su hoja de trabajo, usaría esta función definida por el usuario de esta manera:

=GetFirstNegative(B1:B42)

_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 (7092) 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 posterior) aquí:

link: / excelribbon-Finding_the_Date_Associated_with_a_Negative_Value [Encontrar la fecha asociada con un valor negativo].