User Käyttäjä Salasana  
   
keskiviikko 12.11.2025 / 08:49
Hae keskustelualueilta:        In English   Suomeksi   På svenska
afterdawn.com > keskustelu > yleistä keskustelua tietokoneista > windows -ongelmat > excel: uniikin id:n löytäminen
Näytä aiheet
 
Keskustelualueet
Keskustelualueet
Excel: uniikin ID:n löytäminen
  Siirry:
 
Kirjoittaja Viesti
thezan
Junior Member
_
11. elokuuta 2009 @ 09:21 _ Linkki tähän viestiin    Lähetä käyttäjälle yksityisviesti   
Eli ongelma on tämä: Minulla on Sarake jossa on tietoa, josta pitää löytää se yksi uniikki ID. Sarakkeesta löytyy 16 solua, jossa lukee "ei löydy" ja aina yksi "A - Q" eli siis uniikki ID tässä tapauksessa on jokin kirjain väliltä "A - Q".

Tässä esimerkkki sarakkeesta:
ei löydy
B
ei löydy
ei löydy
ei löydy
ei löydy
ei löydy
ei löydy
ei löydy
ei löydy
ei löydy
ei löydy
ei löydy
ei löydy
ei löydy
ei löydy
ei löydy

Eli tarvitsisin funktion tai VBA koodin pätkän, joka voisi etsiä tuossa tapauksessa tuon "B" kirjaimen. Huomioidaan vielä, että tässä tapauksessa ei tule kuuloonkaan Excelin pika / erikoisuodatus ominaisuus. Sen tarvitseen nimenomaan olla yhteen soluun löydetty uniikki kirjain. Esimerkkinä funktio =PHAKU("B";A1:A17;1;EPÄTOSI) ei tule kysmykseen, koska jossain muussa tapauksessa kirjain "B" voi olla, joku muu väliltä "A - Q" niin kuin aikaisemmin mainitsin. Periaatteessa tämän olisi pystynyt rakentamaan yhteen soluun käyttämällä JOS funktioita ja PHAKU funktioita sisäkkäin, mutta yhden solun maksimi koko ei riittänyt tähän. Joten mikä avuksi?
tukis
Suspended due to non-functional email address
_
11. elokuuta 2009 @ 16:09 _ Linkki tähän viestiin    Lähetä käyttäjälle yksityisviesti   
Entä tälläinen


Function OmaID(Hakualue As Range)
    Dim Solu As Range
    For Each Solu In Hakualue.Cells
     If Solu.Value <> "ei löydy" Then OmaID = Solu.Value: Exit For Else OmaID = ""
    Next
End Function

Funtion käyttö: soluun esim. =OmaID(A1:A17)

Funktio ei päivity jollei muuta jotain solua. Pitäisikö muuttaa pysymättämäksi. F9 painamalla saa päivitettyä kaavan muokkauksen jälkeen muuttamatta solujen arvoja. Tuo tulee siis eteen vain kaavaa muokatessa esim. kokeiltaessa kaavan muutoksia.

En osaa VBA tai muutakaan ohjelmointia.

Poistettu ELSE -lause ja korvattu se OmaID = "":lla

Function OmaID(Hakualue As Range)
    OmaID = ""
    Dim Solu As Range
    For Each Solu In Hakualue.Cells
     If Solu.Value <> "ei löydy" Then OmaID = Solu.Value
    Next
End Function

Jos ottaa : Exit For pois myös, niin toimii muuten samoin, mutta useamman "osuman" tapauksessa jää viimeinen voimaan.

Viestiä on muokattu lähettämisen jälkeen. Viimeisin muokkaus 11. elokuuta 2009 @ 16:48

thezan
Junior Member
_
12. elokuuta 2009 @ 14:23 _ Linkki tähän viestiin    Lähetä käyttäjälle yksityisviesti   
Aivan mahtavaa! Se toimii juurikin niin kuin pitää. Itse kuitenkin osaan ohjelmointia jonkun verran, että hieman nolottaa, etten keksinyt tuota. Kuitenkin iso kiitos vielä.
Mainos
_
__
 
_
tukis
Suspended due to non-functional email address
_
12. elokuuta 2009 @ 14:40 _ Linkki tähän viestiin    Lähetä käyttäjälle yksityisviesti   
Ei koodin kirjoittaminen minullekaan täysin vierasta ole, mutta tarkoitin etten ole perehtynyt mihinkään kuin pintapuolisesti, joten jälki voi olla mitä on ja voi löytyä paljon parempi tapa ratkaista tehtävä.
afterdawn.com > keskustelu > yleistä keskustelua tietokoneista > windows -ongelmat > excel: uniikin id:n löytäminen
 

Apua ongelmiin: AfterDawnin keskustelualueet | AfterDawnin Vastaukset
Uutiset: IT-alan uutiset | Uutisia puhelimista
Musiikkia: MP3Lizard.com
Tuotearviot: Laitevertailu | Vertaa puhelimia | Vertaa kännykkäliittymiä
Pelit: Pelitiedostot, pelidemot ja trailerit
Ohjelmat: download.fi | AfterDawnin ohjelma-alueet
International: AfterDawn in English | Software downloads | Free, legal MP3s | AfterDawn på svenska
RSS -syötteet: AfterDawnin uutiset | Uusimmat ohjelmapäivitykset | Keskustelualueiden viestit
Tietoja: Tietoa AfterDawn Oy:stä | Mainosta sivuillamme | Sivuston käyttöehdot ja tietoja yksityisyydensuojasta
Ota yhteyttä: Lähetä palautetta | Ota yhteyttä mainosmyyntiimme
 
  © 1999-2025 AfterDawn Oy