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

206

    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. Mitään järkeä?

      Että ollaan erillään? Kummankin pää on kovilla.
      Ikävä
      119
      1692
    2. Noniin rakas

      Annetaanko pikkuhiljaa jo olla, niin ehkä säilyy vienot hymyt kohdatessa. En edelleenkään halua sulle tai kenellekään mi
      Ikävä
      99
      1518
    3. Lasten hyväksikäyttö netissä - Joka 3. nuori on saanut seksuaalisen yhteydenoton pedofiililtä

      Järkyttävää! Lapsiin kohdistuva seksuaalinen hyväksikäyttö verkossa on yhä pahempi ongelma. Ulkolinja: Lasten hyväksikäy
      Maailman menoa
      37
      983
    4. Multa sulle

      Pyörit 24/7 mielessä, kuljet mun mukana, mielessä kyselen sun mielipiteitä, vitsailen sulle, olen sydän auki, aitona. M
      Ikävä
      29
      889
    5. Kumpi vetoaa enemmän sinuun

      Kaivatun ulkonäkö vai persoonallisuus? Ulkonäössä kasvot vai vartalo? Mikä luonteessa viehättää eniten? Mikä ulkonäössä?
      Ikävä
      38
      851
    6. Nainen, olen tutkinut sinua paljon

      Salaisuutesi ei ole minulle salaisuus. Ehkä teimme jonkinlaista vaihtokauppaa kun tutkisimme toisiamme. Meillä oli kumm
      Ikävä
      50
      816
    7. Mies, eihän sulla ole vaimoa tai naisystävää?

      Minusta tuntuu jotenkin, että olisit eronnut joskus, vaikka en edes tiedä onko se totta. Jos oletkin oikeasti edelleen s
      Ikävä
      43
      768
    8. Olet myös vähän ärsyttävä

      Tuntuu, että olet tahallaan nuin vaikeasti tavoiteltava. En tiedä kauanko jaksan tätä näin.
      Ikävä
      37
      760
    9. Okei nyt mä ymmärrän

      Olet siis noin rakastunut, se selittää. Onneksesi tunne on molemminpuolinen 😘
      Ikävä
      56
      758
    10. Onko sulla empatiakykyä?

      Etkö tajua yhtään miltä tämä tuntuu minusta? Minä ainakin yritän ymmärtää miltä sinusta voisi tuntua. En usko, että olet
      Ikävä
      37
      730
    Aihe