Преди няколко дни колеги от административен отдел ме помолиха да им помогна – имат Excel-ска таблица с имена на хора и ЕГН, искат да изчислят датата на раждане по ЕГН-то и съответно точната възраст на човека с точност до дни.

Първо потърсих формули за извличане на датата на раждане от ЕГН (които разбира се, да работят с родени преди 1900 г. и след 2000 г. Потърсих ги от мързел, за да не ги пиша from scratch. След като намерих десетина формули в Интернет, коя от коя по-бъгави и глупаво написани, реших, че трябва дам да си я напиша. За разлика от останалите формули, които бяха базирани предимно на логически проверки, моята формула е базирана предимно на модулно делене (делене с остатък), което я прави в пъти по-къса. За логическата операция – да се определи, дали датата е преди 1900 г. или след 2000 г. се използва LOOKUP, което също сериозно съкращава формулата. И така, ето го резултата от творчеството:

=DATE(
INT(MID(A3;1;2)) +
LOOKUP(
ROUNDDOWN(MID(A3;3;2)/20;0);
{0;1;2};
{1900;1800;2000}
);
MOD(MID(A3;3;2);20);
MID(A3;5;2)
)

В случая ЕГН-то е в клетката A3. За съжаление не намерих начин да се посочи само веднъж във формулата адреса на клетката, така че трябва да се посочи четири пъти – веднъж за датата, веднъж за месеца, веднъж за годината и веднъж за века.

Втората формула също е интересна – намерих няколко вършещи работа, но нито една не правеше баш това, което ми трябваше. Чрез подходящо комбиниране се получи следната красота:

=DATEDIF(B1;A1;”y”) & ” г, ” &
DATEDIF(B1;A1;”ym”) & ” м, ” &
DATEDIF(B1;A1;”md”) & ” д”

Съответно A1 е клетката, която съдържа късната дата (например днешна дата), а B1 е клетката, която съдържа дата в миналото (например датата на раждане). Резултатът от формулата е интервалът от време в години, месеци и дни.

Естествено, ако искате да си мултиплицирате формулата, можете да използвате адресиране на клетки със символа за долар, за да не се мести при мултиплицирането някоя от кретките… например текущата дата всемсто с A1, може да се дефинира с $A$1… но надявам се, че това е достатъчно известен факт.

Успех с формулите и Excel…