?

Log in

No account? Create an account
записи друзья календарь о пользователе Homepage назад назад вперёд вперёд
Хозяйке на заметку - курс валюты в Google Spreadsheet - Hook-nosed
sema
Хозяйке на заметку - курс валюты в Google Spreadsheet
Нехитрую свою домашнюю бухгалтерию я веду в Google Spreadsheet (да, у меня нет паранойи и мне наплевать, что гугл знает сколько я зарабатываю и на что, в общих чертах, трачу).
У меня в расчётах используется, по разным причинам, курс бакса, и со времён введения гуглом функций Google Finance я поражался тому, что через них нельзя получить курсы валют, приходилось раз в месяц соотв. ячейку руками править.
И вот намедни натолкнулся на то, как люди, оказывается, обходят этот недочёт гугла - через парсинг HTML страниц. Пусть криво, но работает.

Для курса бакса ЦБ я намонстрячил следующую конструкцию:
=REPLACE(Index(ImportHTML("http://stock.rbc.ru/demo/cb.0/daily/USD.rus.shtml?show=1W";"table";6);2;1); 3; 1; ",")

Да, возможно есть попроще страница с нужной мне цифрой в табличном виде, чем http://stock.rbc.ru/demo/cb.0/daily/USD.rus.shtml?show=1W, но я не нашёл, да и наплевать - это гуглу её высасывать и парсить, не мне.
Наворот с REPLACE объясняется просто - я использую в spreadsheet русскую локаль (дробная часть отделяется запятой), а практически все наши сайты по неизвестной мне причине (да просто раздолбайство обыкновенное, видимо, temaТёмы на них нет) курсы валют выводят в американской локали (дробная часть отделяется точкой), так что пришлось слегка извратиться.

тэги :
Comments
troff From: troff Date: October 11th, 2008 10:45 am (UTC) (ссылка)
Respect! Спасибо за мысль :-)
sema From: sema Date: October 11th, 2008 03:47 pm (UTC) (ссылка)
ага, суть в сочетании Index() и ImportHTML(), сами по себе они не очень понятно зачем нужны, а в сочетании дают очевидную пользу
troff From: troff Date: October 11th, 2008 09:10 pm (UTC) (ссылка)
Кстати, в какой момент оно исполняется? У нас аналогичная задача - учет баланса (я за тебя заплатил $500 на амазоне, ты за меня отнес денег куда-то, и так далее), и там у каждой записи хочется иметь курс на ее дату.
sema From: sema Date: October 11th, 2008 10:47 pm (UTC) (ссылка)
оно рефрешится при открытии документа
ну или при Ctrl-R нажатом на ячейке с формулой
sema From: sema Date: October 12th, 2008 08:16 am (UTC) (ссылка)
т.е. при твоих условиях надо найти сервис, отдающий курс, которому в URL можно дату запихать, думаю иначе никак
troff From: troff Date: October 12th, 2008 09:08 am (UTC) (ссылка)
Ну тебе тоже нет радости, если завтра вся бухгалтерия пересчитается по курсу 35 :-)
sema From: sema Date: October 12th, 2008 09:21 am (UTC) (ссылка)
ну почему, если текущий месяц - радость как раз будет, а при уходе его в архив я формулу на число буду менять :)
troff From: troff Date: October 12th, 2008 09:33 am (UTC) (ссылка)
Это нарушает основополагающий принцип "лучше день потерять, зато потом за пять минут долететь" :-)
sema From: sema Date: October 12th, 2008 09:38 am (UTC) (ссылка)
ну, это же только начало
если найдёшь сервис принимающий дату и отдающий курс - нашепчи, я легко напишу у себя формулу, которая будет выдавать актуальный курс в текущем шите и фиксированный - в архивном :)
troff From: troff Date: October 12th, 2008 09:46 am (UTC) (ссылка)
Чего его искать - его знают даже дети :-) http://cbr.ru/currency_base/daily.asp
sema From: sema Date: October 12th, 2008 09:52 am (UTC) (ссылка)
спасибо, отлично, щас накодируем..
sema From: sema Date: October 12th, 2008 10:36 am (UTC) (ссылка)
не выходит каменная чаша - пока пока гугл не даёт узнать имя шита
ну, не всё сразу
troff From: troff Date: October 12th, 2008 06:08 pm (UTC) (ссылка)
Да из даты транзакции в соседней ячейке даты достаточно :-)
читать[13] | ответить