Извлечение фактов XBRL в Excel

Я хотел бы автоматически просмотреть несколько сотен XBRL-файлов, собрать определенные фрагменты данных и вставить их в лист Excel. Мне удалось заставить работать «тангенциальный код», но я не могу ответить на основной вопрос.

Например, в файле XBRL мне нужно значение этого факта, сообщенное относительно концепции pfs:GainLossBeforeTaxes:

<pfs:GainLossBeforeTaxes
    unitRef="U-EUR"
    decimals="INF" 
    contextRef="CurrentDuration">1091134.68</pfs:GainLossBeforeTaxes>

==> Мне нужно получить 1091134,68

Это, несомненно, легко с Regex, но я не могу заставить это работать. И временные ограничения также для меня важны, поэтому я хотел бы получить какой-то минимально жизнеспособный продукт на данный момент, а затем расширить его, но на данный момент код является скорее средством для достижения цели, а не конечным продуктом ( анализ) самостоятельно.

До сих пор я пришел к следующему:

Sub EDI_Input()

Dim myFile As String
Dim textline As String
Dim StartPos As Integer
Dim EndPos As Integer

myFile = Application.GetOpenFilename()

Open myFile For Input As #EDI
Do Until EOF(EDI)
Line Input #EDI, textline


If InStr(textline, "NonRecurringFinancialCharges") <> 0 And InStr(textline, "CurrentDuration") <> 0 Then

Endpos = InStr(textline, "</pfs:NonRecurringFinancialCharges><")


result = Left(textline, Endpos - 1)
StartPos = InStr(textline, "Char(34)&CurrentDuration&Char(34)&>")
textline = Left(textline, StartPos + 18)
Debug.Print (textline)

End If

Loop 

Я продолжаю спотыкаться о «недопустимой процедуре вызова или ошибке аргумента», возможно, потому, что я загружаю много данных в свою строку.

У кого есть мнение, как получить хотя бы частично работающую программу - таким образом я смогу хотя бы частично начать свой анализ - Или туториал для новичков/опыта с этой проблемой?


person Vhakazar    schedule 01.06.2019    source источник
comment
Из того, что вы написали, вам просто нужно найти первую подстроку цифр и точек в вашей строке. Но я подозреваю, что ваши письменные спецификации неполны.   -  person Ron Rosenfeld    schedule 02.06.2019
comment
Спецификации XBRL доступны здесь: specifications.xbrl.org Это очень хороший вопрос, который очень часто используется. случай для многих людей, изучающих финансовые отчеты. Выбирать подстроки из экземпляра XBRL немного рискованно, поскольку существует точный способ получить значения из экземпляра XBRL вместе с их контекстом, а затем отфильтровать на основе модели данных.   -  person Ghislain Fourny    schedule 03.06.2019
comment
Какую версию Excel вы используете? Вы должны иметь возможность делать то, что ищете, с помощью процессора с открытым исходным кодом, такого как Arelle или Gepsio, в зависимости от используемой версии Excel.   -  person JeffFerguson    schedule 03.06.2019


Ответы (1)


Добро пожаловать в StackOverflow!

Я рекомендую использовать процессор XBRL, например Arelle с открытым исходным кодом. Если я правильно помню, вы должны иметь возможность экспортировать факты в такие форматы, как CSV, и импортировать их в Excel.

В противном случае вам придется повторно реализовать процессор XBRL в VBA. Есть много деталей, которые необходимо учитывать, чтобы получить правильные значения (объединение с контекстом, учет размеров и т. д.). Значения могут сообщаться относительно концепции за несколько периодов и т. д.

Процессор XBRL сделает это из коробки.

person Ghislain Fourny    schedule 03.06.2019