1. Уважаемый гость! Если во время регистрации на сайте возникли проблемы, сообщите о них, пожалуйста, сюда: mihail@vilejski-uezd.by Вам обязательно помогут!

Просматривает записи блогов в категории: Индексация метрических книг

  • Andzej
    Захотелось мне поупражняться с хитрыми запросами к уже набранным таблицам по рождениям Кривичского РК прихода. Хоть и не такой большой период охвата, всего 7 лет, но уже кое-что можно сказать.

    Кратко:
    За 7 лет в костёле было зарегистрировано 467 ребёнка. Из них 258 мальчиков и 209 девочек. В процентном соотношении это приблизительно 55 на 45.

    А вот как выглядит первая десятка населённых пунктов по количеству новорожденных:
    1. Язни 60
    2. Филипки 52
    3. Терешки 46
    4. Кривичи 37
    5. Новосёлки 32
    6. Боровики 29
    7. Хомутно и Уздрыгаловичи по 28
    8. Задубенье 17
    9. Субочи и Половики по 14
    10. Мицкевичи 10
    А вот рейтинг самых употребимых имён мальчиков за этот период:
    1. Иван 43
    2. Иосиф 38
    3. Антоний 23
    4. Каетан 22
    5. Казимир 19
    6. Станислав 16
    7. Михаил 12
    8. Пётр 10
    9. Викентий и Игнатий по 9
    10. Франц 7
    И соответственно наиболее употребимые имена девочек:
    1. Анна 38
    2. Антонина 16
    3. Магдалена и Марцеля по 11
    4. Екатерина и Петронеля по 10
    5. Францишка 9
    6. Изабеля и Каролина по 8
    7. Гелена, Ева, Марианна по 7
    Десятка не получилась, потому что по слишком много тех имён, которых по 6, и тем более по 5. Интересный перекос в сторону имени Анна, с мужскими именами более плавно как-то всё выглядит.

    А теперь десятка наиболее плодовитых фамилий в этом приходе:
    1. Адамович 38
    2. Гаранин 28
    3. Коробчиц 20
    4. Язневич 16
    5. Томкович 15
    6. Будзько 14
    7. Таустыка и Лецяга по 13
    8. Янушкевич 11
    9. Цеханович 10
    10. Гришкевич 9
    Ну и на закуску небольшой график распределения событий рождения по месяцам.
    [​IMG]


    Как видно, пик рождений приходился на январь, причём в январе рождалось боле мальчиков, чем девочек. Значит пик зачатий приходился на май. Аккурат после Пасхального поста. Предки больше уделяли внимания таким вещам как пост и воздержание. Может, во время поста было не комильфо венчаться. Тогда свадьбы откладывались на май, по-видимому. Кстати, на январь приходится и пик рождения мальчиков. 61,5 % рождённых в январе - мальчики. Загадочно как-то.
    А вот минимум рождений приходится на декабрь, только 22 рождения на 467, т.е. 4,7 процента. Тех кто откровенно забивал на Пасхальный пост было значительно меньше остальных.
    Ещё один локальный минимум наблюдается в апреле 31 рождение на 467, т.е. 6,6 процента. Видимо сказывалось то, что в августе самый пик уборки урожая, а главным в это время была жатва, чем занимались женщины. Уставали видимо в поле больше обычного, поэтому было не до развлечений.
    Зато, судя по всплеску майских рождений (второе место после января по количеству родившихся), за сентябрь навёрстывалось всё, что было упущено в августе. Хе-хе.
    Ну и ещё какая-то странность просматривается в графике в июле. В этом месяце максимум рождений девочек и минимум мальчиков. Вообще, в данной выборке мальчиков меньше всего за год рождается именно в июле. Зачатие должно было происходить в ноябре. А ноябрь - самый пик свадеб, если я ничего не путаю. Диета родителей в апреле - мае значительно отличалась от диеты октября - ноября, и как мне кажется, осенью было больше чего покушать. Хотя, может это просто недостаточная репрезентативность выборки?
  • Andzej
    Поработав с предыдущей версией макроса для индексирования метрических книг, я очень быстро заметил, что нужно избавляться от дублирования ввода информации об отце и матери, которое происходит, если не каждый последующий год, то по крайней мере через год. Поэтому возникла необходимость доработки макроса.

    В чём заключалась идея доработки? Нужно было менять порядок ввода информации, так, чтобы сперва вводить дату рождения и крещения, а затем информацию о месте рождения. После ввода названия населённого пункта, сбоку, в дополнительном поле должен появляться список семей, которые уже были охвачены индексированием и проживали в данном населённом пункте. А далее, простым щелчком мыши по необходимой семье, должны автоматически заполняться блоки, относящиеся к отцу и матери ребёнка. Собственно это, я и реализовал. Теперь, форма выглядит следующим образом.

    [​IMG]

    Новое поле не доступно для выделения с помощью клавиши <Tab>, только с помощью курсора мыши.

    Также добавил такую "фишечку" : если было указано, что младенец - мужеского пола, и была выбрана какая-нибудь семья из списка, то автоматом заполняется и поле "Фамилия" у ребёнка. Т.е. для мальчика нужно ввести только имя.

    Также, если было применено автозаполнение полей, после перебора всех элементов блока с информацией о ребёнке, курсор (фокус) передаётся на блок восприемника и далее, минуя блоки отца и матери.

    В случае, если семьи в списке нет, придётся всё заполнить самостоятельно. Если пользуетесь клавишей <Tab>, порядок обхода по умолчанию будет следующий: Дата и место рождения >> Ребёнок >> Отец >> Мать >> Восприемник мужеского пола >> Восприемник женского пола.

    Больше никаких изменений не вносил, т.е. всё что написано в предыдущем посте, всё это справедливо и для этой версии.

    А теперь немного статистики, чтобы показать есть ли эффект от добавления нового элемента формы, или его нет.

    Точных замеров времени, потраченного на индексацию, например 100 записей МК, написанной русским языком, читабельным почерком, при незаполненном листе с именами, фамилиями ect. (т.е. в случае, если вы только начинаете индексацию нового прихода) я не проводил. Но на первый заход на это потребуется приблизительно 3,5 часа. Записи последующих годов будут вводиться быстрее.

    В моём случае я уже имел проиндексированными книги о рождении за 6 лет, в каждой примерно по 75 записей. Так вот, на ввод книги с 82 записями у меня ушло 94 минуты. Это с учётом, того, что я несколько раз отлучался от компьютера. Стоит заметить, что книги у меня не в бумажном варианте, а в виде фотографий разворотов (лишние телодвижения для переключения активных окон, иногда зум напонятных мест). В среднем на внесение записи в таблицу требовалось 65 секунд. Но это если, сложить все интервалы, и те, что потребовались при автозаполнении, и без него. В общем, половина из записей была внесена с применением автозаполнения. При этом среднее время внесения одной записи составляло 55 секунд, минимальное время - 40 секунд, максимальное - 68 секунд. Те же записи, которые вносились без автозаполнения требовали в среднем 76 секунд, минимальное время 57 секунд, максимальное - 99 секунд.

    Теперь подсчитаем. Старый вариант формы, без автозаполнения, потребовал бы на индексацию данной книги, если отталкиваться от цифры 76 секунд - 104 минуты. У меня пошло 94 минуты. Выигрыш - 10 минут. Если бы все записи из этой книги вносились бы с помощью автозаполнения, то на всё про всё ушло бы 75 минут.

    По-моему, функция однозначно полезная. Думаю, если бы уже были проиндексированы книги за 10 лет, выигрыш во времени был бы ещё больше.

    Ссылка на новую версию макроса :

    https://drive.google.com/open?id=0Bz7aGRSmDX4jdlhCVDdEWGFXNk0

    И ещё, окинул взором метрики православного прихода и понял, что мой макрос заточен под костёлы. У восприемников нету полей о их местах проживания. Буду работать над этим. Думаю, нужно создать отдельную форму для православных приходов.
  • Andzej
    Фабула.

    Когда я начал свои генеалогические изыскания в архиве, то думал, что мне вполне хватит листов белой бумаги и ручки, чтобы записывать найденных персон. Но потом, когда стало понятно, что чтение МК затягивается не на один час, тем более если при этом ещё вести какие-то записи, встал вопрос ускорения процесса из-за дефицита времени. Ускорение записи приводило лишь к усугублению их нечитаемости, которая увеличивалась, если через пару дней к этим записям возвратиться. Поначалу, я пытался дома переводить всё в формат книг Excel. Но это была двойная работа, сначала записать всё в архиве, потом это же переписать дома в электронном виде. Потом, когда поисковых фамилий становилось всё больше, возникли трудности фиксированием персон, тупо не хватало времени. Тем более если стараться посмотреть ещё кому какие фамилии. Эти обстоятельства и послужили причиной написания своеобразного макроса для Excel, для автоматизации процесса переноса информации из первоисточников в электронный вариант.

    Описание макроса.

    Макрос находиться в книге Excel, которая будет в конце данной записи и Библиотеке. Книга по дефолту имеет название AddBirth.xlsm и в своём составе имеет два листа - main и settings.

    [​IMG]
    На листе main есть кнопка "Добавить запись о рождении" и шаблон шапки таблицы результатов. Не меняйте её, иначе правильная работа макроса не гарантирована!.
    Лист settings используется как своеобразное хранилище списков вводимых имён, фамилий и другой информации. Заполняется как во время работы макроса, так и самостоятельно.

    [​IMG]
    По дефолту в соответствующих столбцах есть кое-какие имена, они подгружаются потом в форму, для того, чтобы ускорить их набор с помощью автодополнения. Можно ручками добавить свои значения в нужные колонки. Я разделил фамилии для персон женского и мужеского пола в виду отличия в окончаниях. Тоже сделал и с отчествами.

    UPD от 22.01.2016: если у вас есть списки, например населённых мест, и вы хотите вставить их на лист, то делайте это с третьей строки, вторая строка должна оставаться пустой. Иначе при автоматической сортировке списка шапка списка будут отсортирована. Не смертельно, но всё же.

    Если нажать на кнопку "Добавит запись о рождении" на листе main, то откроется следующая форма:

    [​IMG]

    Навигация по форме с помощью мыши или, что предпочтительнее для скорости, клавиши Tab для прямого порядка обхода и Tab+Shift для обратного. Если нужно отметить соответствующий check - нажимаем на клавишу Enter, когда нужный элемент в фокусе. Таким же образом флажок можно снять.
    Теперь о каждом фрейме по отдельности.

    Сперва нужно выбрать пол ребёнка. Без этого выбора при нажатии на кнопку "Добавить запись" вам будет предложено это сделать и запись в таблицу добавлена не будет. Также, если сразу не выбрать пол, в поля фрейма ребёнка не подгрузятся списки имён и фамилий с листа settings. Поле второе имя по дефолту отключено, если в записи должно быть второе имя, то нажимайте на кнопку "Настройки", где включите соответствующую опцию. Если поставить флажок напротив пункта "незаконно рожденный" соответствующая отметка появится в таблице, а также отключится фрейм с информацией об отце.

    Фрейм отца, как впрочем матери и восприемника, дополнительно содержит поле "Отчество", которое по дефолту отключено. Включается всё в тех же "Настройках". Поле "Сословие" содержит перечень встреченных мной вариантов указания на сословие. Список можно вручную отредактировать на листе settings, но стоит ли? По дефолту выбрано крестьянское сословие, ввиду того, что основная масса персон именно крестьяне. Поле "Фамилия" не связано как-то с тем же полем ребёнка, потому что для мужского и женского пола у меня свои формы фамилий. Можно было конечно дописать проверку условия совпадения пола ребёнка и отца, но пока как есть.

    Фрейм восприемницы содержит два поля с фамилией. Я для себя условился, что если в МК не указано, что восприемница супруга такого-то, то она девка и значит её фамилия девичья.

    Фрейм "дата и место рождения" имеет одну очень важную кнопку "Задать год". Когда её нажать, появляется InputBox с предложением ввести год рождения. Ввести можно только числовые значения состоящие из четырёх символов и в пределах от 1600 до 1950. Это обязательный параметр. После ввода года рождения, нужно ввести год крещения в таком же диалоговом окне. Так же обязательный параметр, даже более обязательный, т.к. на основании введённого года крещения, принимается решение - нужно новый лист создавать или такой лист уже есть. Раздельный ввод года рождения и крещения введён по причине того, что в начале января часто крестили прошлогидних новорожденных. В этом же фрейме есть два поля для отражения географии рождения. Поле "тип н.п" введён из-за того, что иногда застенок и деревня имели одинаковое названия, и если не указать тип населённого пункта, то потом можно запутаться.

    Вкратце об элементах формы всё. Теперь о главной фишке этой затеи. Допустим у вас пустой лист settings и дефолтный main. Вы начинаете индексировать книгу, в поля формы подгружать нечего. Поэтому все поля заполняются лично вами полностью. Далее нажимаете на кнопку "Добавить запись". Подпрограмма берёт значение введённого года крещения и сравнивает с названиями уже имеющихся в книге листов. Т.к. у вас только main и settings, автоматически создаётся новый лист, у которого название совпадает с годом крещения. На этом листе создаётся шапка таблицы, по образу и подобию шапки, которая есть на листе main. Далее под этой шапкой добавляется запись, которая нумеруется. По нумерации хорошо себя контролировать, сверяясь с номером записи в МК. Иногда пропускаешь запись, поэтому нумерация это хорошо. Далее, по каждому значению, введённому в поля ФИО и название н.п. поочерёдно проводится поиск в соответсвующих столбцах листа settings. Если таких значений не было, происходит их добавление в соответствующий столбец и сортировка столбца по алфавиту. Далее отсортированные списки готовы для подгрузки в поля формы. И в следующий раз, когда вы будете начинать вводить такие же значения, Excel вам предложит автодополнение вводимого значения на основании значений, подгруженных в данное поле. Это-то и ускоряет набор.

    Кстати, задавать год крещения/рождения каждый раз не обязательно. После нажатия на кнопку "Добавить запись" форма не выгружается из памяти, поэтому значения введённых вами лет сохраняются. Но! Следует всегда помнить, что в первой записи почти всегда год крещения и рождения будет разным, поэтому рекомендую переназначать эти числа, пока год рождения и крещения не начнут совпадать. После нажатия на кнопку "Отмена" форма выгружается из памяти, поэтому после этого вводить год обязательно.

    Если за один подход проиндексировать МК не получилось, ничего, можно продолжить в следующий раз. Добавляются строки автоматически в конце таблицы соответствующего года.
    Листы добавляются в порядке возрастания дат. Тобишь, если сначала вы вводили книгу за 1850 год, а потом решили ввести за 1845, то лист для 1845 года добавиться перед 1850 годом. Лист для 1848 года будет добавлен между 1845 и 1850.

    Рекомендую один файл использовать для одного прихода. Причём в одной книге должно быть отражено не более 10 лет. Совсем замечательно, если в книге будут листы, например от 1850 до 1859, и т.д. Т.е. Если у вас есть две МК книги, одна за 1845, другая в 1865, желательно для их индексации использовать две разные книги.

    Конечно же, в Excel должна быть включена поддержка макросов, иначе ничего работать не будет.

    Прошу протестировать и поделиться соображениями в комментариях.

    Провёл замер времени по набору МК. При изначально чистом листе settings книга из 90 записей, в которой нет разбивки по колонкам, отняла около трёх часов. Книга за следующий год - 2 часа.

    UPD: выловил одну ошибку (путаница с женскими и мужскими формами фамилий в поле "Фамилия по мужу" фрейма восприемницы, перезалил файл.

    https://drive.google.com/open?id=0Bz7aGRSmDX4jLWhKNlJ1eFJmUlU