Bestemme "Høyeste Siden" eller "Laveste Siden"

August 21  by Eliza

Alex analyserer rutinemessig de nyeste byggebransjedata, og trenger å skrive artikler om dataene. Ofte han trenger å fremheve noen nye stykke av data, for eksempel "industribygg byggingen var den laveste siden august 2007." Alex lurte på om det var en måte å automatisere denne type utheving; Hvis kolonne A inneholder måneden og kolonne B år og inneholder verdiene for disse periodene, ville Alex liker en formel i kolonne C som indikerer "denne verdien er den høyeste siden april 2007" eller "denne verdien er den laveste siden november 2004."

Forutsatt at den måned og år som er oppført i kolonne A er virkelig et Excel dato verdi (og ikke tekst), kan du enkelt lage en formel for å returnere den ønskede informasjonen. Hvis du har rad en opptatt med overskrifter for kolonnene, skriver du inn følgende i celle C2:

= HVIS (ROW (B2) = 2, "", HVIS (B2> MAX ($ B $ 1: B1), "denne verdien er
det høyeste siden "& TEKST (INDEX ($ A $ 1: A1, MATCH (MAX (
$ B $ 1: B1), $ B $ 1: B1,0)), "mmmm åååå"), HVIS (B2 <MIN ($ B $ 1: B1),
"Denne verdien er den laveste siden" & TEKST (INDEX ($ A $ 1: A1,
MATCH (MIN ($ B $ 1: B1), $ B $ 1: B1,0)), "mmmm åååå"), "")))

Husk at dette er en enkel formel, og bør legges inn alt på én linje. Du kan kopiere formelen ned så mange rader som er nødvendig i kolonne C, og det bør gi den ønskede informasjonen. Det gir bare en notasjon i kolonne C dersom verdien i kolonne B, er større enn den maksimale eller mindre enn den minste av alle de ovennevnte verdier i kolonne B.

Hvis du har litt av en bit av data i regnearket, kan du legge merke til at formelresultater i lange omregning ganger. Hvis dette er tilfelle, så vil du kanskje vurdere å bruke makro som vil gjøre den ønskede analyse og gi riktig informasjon. Følgende makro gir ser bakover gjennom informasjonen i kolonne B og gir både en "laveste siden" og "høyeste siden" resultat i kolonner C og D.

Sub FindHiLow ()
Dim orig_cell Som Range
Dim orig_val As Integer
Dim orig_row As Integer
Dim rownum As Integer
Dim newcell Som Range
Dim new_val As Integer
Dim lowrow As Integer
Dim hirow As Integer

Satt orig_cell = ActiveCell
orig_row = ActiveCell.Row
orig_val = orig_cell.Value

'Finne laveste
lowrow = 0
For rownum = orig_cell.Row - 1 til 1 trinn -1
Satt newcell = Cells (rownum, 2)
new_val = newcell.Value
Hvis orig_val> = new_val Deretter
lowrow = rownum
Exit For
End If
Neste
Hvis lowrow = 0 Then lowrow = 1
Celler (orig_row, 3) .Value = "Laveste siden" & Cells (lowrow, 1)

'Finne høyeste
hirow = 0
For rownum = orig_cell.Row - 1 til 1 trinn -1
Satt newcell = Cells (rownum, 2)
new_val = newcell.Value
Hvis orig_val <= new_val Deretter
hirow = rownum
Exit For
End If
Neste
Hvis hirow = 0 Then hirow = 1
Celler (orig_row, 4) .Value = "Høyeste siden" & Cells (hirow, 1)
End Sub

ExcelTips er din kilde for kostnadseffektiv Microsoft Excel trening. Dette tipset (3138) gjelder for Microsoft Excel 97, 2000, 2002, og 2003. Du kan finne en versjon av dette tipset for Båndet av Excel (Excel 2007 og senere) her: Bestemme "Høyeste Siden" eller "Laveste Siden" .