Determinando «Mayor desde» o «Mínimo desde» (Microsoft Excel)
Alex analiza habitualmente los datos más recientes de la industria de la construcción y necesita escribir artículos sobre los datos. Con frecuencia, debe resaltar algún dato nuevo, como «la construcción de edificios industriales fue la más baja desde agosto de 2019». Alex se preguntó si habría alguna forma de automatizar este tipo de resaltado; si la columna A contiene el mes y el año y la columna B contiene los valores para esos períodos, Alex desearía una fórmula en la columna C que indique «este valor es el más alto desde abril de 2019» o «este valor es el más bajo desde noviembre de 2016»
Suponiendo que el mes y el año enumerados en la columna A es realmente un valor de fecha de Excel (y no texto), puede crear fácilmente una fórmula para devolver la información deseada. Si tiene la fila 1 ocupada con encabezados para sus columnas, ingrese lo siguiente en la celda C2:
=IF(ROW(B2)=2,"",IF(B2>MAX($B$1:B1), "this value is the highest since " & TEXT(INDEX($A$1:A1,MATCH(MAX( $B$1:B1),$B$1:B1,0)), "mmmm yyyy"), IF(B2<MIN($B$1:B1), "this value is the lowest since " & TEXT(INDEX($A$1:A1, MATCH(MIN($B$1:B1),$B$1:B1,0)), "mmmm yyyy"),"")))
Recuerde que esta es una fórmula única y debe ingresarse en una sola línea. Puede copiar la fórmula hacia abajo tantas filas como sea necesario en la columna C, y debería proporcionar la información deseada. Solo hace una notación en la columna C si el valor en la columna B es mayor que el máximo o menor que el mínimo de todos los valores anteriores en la columna B.
Si tiene bastantes datos en su hoja de trabajo, puede notar que la fórmula da como resultado tiempos de recálculo prolongados. Si este es el caso, es posible que desee considerar el uso de una macro que hará el análisis deseado y proporcionará la información adecuada. La siguiente macro mira hacia atrás a través de la información en la columna B y proporciona un resultado de «menor desde» y «mayor desde» en las columnas C y D.
Sub FindHiLow() Dim orig_cell As Range Dim orig_val As Integer Dim orig_row As Integer Dim rownum As Integer Dim newcell As Range Dim new_val As Integer Dim lowrow As Integer Dim hirow As Integer Set orig_cell = ActiveCell orig_row = ActiveCell.Row orig_val = orig_cell.Value ' find lowest lowrow = 0 For rownum = orig_cell.Row - 1 To 1 Step -1 Set newcell = Cells(rownum, 2) new_val = newcell.Value If orig_val >= new_val Then lowrow = rownum Exit For End If Next If lowrow = 0 Then lowrow = 1 Cells(orig_row, 3).Value = "Lowest since " & Cells(lowrow, 1) ' find highest hirow = 0 For rownum = orig_cell.Row - 1 To 1 Step -1 Set newcell = Cells(rownum, 2) new_val = newcell.Value If orig_val <= new_val Then hirow = rownum Exit For End If Next If hirow = 0 Then hirow = 1 Cells(orig_row, 4).Value = "Highest since " & Cells(hirow, 1) End Sub
_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 (10183) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:
link: / excel-Determining_Highest_Since_or_Lowest_Since [Determinar" Mayor desde "o" Mínimo desde "]
.