これに似た質問がたくさんあります。しかし、私は同じことを求めていない!出生年に2つの数字しかない場合は、個人番号から年齢を計算してください
私の見てきた問題はすべて、年間を通して、fx 04/05/1971(形式:%d /%m /%Y)の誕生日です。私のデータで
誕生日にはデンマークのCPR-番号(個人識別番号)であり、彼らは次のようになります。
ID
1901912222
0110841111
0404143333
1602032444
NB:これらの日付は例です。私には何千もの行があり、すべての年齢層の人々で、100を超えています(しかし、たいていは17歳以下です)。
1番目と2番目の数:誕生 3番目と4番目の番号の日:誕生月 5番目と6番目の数:誕生 年最後の4 =シーケンシャル番号。
だからこれは私の誕生日(及び年齢)を与える:
ID birthdate age
1901912222 19/09/91 26
0110841111 01/10/84 33
0404143333 04/04/14 103
1602024444 16/02/02 15
だからフォーマットは:%d個の%mの%をY [4桁の連番]
だから最後の4桁(連続番号)にもいくつかの情報があります。彼らは、その人が3歳か103歳の年齢であるかどうかを確認します(私には今年はありません)。 1-IF(DATE -
= YEAR(NOW()):
それは任意のヘルプだ場合、私は知らないが、私は、Excelのコードを持っている: 説明については画像を参照してください。 (D12; 5; 2)+ IF(LEFT(RIGHT(D12; 4); NOW(NOW)); MID(D12; 3; 2); LEFT(D12; 1)* 1 < = 3; 1900; IF(AND LEFT(RIGHT(D12; 4); 1)* 1 = 4; MID(D12,5,2)* 1 < = 36); 2000; IF(AND (LEFT(RIGHT(D12; 4); 1)* 1 = 4; MID(D12; 5; 2)* 1> = 37); 1900; LEFT(RIGHT(D12; 4); 1)* 1 < = 8; MID(D12; 5; 2)* 1 < = 57); 2000; IF ); 1)* 1> = 5; LEFT(R IGHT(D12; 4); 1)* 1 < = 8; MID(D12; 5; 2)* 1> = 58); 1800; IF(AND LEFT(RIGHT(D12; 4); 1)* 1 = MID(D12; 5; 2)+ IF(LEFT(9); MID(D12; 5; 2)* 1) (右(D12; 4); 1)* 1 = 4; MID(D12; 5; 2)* 1 < = 1)= 37); 1900; IF(AND(LEFT(RIGHT(0,0))); AND(LEFT(RIGHT(D12; 4); 1) 1)= 5; LEFT(RIGHT(D12; 4); 1)* 1 < = 8; MID(D12; 5; 2)* 1 < = 57); 2000; IF(AND (LEFT(RIGHT(D12; 4); 1)* 1 = 5; LEFT(RIGHT(D12; 4); 1)* 1 < = 8; MID(D12; 5; 2)* 1> = 58)。 2000 + MID(D12; 5; 2); 1900); IF(AND(LEFT(RIGHT(D12; 4); 1)* 1 = 9; MID(D12; 5; 2)* 1 < = ))))))))))
私は本当にあなたがこの問題で私を助けることができます願っています!