Tulukosta haku

haku.päällä

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?

6

231

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • 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 Function

        Pulma 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

    1. Laitetaas nyt kirjaimet tänne

      kuka kaipaa ja ketä ?
      Ikävä
      121
      10332
    2. Pieni häivähdys sinusta

      Olet niin totinen
      Ikävä
      52
      5040
    3. Taas ryssittiin oikein kunnolla

      r….ä hyökkäsi Viroon sikaili taas ajattelematta yhtään mitään https://www.is.fi/ulkomaat/art-2000011347289.html
      NATO
      42
      2221
    4. Lähetä terveisesi kaipaamallesi henkilölle

      Vauva-palstalta tuttua kaipaamista uudessa ympäristössä. Kaipuu jatkukoon 💘
      Ikävä
      105
      2068
    5. Missä olet ollut tänään kaivattuni?

      Ikävä sai yliotteen ❤️ En nähnyt sua tänään söpö mies
      Ikävä
      26
      1924
    6. Vanha Suola janottaa Iivarilla

      Vanha suola janottaa Siikalatvan kunnanjohtaja Pekka Iivaria. Mies kiertää Kemijärven kyläjuhlia ja kulttuuritapahtumia
      Kemijärvi
      13
      1601
    7. Valtimon Haapajärvellä paatti mäni nurin

      Ikävä onnettomuus Haapajärvellä. Vene hörpppi vettä matkalla saaren. Veneessä ol 5 henkilöä, kolme uiskenteli rantaan,
      Nurmes
      41
      1412
    8. Tiedän kuka sinä noista olet

      Lucky for you, olen rakastunut sinuun joten en reagoi negatiivisesti. Voit kertoa kavereillesi että kyl vaan, rakkautta
      Ikävä
      27
      1050
    9. Kä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 v
      Nurmes
      31
      1011
    10. Rakastuminenhan on psykoosi

      Ei ihme että olen täysin vailla järkeä sen asian suhteen. Eipä olis aikoinaan arvannut, että tossa se tyyppi menee, jonk
      Ikävä
      54
      977
    Aihe