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

171

    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. Janne Ahonen E R O A A

      Taas 2 lasta jää vaille ehjää perhettä!
      Kotimaiset julkkisjuorut
      216
      4413
    2. Ja taas ammuttu kokkolassa

      Kokkolaisilta pitäisi kerätä pois kaikki ampumaset, keittiöveitset ja kaikki mikä vähänkään paukku ja on terävä.
      Kokkola
      26
      2751
    3. Tekisi niin mieli laittaa sulle viestiä

      En vaan ole varma ollaanko siihen vielä valmiita, vaikka halua löytyykin täältä suunnalta, ja ikävää, ja kaikkea muuta m
      Ikävä
      106
      2285
    4. Miksi ihmeessä?

      Erika Vikman diskattiin, ei osallistu Euroviisuihin – tilalle Gettomasa ja paluun tekevä Cheek
      Ateismi
      34
      1910
    5. Ootko huomannut miten

      pursuat joka puolelta. Sille joka luulee itsestään liikoja 🫵🙋🏻‍♂️
      Ikävä
      184
      1666
    6. Erika Vikman diskattiin, tilalle Gettomasa ja paluun tekevä Cheek

      Erika Vikman diskattiin, ei osallistu Euroviisuihin – tilalle Gettomasa ja paluun tekevä Cheek https://www.rumba.fi/uut
      Maailman menoa
      29
      1602
    7. Kuinka kauan

      Olet ollut kaivattuusi ihastunut/rakastunut? Tajusitko tunteesi heti, vai syventyivätkö ne hitaasti?
      Ikävä
      111
      1323
    8. Pitääkö penkeillä hypätä Martina?

      Eivätkö puistonpenkit ole istumista varten.Ei niitä kannata liata hyppäämällä koskaa likaantuvat eikä siellä kukaan niit
      Kotimaiset julkkisjuorut
      221
      1266
    9. Kerropa ESA miten kävi tuomioiden

      Osaako ESA kertoa miten haukkumasi kunnanhallituksen kävi.
      Puolanka
      39
      1212
    10. Maikkarin tentti: Orpo jälleen rauhallinen ja erittäin hyvä, myös Purra oli hyvä

      Lindtman ja Kaikkonen oli kohtalaisia, sen sijaan punavihreät Koskela ja Virta olivat taas heikkoja. Ja vastustavat jalk
      Maailman menoa
      138
      1204
    Aihe