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?
Entä tälläinen Koodi: 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 Koodi: 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.
Aivan mahtavaa! Se toimii juurikin niin kuin pitää. Itse kuitenkin osaan ohjelmointia jonkun verran, että hieman nolottaa, etten keksinyt tuota. Kuitenkin iso kiitos vielä.
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ä.