aaa Postad 2 mars, 2011 Share Postad 2 mars, 2011 Jag skulle behöva hjälp med att få personnummer (ÅÅÅÅMMDD-0000) till ålder. Har slitit mitt hår och inte kommit fram till någon lösning. Förstår att jag måste ta bort de sista fyra och sedan lägga till / mellan årtal, månad och dag, men det är lättare sagt än gjort. Tack på förhand! Länk till kommentar Dela på andra webbplatser More sharing options...
peranders Postad 2 mars, 2011 Share Postad 2 mars, 2011 http://www.99.se/filemaker/243448-fodelsedagar-i-kalender.html Kan det vara nåt? 10 sekunder i Google med "personnummer filemaker ålder" Länk till kommentar Dela på andra webbplatser More sharing options...
aaa Postad 2 mars, 2011 Författare Share Postad 2 mars, 2011 http://www.99.se/filemaker/243448-fodelsedagar-i-kalender.html Kan det vara nåt? 10 sekunder i Google med "personnummer filemaker ålder" Tack och bock. Känner till den tråden och den ger mig nada eftersom jag måste fråga några saker. Bla hur man från personnummer ÅÅÅÅMMDD-0000 till ÅÅÅÅ/MM/DD Har försökt signa upp där några gånger men mer krångligt sätt att göra det på finns inte (skiter sig eftersom man bor utomlands). Jag hatar 99mac. Någon som har ett relevant svar utan att säga sök på google. Länk till kommentar Dela på andra webbplatser More sharing options...
Hetlund Postad 3 mars, 2011 Share Postad 3 mars, 2011 Jag orkade inte riktigt läsa hela inlägget på Mac99. Formler är inte riktigt min sak. Det fanns en tråd här på Forum för lite sedan om att räkna ut ålder utifrån födelsedatum i Excel. Kanske kan ge lite inspiration, trots att det är ett helt annat program. En möjlighet att bli av med "de fyra sista siffrorna" vore väl att ha två inmatningsfält: ett för födelsedatum och ett för de fyra sista siffrorna. Och ett litet skript som gör att man hoppar direkt från "födelsedatum" till "fyra sista siffror"? Men då måste du kanske göra om hela din databas? Länk till kommentar Dela på andra webbplatser More sharing options...
peranders Postad 3 mars, 2011 Share Postad 3 mars, 2011 Har du testat exemplet i inlägget jag tipsade dig om? Det du måste använda är strängmanipuleringsfunktioner. Du får jobba i flera steg med att markera position och därefter infoga tecken. Länk till kommentar Dela på andra webbplatser More sharing options...
iMatte v. 2.0 Postad 3 mars, 2011 Share Postad 3 mars, 2011 Tack och bock. Känner till den tråden och den ger mig nada eftersom jag måste fråga några saker. Bla hur man från personnummer ÅÅÅÅMMDD-0000 till ÅÅÅÅ/MM/DD Har försökt signa upp där några gånger men mer krångligt sätt att göra det på finns inte (skiter sig eftersom man bor utomlands). Jag hatar 99mac. Någon som har ett relevant svar utan att säga sök på google. Ok, vi tar det steg för steg: 1) Skapa tre olika fält: a ) personnummer (typ Text) Personnummer måste skrivas in i formen "19721224-3455" för att fungera i formlerna nedan. b ) födelsedatum (Typ Beräkning). Detta fält behöver inte synas i databaslösningen sedan, men det behövs för beräkningssteget. I formelfältet kopierar/klistrar du in följande: Middle ( personnummer ; 3 ; 2 )&"-"&Middle ( personnummer ; 5 ; 2 )&"-"&Middle ( personnummer ; 7 ; 2 ) Beräkningsresultat ska vara i formatet "Datum" - anges vid sidan av formelfältet. c ) ålder (Typ Beräkning) Kopiera in följande i formelfältet: GetAsText ( Year ( Get ( AktuelltDatum ) ) - Year ( födelsedatum ) - If ( Get ( AktuelltDatum ) < Date ( Month ( födelsedatum ) ; Day ( födelsedatum ) ; Year ( Get ( AktuelltDatum ) ) ) ; 1 ; 0 ) ) & " År, " & GetAsText ( Mod ( Month ( Get ( AktuelltDatum ) ) - Month ( födelsedatum ) + 12 - If ( Day ( Get ( AktuelltDatum ) ) < Day ( födelsedatum ) ; 1 ; 0 ) ; 12 ) ) & " månader, " & GetAsText ( Day ( Get ( AktuelltDatum ) ) - Day ( födelsedatum ) + If ( Day ( Get ( AktuelltDatum ) ) ≥ Day ( födelsedatum ); 0 ; If ( Day ( Get ( AktuelltDatum ) - Day ( Get ( AktuelltDatum ) ) ) < Day ( födelsedatum ) ; Day ( födelsedatum ) ; Day ( Get ( AktuelltDatum ) - Day ( Get ( AktuelltDatum ) ) ) ) ) ) & " dagar " Beräkningsresultat ska vara i formatet "Text" - anges vid sidan av formelfältet. Jag har testat och det fungerar bra. Kom ihåg att om du vill ha andra namn på fälten än i mitt exempel så måste du ändra dem konsekvent i alla formler Tillägg: Om du vill ha personnumret i formatet "721224-3455" i stället så kör denna kod i formelfältet för fältet "födelsedatum" i stället: Middle ( personnummer ; 1 ; 2 )&"-"&Middle ( personnummer ; 3 ; 2 )&"-"&Middle ( personnummer ; 5 ; 2 ) Länk till kommentar Dela på andra webbplatser More sharing options...
aaa Postad 4 mars, 2011 Författare Share Postad 4 mars, 2011 Ok, vi tar det steg för steg: 1) Skapa tre olika fält: a ) personnummer (typ Text) Personnummer måste skrivas in i formen "19721224-3455" för att fungera i formlerna nedan. b ) födelsedatum (Typ Beräkning). Detta fält behöver inte synas i databaslösningen sedan, men det behövs för beräkningssteget. I formelfältet kopierar/klistrar du in följande: Middle ( personnummer ; 3 ; 2 )&"-"&Middle ( personnummer ; 5 ; 2 )&"-"&Middle ( personnummer ; 7 ; 2 ) Beräkningsresultat ska vara i formatet "Datum" - anges vid sidan av formelfältet. c ) ålder (Typ Beräkning) Kopiera in följande i formelfältet: GetAsText ( Year ( Get ( AktuelltDatum ) ) - Year ( födelsedatum ) - If ( Get ( AktuelltDatum ) < Date ( Month ( födelsedatum ) ; Day ( födelsedatum ) ; Year ( Get ( AktuelltDatum ) ) ) ; 1 ; 0 ) ) & " År, " & GetAsText ( Mod ( Month ( Get ( AktuelltDatum ) ) - Month ( födelsedatum ) + 12 - If ( Day ( Get ( AktuelltDatum ) ) < Day ( födelsedatum ) ; 1 ; 0 ) ; 12 ) ) & " månader, " & GetAsText ( Day ( Get ( AktuelltDatum ) ) - Day ( födelsedatum ) + If ( Day ( Get ( AktuelltDatum ) ) ≥ Day ( födelsedatum ); 0 ; If ( Day ( Get ( AktuelltDatum ) - Day ( Get ( AktuelltDatum ) ) ) < Day ( födelsedatum ) ; Day ( födelsedatum ) ; Day ( Get ( AktuelltDatum ) - Day ( Get ( AktuelltDatum ) ) ) ) ) ) & " dagar " Beräkningsresultat ska vara i formatet "Text" - anges vid sidan av formelfältet. Jag har testat och det fungerar bra. Kom ihåg att om du vill ha andra namn på fälten än i mitt exempel så måste du ändra dem konsekvent i alla formler Tillägg: Om du vill ha personnumret i formatet "721224-3455" i stället så kör denna kod i formelfältet för fältet "födelsedatum" i stället: Middle ( personnummer ; 1 ; 2 )&"-"&Middle ( personnummer ; 3 ; 2 )&"-"&Middle ( personnummer ; 5 ; 2 ) Tackar många gånger om! Länk till kommentar Dela på andra webbplatser More sharing options...
aaa Postad 4 mars, 2011 Författare Share Postad 4 mars, 2011 Jag förstår inte varför vissa får negativ ålder (19410519-00 = -31 år) Länk till kommentar Dela på andra webbplatser More sharing options...
TobiG Postad 20 mars, 2011 Share Postad 20 mars, 2011 Tack för tipsen som även jag haft nytta av! Tyvärr fick jag också problem med negativa åldrar i databasen. Det löste jag genom att mata in personnumren med 12 siffror (dvs 19 eller 20 framför) samt ändrade personnummersformeln till: Middle ( personnummer ; 1 ; 4 )&"-"&Middle ( personnnummer ; 5 ; 2 )&"-"&Middle ( personnummer ; 7 ; 2 ) Hoppas det kommer till nytta! Länk till kommentar Dela på andra webbplatser More sharing options...
iMatte v. 2.0 Postad 20 mars, 2011 Share Postad 20 mars, 2011 Jag förstår inte varför vissa får negativ ålder (19410519-00 = -31 år) Ledsen att jag missade att följa upp detta. Problemet verkar vara att Filemaker tolkar årtalet som tillhörande 1900-talet ned till 420101 och som tillhörande 2000-talet från 411231 och tidigare. Hittar inget i dokumentationen om detta, men lösningen som TobiG presenterar löser ju problemet. Länk till kommentar Dela på andra webbplatser More sharing options...
Rekommendera Poster
Arkiverat
Det här ämnet är nu arkiverat och är stängt för ytterligare svar.