Kuinka toteutan järkevimmin haun (PHAKU?) matriisin sarakkeesta, kun hakuarvo ei välttämättä ole hakusarakkeesta löytyvä, vaan pitäisi pyöristää lähimpään löytyvään lukuarvoon?
Tulukosta haku
haku.päällä
6314
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 6
Vanhimmat
Tuonmoisen kaavan löysin. Ei PHAKUa. Esimerkissä verrattavat luvut A1:A10 ja haettava arvo B1.
=INDEKSI(A1:A10;VASTINE(MIN(INDEKSI(ITSEISARVO(B1-A1:A10);0;0));INDEKSI(ITSEISARVO(B1-A1:A10);0;0);0))
Netistä löytyy kaavoja vaikka kuinka paljon. Google haku vaikka "excel find nearest value"
Siis tarkoitus on olla yksi sarake jossa on epämääräisin välein lukuarvoja joihin haku suoritetaan. Sitten on toinen sarake jossa on vastaavat noudettavat arvot samalla rivillä.
Haku suoritetaan kuitenkin lukuarvolla jonka pitäisi pyöristyä lähimpään hakusarakkeessa olevaan lukuarvoon. PHAKU edellyttää että haettava arvo on täsmälleen sama kuin hakurivillä, eikä tavallinen pyöristys ei auta, koska kaikkia tasalukuja ei ole hakurivillä.
Function EtsiLähin(x As Variant, luvut, arvot As Range) As Variant
r = luvut.Rows.Count
If r > arvot.Rows.Count Then r = arvot.Rows.Count
For i = 1 To r
If (x = luvut(i, 1)) Or (i = r) Then
EtsiLähin = arvot(i, 1)
Exit Function
ElseIf x < luvut(i 1, 1) Then
If x < WorksheetFunction.Average(luvut(i, 1), luvut(i 1, 1)) Then
EtsiLähin = arvot(i, 1)
Else
EtsiLähin = arvot(i 1, 1)
End If
Exit Function
End If
Next i
End Function
Pulma ratkesi HAKU funktiolla.
HAKU(A1; B1:B25;C1:C25) pyöristää alas päin jos matriisista ei löydy haettua lukuarvoa.
Alaspäin pyöristetty ei ole lähin.
Ei niin, mutta tässä sovelluksessa se on parempi kuin normaali pyöristys.