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
6
296
Vastaukset
- indeksoija
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"- haku.päällä
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ä. - Tämmöinen
haku.päällä kirjoitti:
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 - haku.päällä
Tämmöinen kirjoitti:
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 FunctionPulma ratkesi HAKU funktiolla.
HAKU(A1; B1:B25;C1:C25) pyöristää alas päin jos matriisista ei löydy haettua lukuarvoa. - Tämmöinen
haku.päällä kirjoitti:
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.
- haku.päällä
Tämmöinen kirjoitti:
Alaspäin pyöristetty ei ole lähin.
Ei niin, mutta tässä sovelluksessa se on parempi kuin normaali pyöristys.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Päivän Riikka: polttoöljyn hinta räjähti
Näyttää tuo putinismi ilmenevän persuissa myös Suomen yrittäjien kampittamisena. Polttoöljy on se katalyytti, joka pitää362141Mökkejä ostellaan nyt ihan hulluna!
Tyypilliset lainamäärät on yli 500 000€ mökkejä ostellessa eli erityisesti tuollaiset miljoonamökit on nyt suomalaisten601965Helsingin yllä valopalloja
https://www.iltalehti.fi/kotimaa/a/1508be00-28c9-4156-83dc-0be5e7aa3066 "Helsingin taivaalla lensi lauantaina puolen yön1211910HÄLYYTYS!!
Ukraina se hyökkää jo Suomen maaperälle. https://www.iltalehti.fi/kotimaa/a/645b83ce-e074-4f00-8b99-245d01b38a363771622Kovasti on hävittäjiä ilmassa. Nytkö se alkoi?
Onko nyt sota ?? `Vai harjoituksiako vain? Hävittäjät pörrää kovasti.1031621Helsingin yllä lensi yöllä jotain outoa puolen yön aikaan valopalloja
Poliisi on saanut tapauksesta yhden havaintoilmoituksen. Valopalloja oli noin parikymmentä ILtalehdessä on video tapah1241444Millainen on naisellinen nainen
Nyt kun taas mennään keikkuen kesään, niin millainen nainen on naisellinen? Pukeutuminen, olemus, puhetapa, jne. Vilma n1821072Raamatullinen kaste
Seurakunnassamme kastettiin mm eräs muslimi, joka oli tullut uskoon. Hän oli ollut Suomessa viitisen vuotta. Hän oli lu53957- 73875
- 27869