Excel lookup-kysymys

Voinko tehdä jotenkin näppärästi haun taulukkoon, jossa vaaka- ja pystyrivien otsikot ovat tekstimuotoisia (ja niiden risteyksessä tietysti se haettava arvo).

Onnistuuko? Miten?

-Ari
133246
Äänestä

Muut lukivat myös

Vastaukset 13

Vanhimmat

tämmöinen yhdistelmä phaku ja vastine funktioita.Voi olla ettei tämä sovi sinun taulukkoosi mutta voithan soveltaa

PHAKU(B9;A1:E5;VASTINE(B8;A1:E1;0);0)

B8 sarakeotsikko
B9 riviotsikko

Äänestä
  • Mitäs noi PHAKU ja VASTINE on englanniksi...?

    -Ari

    Äänestä

  • Ari kirjoitti:

    Mitäs noi PHAKU ja VASTINE on englanniksi...?

    -Ari

    phaku = vlookup
    vastine = match

    Äänestä

Valitse hakualue ja valitse Lisää/Nimi/Luo ja avautuvasta valikosta oikeat vaihtoehdot luo nimille. Kun haluat hakea arvoa kirjoitat vain soluun kaavan = sarakeotsikko riviotsikko tai toisten päin =riviotsikko sarakeotsikko :)

Äänestä
  • on näppärä tapa hoitaa asia, hienoa !

    Äänestä

  • aivan uusi asia minullekin, mutta käy moneen hakuun

    Äänestä

  • paavali kirjoitti:

    aivan uusi asia minullekin, mutta käy moneen hakuun

    Tota leikkaus funktiota kutsutaan Excelin Native Languageksi...
    Ollos hyvä vaan! :)

    Äänestä

  • Kunde kirjoitti:

    Tota leikkaus funktiota kutsutaan Excelin Native Languageksi...
    Ollos hyvä vaan! :)

    Onnistuuko sama "oikelta vasemmalle"
    esim.Sarakeotsikot: nimi, pituus, paino
    Löytyykö joku konsti etsiä kuka painaa 63kg

    Äänestä

  • paavali kirjoitti:

    Onnistuuko sama "oikelta vasemmalle"
    esim.Sarakeotsikot: nimi, pituus, paino
    Löytyykö joku konsti etsiä kuka painaa 63kg

    INDEKSI(VASTINE) hakee kyllä, mutta onnistuuko tuolla toisella tavalla.

    Äänestä

  • paavali kirjoitti:

    INDEKSI(VASTINE) hakee kyllä, mutta onnistuuko tuolla toisella tavalla.

    Mutta tällä voi hakea taulukosta kanssa mistä sarakkeesta tahansa :)

    Function PHakuVasemmalle(Hakuarvo, ByVal Hakutaulukko As Range, _
    PalArvoSarakeSiirtymä As Integer, _
    Optional HakuarvoSarake As Integer = -257)
    ' Tämä funktio hakee arvoja vasemmalta tai oikealta
    ' Kun määrittelet neljännen arvon voit käyttää mitä tahansa saraketta
    ' Kolmas argumentti on sarakkeiden määrä siirtymänä vasemmanpuoleisesta
    ' sarakkeesta (0 -pohjainen).Esim 1 palauttaa toisen sarakkeen arvon


    ' Varmistetaan, että käytetään vain yhtä aluetta
    If Hakutaulukko.Areas.Count > 1 Then
    MsgBox "Voit hakea vain yhtenäiseltä alueelta"
    Exit Function
    End If

    With Application

    'Jos hakuehtoa toiselle sarakkeele ei ole annettu,
    'niin palautetaan arvo vasemman puoleisesta sarakkeesta
    If HakuarvoSarake = -257 Then
    PHakuVasemmalle = _
    .Index(Hakutaulukko.Offset(0, PalArvoSarakeSiirtymä), _
    .Match(Hakuarvo, Hakutaulukko.Columns(1), 0), 1)

    ' Muuten palautetaan hakuarvoa vastaava arvo
    'syötetystä sarakkeesta -1
    Else
    PHakuVasemmalle = _
    .Index(Hakutaulukko.Offset(0, PalArvoSarakeSiirtymä), _
    .Match(Hakuarvo, Hakutaulukko.Columns(HakuarvoSarake), 0), 1)
    End If

    End With

    End Function

    Äänestä

  • Kunde kirjoitti:

    Mutta tällä voi hakea taulukosta kanssa mistä sarakkeesta tahansa :)

    Function PHakuVasemmalle(Hakuarvo, ByVal Hakutaulukko As Range, _
    PalArvoSarakeSiirtymä As Integer, _
    Optional HakuarvoSarake As Integer = -257)
    ' Tämä funktio hakee arvoja vasemmalta tai oikealta
    ' Kun määrittelet neljännen arvon voit käyttää mitä tahansa saraketta
    ' Kolmas argumentti on sarakkeiden määrä siirtymänä vasemmanpuoleisesta
    ' sarakkeesta (0 -pohjainen).Esim 1 palauttaa toisen sarakkeen arvon


    ' Varmistetaan, että käytetään vain yhtä aluetta
    If Hakutaulukko.Areas.Count > 1 Then
    MsgBox "Voit hakea vain yhtenäiseltä alueelta"
    Exit Function
    End If

    With Application

    'Jos hakuehtoa toiselle sarakkeele ei ole annettu,
    'niin palautetaan arvo vasemman puoleisesta sarakkeesta
    If HakuarvoSarake = -257 Then
    PHakuVasemmalle = _
    .Index(Hakutaulukko.Offset(0, PalArvoSarakeSiirtymä), _
    .Match(Hakuarvo, Hakutaulukko.Columns(1), 0), 1)

    ' Muuten palautetaan hakuarvoa vastaava arvo
    'syötetystä sarakkeesta -1
    Else
    PHakuVasemmalle = _
    .Index(Hakutaulukko.Offset(0, PalArvoSarakeSiirtymä), _
    .Match(Hakuarvo, Hakutaulukko.Columns(HakuarvoSarake), 0), 1)
    End If

    End With

    End Function

    Vääntäisitkö rautalangasta miten tuota käytetään.

    Äänestä

  • Kokeilunhaluinen kirjoitti:

    Vääntäisitkö rautalangasta miten tuota käytetään.

    Lisää VBa editorissa moduuli ja kopioi koodi sinne.Tee soluun kaava lisää funktiolla PhakuVasemmalle ja anna argumentit seuraavasti.
    1. Tapaus haetaan arvo mistä sarakkeesta tahansa

    Hakuarvo=Arvo millä haetaan
    Hakutaulukko=Alue mistä haetaan
    PalArvoSarakeSiirtymä=Hakutaulukon sarakkeen numero vasemmalta alkaen ,jonka arvo halutaan palauttaa (hakutaulukon vasemmanpuoleisin sarake=0).
    HakuarvoSarake= sarakkeen numero hakutaulukossa (vasemmanpuoleisin sarake=1)
    jos HakuarvoSaraketta ei määritellä toimii kuten normaali PHAKU, mutta muista muuttaa Hakutaulukko myös vastaamaan normaalia PHAKU taulukkoa elikkä hakuehto on hakualueen vasemmanpuoleisin sarakkeessa...
    tulikohan se nyt selvästi kerrottua?
    esim.
    solussa on kaava
    =PHakuVasemmalle(H1;A1:F13;2;6)
    H1= arvo millä haetaan
    A1:F13= hakualue
    2= sarake mistä arvo palautetaan -vasemmanpuoleisin sarake on 0 jne.
    6= sarake missä haettava arvo on -vasemmanpuoleisin sarake on 1

    2. Tapaus neljättä argumenttiä ei anneta,siis normaali PHAKU tapaus
    Hakuarvo=Arvo millä haetaan
    Hakutaulukko=Alue mistä haetaan, nyt pitää muistaa,että Hakuarvo pitää olla alueen vasemmanpuoleisessa sarakkeessa
    PalArvoSarakeSiirtymä=Hakutaulukon sarakkeen numero vasemmalta alkaen ,jonka arvo halutaan palauttaa (hakutaulukon vasemmanpuoleisin sarake=0).
    HakuarvoSarake= tämä jätetään nyt tyhjäksi!
    esim.
    solussa on kaava
    =PHakuVasemmalle(H3;C1:F13;1)
    H3= arvo millä haetaan
    C1:F13= hakualue
    1= sarake mistä arvo palautetaan -vasemmanpuoleisin sarake on 0 jne.

    Mallitiedosto kertoisi enemmän kuin 1000 sanaa ... mutta tässä foorumissa sitä ei voi liittää mukaan.

    Äänestä

  • Kunde kirjoitti:

    Lisää VBa editorissa moduuli ja kopioi koodi sinne.Tee soluun kaava lisää funktiolla PhakuVasemmalle ja anna argumentit seuraavasti.
    1. Tapaus haetaan arvo mistä sarakkeesta tahansa

    Hakuarvo=Arvo millä haetaan
    Hakutaulukko=Alue mistä haetaan
    PalArvoSarakeSiirtymä=Hakutaulukon sarakkeen numero vasemmalta alkaen ,jonka arvo halutaan palauttaa (hakutaulukon vasemmanpuoleisin sarake=0).
    HakuarvoSarake= sarakkeen numero hakutaulukossa (vasemmanpuoleisin sarake=1)
    jos HakuarvoSaraketta ei määritellä toimii kuten normaali PHAKU, mutta muista muuttaa Hakutaulukko myös vastaamaan normaalia PHAKU taulukkoa elikkä hakuehto on hakualueen vasemmanpuoleisin sarakkeessa...
    tulikohan se nyt selvästi kerrottua?
    esim.
    solussa on kaava
    =PHakuVasemmalle(H1;A1:F13;2;6)
    H1= arvo millä haetaan
    A1:F13= hakualue
    2= sarake mistä arvo palautetaan -vasemmanpuoleisin sarake on 0 jne.
    6= sarake missä haettava arvo on -vasemmanpuoleisin sarake on 1

    2. Tapaus neljättä argumenttiä ei anneta,siis normaali PHAKU tapaus
    Hakuarvo=Arvo millä haetaan
    Hakutaulukko=Alue mistä haetaan, nyt pitää muistaa,että Hakuarvo pitää olla alueen vasemmanpuoleisessa sarakkeessa
    PalArvoSarakeSiirtymä=Hakutaulukon sarakkeen numero vasemmalta alkaen ,jonka arvo halutaan palauttaa (hakutaulukon vasemmanpuoleisin sarake=0).
    HakuarvoSarake= tämä jätetään nyt tyhjäksi!
    esim.
    solussa on kaava
    =PHakuVasemmalle(H3;C1:F13;1)
    H3= arvo millä haetaan
    C1:F13= hakualue
    1= sarake mistä arvo palautetaan -vasemmanpuoleisin sarake on 0 jne.

    Mallitiedosto kertoisi enemmän kuin 1000 sanaa ... mutta tässä foorumissa sitä ei voi liittää mukaan.

    Ohjeet oli niin hyvät, että minäkin sain sen toimimaan pikku haparoinnin jälkeen.

    Äänestä

Kommentoi aloitusta


Ari kirjoitti:

Voinko tehdä jotenkin näppärästi haun taulukkoon, jossa vaaka- ja pystyrivien otsikot ovat tekstimuotoisia (ja niiden risteyksessä tietysti se haettava arvo).

Onnistuuko? Miten?

-Ari

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu