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

293

    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. Eutanasia - miksi eläimelle sallitaan armokuolema, mutta ihmiselle ei?

      Olen pitkään ihmetellyt yhtä asiaa Suomessa. Kun koira kärsii parantumattomasta sairaudesta ja kovista kivuista, eläinlä
      Arvot ja etiikka
      26
      11467
    2. Veli Sofia teki urosmehiläisen työn

      Paljastaessaan kuinka TPS:ssä ei joukkuehenki toimi sooloilijoiden vuoksi, jonka takia koko seura ei pärjää kilpailussa
      Maailman menoa
      52
      4023
    3. Unisex-vessat

      Ahdistaa. Miksi kaikki pitää tasapäistää tasa-arvon nimissä? Tasa-arvo on sitä, että kunnioitetaan sukupuolien erilaisu
      Tunteet
      116
      3227
    4. Sosiaalidemokratia romahtanut kautta maailman

      nuoret eivät enää kannata järjetöntä aatetta, joten demarien täytyy hakea kannattajia mamuista. Ruotsin sos.demit jo kie
      Maailman menoa
      165
      2544
    5. Miksi Seta ja Sofia Virta ei vaadi muslimeita kunnioittamaan priden-arvoja?

      Kuten tiedetään niin islam ei hyväksy sitä mitä pride edustaa. Seta-pomo Mikkonen nosti hirveän äläkän kun yksi tepsin
      Maailman menoa
      107
      2276
    6. Vastuun ottaminen omasta hyvinvoinnista

      Olen huomannut tuttavapiirissäni ihmisiä, joilla on mt-diagnooseja. Sen sijaan, että millekään asialle yritettäisiin teh
      206
      1855
    7. Sofia Virralle täydet 12 pistettä!

      Kun ei jäänyt mukaan vähemmistöjen sortamista epäsuorasti tukevaan joukkueeseen. Urheilijoiden pitäisi olla esikuvia.
      Maailman menoa
      315
      1120
    8. Kuvaile kaivattusi

      ulkonäkö. Asiattomatkin kommentit saa laittaa. -🏚️
      Ikävä
      64
      905
    9. Miksi Hotelli Kainuuta dissataan?

      Ihmetyttää tämä jatkuva yhden yrityksen arvosteleminen. Ikäänkuin mikään ei olisi hyvin. Kuitenkin yritys työllistää, ta
      Kuhmo
      18
      895
    10. Toisten elämän moralisointi

      Eikö kukin voisi keskittyä lähinnä omaan elämäänsä? Jos jollakulla muulla on tunteita, ajatuksia, tai tekoja oman suhte
      Tunteet
      143
      815
    Aihe