Iän laskeminen HETU:n perusteella?

Tinna82

Hei, kuinka Excelissä voisi laskea Hetun perusteella iän? Olen käyttänyt komentoa PVMERO.

Ongelmana on kuitenkin tuo, että hetu pitäisi saada muodosta 010182-12AB muotoon 01.01.1982. Lisäksi, miten lasku tapahtuu, kun kyseessä on 2000 -luvulla syntynyt? tällöin pitäisi saada 010101A12AB -> 01.01.2001 -muotoon.

19

8848

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • paavali50

      Solussa A1 HETU
      Jos haluat iän vuosina kaava
      =JOS(POIMI.TEKSTI(A1;7;1)="-";PVMERO(PÄIVÄYS(19&POIMI.TEKSTI(A1;5;2);POIMI.TEKSTI(A1;3;2);VASEN(A1;2));NYT();"y");JOS(POIMI.TEKSTI(A1;7;1)="A";PVMERO(PÄIVÄYS(20&POIMI.TEKSTI(A1;5;2);POIMI.TEKSTI(A1;3;2);VASEN(A1;2));NYT();"y");""))

      Jos haluat iän päivinä kaava
      =JOS(POIMI.TEKSTI(A1;7;1)="-";PVMERO(PÄIVÄYS(19&POIMI.TEKSTI(A1;5;2);POIMI.TEKSTI(A1;3;2);VASEN(A1;2));NYT();"d");JOS(POIMI.TEKSTI(A1;7;1)="A";PVMERO(PÄIVÄYS(20&POIMI.TEKSTI(A1;5;2);POIMI.TEKSTI(A1;3;2);VASEN(A1;2));NYT();"d");""))

      Elikkä POIMI.TEKSTI funktiolla testataan onko seitsemäs merkki - vai A.
      PÄIVÄYS funktiolla muutetaan päivämääräksi, jota käytetään aloituspäivänä ja NYT() funktio toimii lopetuspäivänä.

      • Utelias

        Entäpä ennen 1.1.1900 syntyneet, execelin ajanlaskuhan alkaa vasta 1900 luvun alusta.
        Seitsemäs merkkihän on jos henkilö on syntynyt 1800 luvulla.
        Onnistuuko laskekeminen jos hetu on
        170496 034h


      • paavali50
        Utelias kirjoitti:

        Entäpä ennen 1.1.1900 syntyneet, execelin ajanlaskuhan alkaa vasta 1900 luvun alusta.
        Seitsemäs merkkihän on jos henkilö on syntynyt 1800 luvulla.
        Onnistuuko laskekeminen jos hetu on
        170496 034h

        Excel ei osaa suoraan laskea ennen 1.1.1900 syntyneiden ikää, mutta 1800 luvulla syntyneiden ikä saadaan kun tehdään JOS kaava joka laskee syntymäajan 1900luvulle ja lisää NYT() päivään sata vuotta(36525 päivää) mikäli seitsemäs merkki on .
        Kaava vuosina
        =JOS(POIMI.TEKSTI(A1;7;1)="-";PVMERO(PÄIVÄYS(19&POIMI.TEKSTI(A1;5;2);POIMI.TEKSTI(A1;3;2);VASEN(A1;2));NYT();"y");JOS(POIMI.TEKSTI(A1;7;1)="A";PVMERO(PÄIVÄYS(20&POIMI.TEKSTI(A1;5;2);POIMI.TEKSTI(A1;3;2);VASEN(A1;2));NYT();"y");JOS(POIMI.TEKSTI(A1;7;1)=" ";PVMERO(PÄIVÄYS(19&POIMI.TEKSTI(A1;5;2);POIMI.TEKSTI(A1;3;2);VASEN(A1;2));NYT() 36525;"y");"")))

        päivinä
        =JOS(POIMI.TEKSTI(A1;7;1)="-";PVMERO(PÄIVÄYS(19&POIMI.TEKSTI(A1;5;2);POIMI.TEKSTI(A1;3;2);VASEN(A1;2));NYT();"d");JOS(POIMI.TEKSTI(A1;7;1)="A";PVMERO(PÄIVÄYS(20&POIMI.TEKSTI(A1;5;2);POIMI.TEKSTI(A1;3;2);VASEN(A1;2));NYT();"d");JOS(POIMI.TEKSTI(A1;7;1)=" ";PVMERO(PÄIVÄYS(19&POIMI.TEKSTI(A1;5;2);POIMI.TEKSTI(A1;3;2);VASEN(A1;2));NYT() 36525;"d");"")))


      • Utelias
        paavali50 kirjoitti:

        Excel ei osaa suoraan laskea ennen 1.1.1900 syntyneiden ikää, mutta 1800 luvulla syntyneiden ikä saadaan kun tehdään JOS kaava joka laskee syntymäajan 1900luvulle ja lisää NYT() päivään sata vuotta(36525 päivää) mikäli seitsemäs merkki on .
        Kaava vuosina
        =JOS(POIMI.TEKSTI(A1;7;1)="-";PVMERO(PÄIVÄYS(19&POIMI.TEKSTI(A1;5;2);POIMI.TEKSTI(A1;3;2);VASEN(A1;2));NYT();"y");JOS(POIMI.TEKSTI(A1;7;1)="A";PVMERO(PÄIVÄYS(20&POIMI.TEKSTI(A1;5;2);POIMI.TEKSTI(A1;3;2);VASEN(A1;2));NYT();"y");JOS(POIMI.TEKSTI(A1;7;1)=" ";PVMERO(PÄIVÄYS(19&POIMI.TEKSTI(A1;5;2);POIMI.TEKSTI(A1;3;2);VASEN(A1;2));NYT() 36525;"y");"")))

        päivinä
        =JOS(POIMI.TEKSTI(A1;7;1)="-";PVMERO(PÄIVÄYS(19&POIMI.TEKSTI(A1;5;2);POIMI.TEKSTI(A1;3;2);VASEN(A1;2));NYT();"d");JOS(POIMI.TEKSTI(A1;7;1)="A";PVMERO(PÄIVÄYS(20&POIMI.TEKSTI(A1;5;2);POIMI.TEKSTI(A1;3;2);VASEN(A1;2));NYT();"d");JOS(POIMI.TEKSTI(A1;7;1)=" ";PVMERO(PÄIVÄYS(19&POIMI.TEKSTI(A1;5;2);POIMI.TEKSTI(A1;3;2);VASEN(A1;2));NYT() 36525;"d");"")))

        Noinhan se onnistuu


    • Tinna82

      Hetun perusteella sukupuli määritellään loppuosan kolmen ensimmäisen numeron perusteella, jos numerosarja (esim hetussa 000000-453X numero 453) on parillinen, kyseessä nainen, parittomilla sarjoilla mies.

      Sukupuoli pystytään tunnistaan excelissä mm. näin, kun laittaa moneen soluun tavaraa:

      A1 =000000-453w    
      B1 =POIMI.TEKSTI(A1;8;3)/2
      C1 =OIKEA(A2;2)
      D1 =POIMI.TEKSTI(C1;1;1)
      E1 =JOS(LASKE.JOS(D1;"*,*");"mies";"nainen")

      Mutta, kuinka saan tuon kaiken laitettua yhdeksi kaavaksi? (tai vielä yksinkertaisemmin)

      • tämä ?

        =IF(ISODD(LEFT(RIGHT(A1;4);3));"mies";"nainen")

        JOS(ONPARITON(VASEN(OIKEA(A1;4);3));"mies";"nainen")


      • ei toimi.
        tämä ? kirjoitti:

        =IF(ISODD(LEFT(RIGHT(A1;4);3));"mies";"nainen")

        JOS(ONPARITON(VASEN(OIKEA(A1;4);3));"mies";"nainen")

        Ei valitetavasti toimi, tuo ISODD / ONPARITON -ei tunnu toimivan..


      • Tinna82
        ei toimi. kirjoitti:

        Ei valitetavasti toimi, tuo ISODD / ONPARITON -ei tunnu toimivan..

        Ilmeisesti tämä ei toimi 2002 excelissä..
        kokeilen johonkin soluun kaavaa =PARITON(5) palauttaa arvon #nimi


      • paavali50
        Tinna82 kirjoitti:

        Ilmeisesti tämä ei toimi 2002 excelissä..
        kokeilen johonkin soluun kaavaa =PARITON(5) palauttaa arvon #nimi

        Jos analyysityökalut ei ole käytössä ONPARITON funktio ei toimi.
        Työkalut -> Apuohjelmat -> täppä kohtaan Analyysitökalut ja OK.

        Älä sekoita
        =PARITON ja =ONPARITON funktioita


    • eno2

      Joskus takavuosina virittelin tälläisen käyttäjän funktion iän laskemiseen - paha kyllä ei ole pahemmin kommentteja mutta kyllähän tuo kai selviää.

      '*********iän lasku
      Function laske_synt(hetu, tapvm)
      Dim svv, skk, spv, tvv, tkk, tpv, oletus, ika
      svv = "19" & Mid(hetu, 5, 2)
      skk = Mid(hetu, 3, 2)
      spv = Mid(hetu, 1, 2)
      tvv = "20" & Mid(tapvm, 9, 2)
      tkk = Mid(tapvm, 4, 2)
      tpv = Mid(tapvm, 1, 2)
      oletus = tvv - svv
      ika = tvv - svv

      If skk < tkk Then
      ElseIf skk = tkk And spv > tpv Then
      oletus = ika - 1
      ElseIf skk > tkk Then
      oletus = ika - 1
      Else: oletus = ika
      End If
      laske_synt = oletus
      End Function

      '*********
      tämä kyselee, missä hetu on ja päivämäärä, minkä mukaan lasku tapahtuu (täytyy olla muodossa 01.01.2006)

      • Jaames

        Muutaman vuoden myöhässä näin töistä kiitokset Paavali50:lle :)


    • speksaaja

      Kiitos Paavali50, lopputyöni edistyi avullasi kukonaskeleen verran!
      terv. opiskelija

    • Tommi55

      Tuossapa paranneltu classic asp koodi versio
      joka tsekkaa hetun ja syötetyn päivämäärän pituuden.
      Myös erotinmerkille tehty tarkastus mukana.


      Function CalculateAge(hetu, tapvm)

      Dim yearPrefix
      Dim svv, skk, spv, tvv, tkk, tpv, oletus, ika

      If Len(Trim(hetu)) = 11 And Len(Trim(tapvm)) = 10 Then

      yearPrefix = Mid(hetu, 7, 1)

      'response.write yearPrefix
      'response.end

      If yearPrefix = "A" Then
      yearPrefix = "20"
      ElseIf yearPrefix = "-" Then
      yearPrefix = 19
      Else
      yearPrefix = "?"
      End If

      If yearPrefix "?" Then

      svv = yearPrefix & Mid(hetu, 5, 2)
      skk = Mid(hetu, 3, 2)
      spv = Mid(hetu, 1, 2)

      tvv = "20" & Mid(tapvm, 9, 2)
      tkk = Mid(tapvm, 4, 2)
      tpv = Mid(tapvm, 1, 2)
      oletus = tvv - svv
      ika = tvv - svv

      If skk < tkk Then
      ElseIf skk = tkk And spv > tpv Then
      oletus = ika - 1
      ElseIf skk > tkk Then
      oletus = ika - 1
      Else: oletus = ika
      End If

      CalculateAge = oletus

      Else
      CalculateAge = "?"
      End If
      Else
      CalculateAge = "?"
      End IF

      End Function

    • Anonyymi

      Syntynyt 5.1.1879
      Kuollut21.4.1962
      Miten lasketaan ikä exelillä?

      • Anonyymi

        Riippuu siitä kuka on kuollut.


      • Anonyymi

        Isompi luku miinus pienempi luku.


      • Anonyymi

      • Anonyymi

    • Anonyymi

      Helppo homma, kerron joskus.

    Ketjusta on poistettu 1 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Riikka runnoo: datakeskuksille tulee UUSI yritystuki

      "Suomen valtio erikseen tukee esimerkiksi kryptovaluuttaan tai aikuisviihteeseen tai muuhun keskittyviä datakeskuksia.",
      Maailman menoa
      17
      5042
    2. Elikkä Riikka Purra ei kannusta Suomea edes euroviisuissa

      Sellaista on persujen "isänmaallisuus", oma kansa viimeiseksi ja ulkomaalaiset ensimmäisiksi. https://www.iltalehti.fi/
      Maailman menoa
      91
      2276
    3. Mitä kirjainta haluaisit

      rakastella juuri nyt?
      Ikävä
      135
      1968
    4. Riikka: 3 euron bensa, Ruotsi: bensavero jopa alle EU-minimin

      Eipä vaan suomalainen autoilija saa kaikkien rakastamalta Riikalta sympatiaa. Ruotsissa on eri meininki, siellä diskutee
      Maailman menoa
      47
      1846
    5. Victoria-tytär, 16, vertaa Martina Aitolehteä ja Esko Eerikäistä: "Iskä on enemmän..."

      Martina Aitolehti ja Esko Eerikäinen ovat ex-pari ja heillä on yksi yhteinen tytär, Victoria. Eerikäinen oli Huomenta Su
      Kotimaiset julkkisjuorut
      117
      1610
    6. "UKRAINA HYÖKKÄÄ LATVIAN ÖLJYVARASTOON JA JUNAAN"!!!

      "MATKUSTAJAJUNA SAI UKRAINALAISLENNOKEISTA VAKAVIA VAURIOITA"!!!
      Maailman menoa
      55
      1236
    7. Hilma Hallo-ahon kuvat julki - kiistää SSK ryhmän nimen merkityksen

      Eduskunnan puhemies Jussi Halla-ahon tyttären ympärille on noussut skandaali. Lehdistö sai selville Hilma Hallo-ahon kuu
      Perussuomalaiset
      110
      865
    8. Sofia Belorf rehellisenä suhteen alusta Jeff-miljonäärirakkaaseen: "Hän ei..."

      Sofia Belórfin elämä on tapetilla Sofia Bling Bling Dubai -realityssä. Näyttävien puitteiden rinnalla Belórf avaa elämää
      Kotimaiset julkkisjuorut
      48
      811
    9. Äänestän seuraavissa eduskuntavaaleissa persuja.

      Persut on ainoa puolue, joka aidosti vastustaa islamisaatiota Suomessa.
      Maailman menoa
      297
      799
    10. Kaupungin yt

      Honkolan tai hietaman koulu suljetaan. Säästölistalle on nostettu muun muassa Honkolan tai Hietaman koulun toiminnan l
      Äänekoski
      24
      644
    Aihe