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
231
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
- 12110332
- 525040
Taas ryssittiin oikein kunnolla
r….ä hyökkäsi Viroon sikaili taas ajattelematta yhtään mitään https://www.is.fi/ulkomaat/art-2000011347289.html422221Lähetä terveisesi kaipaamallesi henkilölle
Vauva-palstalta tuttua kaipaamista uudessa ympäristössä. Kaipuu jatkukoon 💘1052068- 261924
Vanha Suola janottaa Iivarilla
Vanha suola janottaa Siikalatvan kunnanjohtaja Pekka Iivaria. Mies kiertää Kemijärven kyläjuhlia ja kulttuuritapahtumia131601Valtimon Haapajärvellä paatti mäni nurin
Ikävä onnettomuus Haapajärvellä. Vene hörpppi vettä matkalla saaren. Veneessä ol 5 henkilöä, kolme uiskenteli rantaan,411412Tiedän kuka sinä noista olet
Lucky for you, olen rakastunut sinuun joten en reagoi negatiivisesti. Voit kertoa kavereillesi että kyl vaan, rakkautta271050Känniläiset veneessä?
Siinä taas päästiin näyttämään miten tyhmiä känniläiset on. Heh heh "Kaikki osalliset ovat täysi-ikäisiä ja alkoholin v311011Rakastuminenhan on psykoosi
Ei ihme että olen täysin vailla järkeä sen asian suhteen. Eipä olis aikoinaan arvannut, että tossa se tyyppi menee, jonk54977