У меня в итоге не хватило ни терпения, ни моральных сил разбираться, плюнул на всё и сделал через Excel.

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