Henkilötunnus syntymäajaksi

Osaisiko joku kirjoittaa kaavan, jolla saan muunnettua suomalaisen henkilötunnuksen syntymäajaksi eli esim. hetu 080381-308T muotoon 08.03.1981. Makrolla tehden on vähän raskas homma.

Ja sitten vielä kaava, joka laskisi henkilötunnuksen loppuosasta sukupuolen ja merkkaisi sen omaan sarakkeeseen MIES tai NAINEN. Sukupuolitietohan on yksilönumerossa, jotka ovat henkilötunnuksen loppuosan kolme ensimmäistä merkkiä. Viimeinen merkki on tarkistusmerkki. Esimerkissäni henkilö on siis nainen = 308.
77578
Äänestä

Muut lukivat myös

Vastaukset 7

Vanhimmat

ainakin Even ja Odd toimintoja, Even eli parillinen luku (sukupuoli = nainen), Odd eli pariton luku (sukupuoli = mies).

Siinä vaan sitten pitää jotenkin saada napsittua hetun loppuosasta se toiseksi viimeinen merkki, eli siis se merkki ennen tarkistusmerkkiä.

Sitä en tiedä miten sen voisi tehdä, ehkä basicia käyttäen? Tosin en ole officen basic-variantin kanssa tehnyt koskaan mitään....tavallisessa basic-ohjelmoinnissa sen voisi tehdä niin että

HETU$="080381-308T" ' ensin sijoitetaan HETU-merkkijonoksi
L1=LEN(HETU$) ' mitataan HETU-merkkijonon pituus
Sex$=Right$(HETU$, 2) ' otetaan HETU-merkkijonosta kaksi viimeistä merkkiä ja sijoitetaan SEX-merkkijonoon

Sex$=Left$(Sex$,1) ' napsitaan SEX-merkkijonon joka on 2 merkkiä pitkä, vasemmanpuoleinen merkki joka ilmaisee sukupuolen

S1=CVI(Sex$) ' muunnetaan 1 mrk pitkä merkkijono numeroksi

---

Tuota samaa kaavaa voisi noudattaa myös syntymäajan purkamisessa niin että se...hetkinen...ehkäpä myös Format-käsky voisi tulla kyseeseen. HUOM! Format ei Basic-kielessä tarkoita levyn formatointia vaan merkkijonojen "formatointia" elikkä uudelleen muotoilua! Eli on turhaa kuvitella että Basicin Formatilla pystyisi alustamaan levyjä. :D Format-käskyä voidaan käyttää esim. päivämäärien muotoilussa.

Google selventää tarkemmin kun haet kyseistä käskyä ja laitat hakusanan perään vielä basic

Äänestä
  • jotain tuon suuntaista olen yrittänyt vääntää, mutta ei ole oikein onnistunut. Jatkan harjoituksia.

    Äänestä

näillä
=LEFT(A1;2)&"."&MID(A1;3;2)&"."&IF(MID(A1;7;1)="-";"19";IF(MID(A1;7;1)=" ";"18";"20"))&MID((A1);5;2)
=IF(ISEVEN(MID(A1;8;3));"Nainen";"Mies")

Äänestä
  • varmaan toimineet...ei ole kommentteja näkynyt...

    Äänestä

  • hyvin toimi tuo =IF(ISEVEN(MID(A1;8;3));"Nainen";"Mies"), kiitos!

    Äänestä

=JOS((ONPARILLINEN(E506))=TOSI;"Nainen";"Mies")
Kaavasta E506 korvataan sillä solulla, jossa hetu on.

Äänestä

Jos joku tätä yrittää tehdä, niin tässä kaava suomenkieliseen:
=JOS(ONPARILLINEN(POIMI.TEKSTI(D1898;8;3));"nainen";"mies")
Tuo D1898 on solu, jossa HETU on.

Äänestä

Kommentoi aloitusta


Kvolgins kirjoitti:

Osaisiko joku kirjoittaa kaavan, jolla saan muunnettua suomalaisen henkilötunnuksen syntymäajaksi eli esim. hetu 080381-308T muotoon 08.03.1981. Makrolla tehden on vähän raskas homma.

Ja sitten vielä kaava, joka laskisi henkilötunnuksen loppuosasta sukupuolen ja merkkaisi sen omaan sarakkeeseen MIES tai NAINEN. Sukupuolitietohan on yksilönumerossa, jotka ovat henkilötunnuksen loppuosan kolme ensimmäistä merkkiä. Viimeinen merkki on tarkistusmerkki. Esimerkissäni henkilö on siis nainen = 308.

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