Ответить
  • alexsoll Senior Member
    офлайн
    alexsoll Senior Member

    6856

    14 лет на сайте
    пользователь #178950

    Профиль
    Написать сообщение

    6856
    # 15 декабря 2020 15:16

    у меня так:

    =SUBSTITUTE(IMPORTXML("http://www.nbrb.by/Services/XmlExRates.aspx"; "//DailyExRates/Currency[CharCode=""RUB""]/Rate" );".";",";)

    =SUBSTITUTE(IMPORTXML("http://www.nbrb.by/Services/XmlExRates.aspx"; "//DailyExRates/Currency[CharCode=""USD""]/Rate" );".";",";)

    =SUBSTITUTE(IMPORTXML("http://www.nbrb.by/Services/XmlExRates.aspx"; "//DailyExRates/Currency[CharCode=""EUR""]/Rate" );".";",";)

    все нормально всегда

    Добавлено спустя 32 секунды

    смайлик = )

  • Proactively Neophyte Poster
    офлайн
    Proactively Neophyte Poster

    14

    7 лет на сайте
    пользователь #2052088

    Профиль
    Написать сообщение

    14
    # 14 января 2021 15:01
    Klopik:

    так на 100 раздели и все. =(SUBSTITUTE(IMPORTXML("http://www.nbrb.by/Services/XmlExRates.aspx"; "//DailyExRates/Currency[CharCode=""RUB""]/Rate" );".";",";))/100

    А вот как взять значение даты из другого поля? То есть в каждой ячейке выдавать курс на определенную, а не текущую дату?
    =ПОДСТАВИТЬ(IMPORTXML("http://www.nbrb.by/Services/XmlExRates.aspx?ondate=01/31/2020"; "//DailyExRates/Currency[CharCode=""RUB""]/Rate" );".";",";) Как заменить 01/31/2020, если формат, блин, 31.01.2020?

    Добавлено спустя 39 минут 7 секунд

    все, я через костыль, но свои проблемы порешал :)))

    И как решили вопрос? у меня такой же))

    Такая формула не прокатила:
    =SUBSTITUTE(IMPORTXML("https://www.nbrb.by/services/xmlexrates.aspx?ondate="&text(C14;"MM/dd/yyyy";)&
    "; "//DailyExRates/Currency[CharCode=""EUR""]/Rate" );".";",";)"))

  • Blend Junior Member
    офлайн
    Blend Junior Member

    67

    12 лет на сайте
    пользователь #442933

    Профиль
    Написать сообщение

    67
    # 11 февраля 2021 12:51

    Господа, может кто подскажет как заставить это работать в Exel:
    =SUBSTITUTE(IMPORTXML("http://www.nbrb.by/Services/XmlExRates.aspx"; "//DailyExRates/Currency[CharCode=""RUB""]/Rate" );".";",";)

    =SUBSTITUTE(IMPORTXML("http://www.nbrb.by/Services/XmlExRates.aspx"; "//DailyExRates/Currency[CharCode=""USD""]/Rate" );".";",";)

    =SUBSTITUTE(IMPORTXML("http://www.nbrb.by/Services/XmlExRates.aspx"; "//DailyExRates/Currency[CharCode=""EUR""]/Rate" );".";",";)

    Вставляю в ячейку - в итоге #ИМЯ?

  • Musanki Senior Member
    офлайн
    Musanki Senior Member

    1151

    13 лет на сайте
    пользователь #276021

    Профиль
    Написать сообщение

    1151
    # 23 июня 2021 12:19 Редактировалось Musanki, 1 раз.

    у меня в excel работает так
    = LEFT(RIGHT(WEBSERVICE(("https://www.nbrb.by/api/exrates/rates/145?ondate="&A1)), 7),6)
    A1 это ячейка с датой в формате месяц/число/год (06/23/2021) либо 2021-6-23.
    Сыллка для USD. Для EUR нужно заменить 145 в ссылке на 292.

  • Зеленый_человечек Junior Member
    офлайн
    Зеленый_человечек Junior Member

    54

    14 лет на сайте
    пользователь #244989

    Профиль
    Написать сообщение

    54
    # 22 июля 2021 01:04

    =ПОДСТАВИТЬ(IMPORTXML(СЦЕПИТЬ($K$2;ТЕКСТ(B6045; "MM/dd/yyyy"));"//DailyExRates/Currency[CharCode=""USD""]/Rate" );".";",";)

    Добавлено спустя 37 секунд

    K2 там http://www.nbrb.by/Services/XmlExRates.aspx?ondate=
    B6045 там дата

  • AlexLog Member
    офлайн
    AlexLog Member

    180

    17 лет на сайте
    пользователь #73122

    Профиль
    Написать сообщение

    180
    # 19 августа 2021 08:18

    Почему API перестало работать ?
    только xml, хотя столько было написано о приостановке xml

  • rtazet Onliner Auto Club
    офлайн
    rtazet Onliner Auto Club

    85

    18 лет на сайте
    пользователь #40025

    Профиль
    Написать сообщение

    85
    # 25 августа 2021 00:39 Редактировалось rtazet, 5 раз(а).

    Сегодня тестил - работает
    =LEFT(RIGHT(WEBSERVICE("https://www.nbrb.by/api/exrates/rates/451?ondate="&RIGHT(E1;4)&"-"&LEFT(RIGHT(E1;7);2)&"-"&LEFT(E1;2)&"&periodicity=0");7);6)
    В E1 дата в формате DD.MM.YYYY
    Валюта евро

  • faces Junior Member
    офлайн
    faces Junior Member

    84

    9 лет на сайте
    пользователь #1589834

    Профиль
    Написать сообщение

    84
    # 2 февраля 2022 02:38 Редактировалось faces, 13 раз(а).

    коллеги, а чего так не красиво -- левые символы, правые ...
    вот же красота --- ondate="&ГОД($B26)&"-"&МЕСЯЦ($B26)&"-"&ДЕНЬ($B26)
    или еще проще -- ondate="&ТЕКСТ($B26;"ДД-ММ-ГГГГ";)"
    Это хорошо что ты знаешь, что евро внутри НацБанка -- 451. Я вот профан такой, понятия не имел, где найти коды валют.
    Конечно, стартанул я с формулы коллеги rtazet. Хоть по поиску нашел нужную страницу банка. Дальше уже развил до максимума -- а сколько вообще валют банк предоставляет и как они называются ?
    Смотрю сообщение коллеги Musanki , всего-то полгода назад НацБанк поменял коды валют. Вот нечего ему делать :). Я проверил все от 0 до 1000, все просканировалось, и коды выскакивают сами. Вычислил , что примерно с 1.07.2021 НацБанк ввел новые коды.

    431 1 Доллар США
    449 100 Гривен
    451 1 Евро
    452 10 Злотых
    456 100 Российских рублей
    459 1000 Тенге
    462 10 Китайских юаней

    Но разве это важно, разве это валюты ? Макулатура. А вот эти две

    328 10 Марокканских дирхамов
    350 100 Эфиопских быров

    держались непреступной стеной. Их коды не менялись в период потрясений и революций в РБ. За счет них и само здание НацБанк не рухнуло :) . Я не стал уже вычислять, чего это им такая честь. Хотя почему нет, это не долго. Марокканских дирхамов и Эфиопских быров
    самая твердая валюта в стенах НацБанка, эта парочка появилась с 01.07.2016, и с тех пор не менялась. Вероятно, про них просто забыли :). Хотя это вроде и указано на сайте, это не тайна. Все остальные имели коды ниже 370 или выше 510, и я не буду ломать файл на 15-20 минут и копаться в истории.
    Еще прикольно, заметил что в стране Суверенных боливаров с 01.07.2021 произошла серьезная деноминация. Предположительно, валюта окрепла сразу в 1'000'000 , но за эти 8 месяцев уже упала до 550'000. Это вам не жалкие 10'000 в РБ.
    Ладно, догадки ошибочны, просто процитирую Wiki

    Суверенный боливар — валюта, введённая в Венесуэле с 20 августа 2018 года по 1 октября 2021 года для замены венесуэльского боливара, испытавшего гиперинфляцию.

    Вот все валюты НБ РБ, 78 шт
    немного экспериментов с курсами валют, но все с сайта НацБанка. Там на API и функции ФИЛЬТР.XML, преобразование дат . А про IMPORTXML даже не слышал. Тоже полезная функция.

    это облако, если я еще что придумаю, вы увидите последнюю версию.

  • Эгон Neophyte Poster
    офлайн
    Эгон Neophyte Poster

    1

    3 года на сайте
    пользователь #3063546

    Профиль
    Написать сообщение

    1
    # 23 февраля 2022 10:58

    Народ вот эта формула перестала работать, есть у кого-то информация в чем может быть причина?
    =ПОДСТАВИТЬ(IMPORTXML("http://www.nbrb.by/Services/XmlExRates.aspx"; "//DailyExRates/Currency[CharCode=""KZT""]/Rate" );".";",";)

  • Зеленый_человечек Junior Member
    офлайн
    Зеленый_человечек Junior Member

    54

    14 лет на сайте
    пользователь #244989

    Профиль
    Написать сообщение

    54
    # 28 февраля 2022 00:42

    У меня была настроена API теперь тоже не хочет работать, выгружал через API в гугл таблицу курс. Может кто подскажет, что случилось ?

  • 3038943 Neophyte Poster
    офлайн
    3038943 Neophyte Poster

    1

    3 года на сайте
    пользователь #3038943

    Профиль
    Написать сообщение

    1
    # 18 марта 2022 15:33
    100masterov:

    =ПОДСТАВИТЬ(IMPORTXML("http://www.nbrb.by/Services/XmlExRates.aspx"; "//DailyExRates/Currency[CharCode=""USD""]/Rate" );".";","

    Спасибо, помог! Я сделал вот так https://docs.google.com/spreadsheets/d/1fFxe8QTtZSOZ7XZ_54UpxPJVb ... sp=sharing

  • ilyha342007 Junior Member
    офлайн
    ilyha342007 Junior Member

    95

    11 лет на сайте
    пользователь #726338

    Профиль
    Написать сообщение

    95
    # 15 апреля 2022 12:05
    3038943:

    100masterov:

    =ПОДСТАВИТЬ(IMPORTXML("http://www.nbrb.by/Services/XmlExRates.aspx"; "//DailyExRates/Currency[CharCode=""USD""]/Rate" );".";","

    Спасибо, помог! Я сделал вот так https://docs.google.com/spreadsheets/d/1fFxe8QTtZSOZ7XZ_54UpxPJVb ... sp=sharing

    СПАСИБО!!!

  • ilyha342007 Junior Member
    офлайн
    ilyha342007 Junior Member

    95

    11 лет на сайте
    пользователь #726338

    Профиль
    Написать сообщение

    95
    # 11 мая 2022 08:56
    3038943:

    100masterov:

    =ПОДСТАВИТЬ(IMPORTXML("http://www.nbrb.by/Services/XmlExRates.aspx"; "//DailyExRates/Currency[CharCode=""USD""]/Rate" );".";","

    Спасибо, помог! Я сделал вот так https://docs.google.com/spreadsheets/d/1fFxe8QTtZSOZ7XZ_54UpxPJVb ... sp=sharing

    Перестала работать ссылка

  • valia01 Neophyte Poster
    офлайн
    valia01 Neophyte Poster

    1

    1 год на сайте
    пользователь #3471810

    Профиль
    Написать сообщение

    1
    # 2 июня 2022 03:25 Редактировалось valia01, 4 раз(а).

    ххх

  • Mahavira Neophyte Poster
    офлайн
    Mahavira Neophyte Poster

    24

    10 лет на сайте
    пользователь #915496

    Профиль
    Написать сообщение

    24
    # 19 сентября 2022 16:00
    3038943:

    100masterov:

    =ПОДСТАВИТЬ(IMPORTXML("http://www.nbrb.by/Services/XmlExRates.aspx"; "//DailyExRates/Currency[CharCode=""USD""]/Rate" );".";","

    Спасибо, помог! Я сделал вот так https://docs.google.com/spreadsheets/d/1fFxe8QTtZSOZ7XZ_54UpxPJVb ... sp=sharing

    Спасибо.

  • ldima2009 Junior Member
    офлайн
    ldima2009 Junior Member

    42

    14 лет на сайте
    пользователь #178415

    Профиль
    Написать сообщение

    42
    # 11 декабря 2023 11:21 Редактировалось ldima2009, 1 раз.

    Спасибо огромное всем, кто оставил сообщения выше на этой странице. Мне было очень ценно и помогло решить задачу.

    На основе ваших сообщений собрал формулу получения курса НБРБ для USD для своего excel, где формулы на русском языке и разделитель не точка, а запятая.
    Вдруг кому-то еще пригодится)

    =ЗНАЧЕН(ПОДСТАВИТЬ(ЛЕВСИМВ(ПРАВСИМВ(ВЕБСЛУЖБА(("https://api.nbrb.by/exrates/rates/431?ondate="&ТЕКСТ(A2;"ГГГГ.ММ.ДД")));7);6);".";","))
    A2 - дата

    коды валюты (спасибо faces )
    431 1 Доллар США
    449 100 Гривен
    451 1 Евро
    452 10 Злотых
    456 100 Российских рублей
    459 1000 Тенге
    462 10 Китайских юаней

    Дмитрий
  • BullDOS Member
    офлайн
    BullDOS Member

    112

    21 год на сайте
    пользователь #7405

    Профиль
    Написать сообщение

    112
    # 2 февраля 2024 03:14 Редактировалось BullDOS, 3 раз(а).

    Загрузка курс(а/ов) в Google Sheets (Гугл таблицы) работает через ссылку на API и импорт формата JSON:
    1. Как настроить импорт JSON:
    В Google Sheets открываем меню Tools -> Script Editor.
    В текстовую область скрипта, предварительно удалив там все, вставляем всё содержимое файла:
    https://raw.githubusercontent.com/bradjasper/ImportJSON/master/ImportJSON.gs
    Нажимаем "Сохранить проект" (иконка дискеты).
    Возвращаемся в таблицу.
    Появится новая функция =ImportJSON()

    2. В нужную ячейку вставляем (я предпочитаю формулы в латинице, кому нужно в кириллице, на пост выше есть наводка):
    =VALUE( SUBSTITUTE( ImportJSON("https://api.nbrb.by/exrates/rates/USD?parammode=2&ondate=" & TEXT(F2;"yyyy-mm-dd";) ;"/Cur_OfficialRate";"noHeaders");".";","))

    получите курс USD на дату, указанную в ячейке F2.
    Если нужна другая ячейка, замените ее в формуле.
    Если нужен курс по другой валюте, замените ее буквенный код в формуле (например USD на EUR).

    (описание и примеры получения информации есть на сайте НБРБ.

    Выше пост аналогичного использования, но через цифровые коды валют. К сожалению, они менялись и, если вы захотите курс по дате 2019 или 2020 года, ответа не будет.

    Добавлено спустя 20 минут 37 секунд

    Доступ по старой ссылке на XML-версию закрыт с небелорусских IP-адресов. Возможно остался еще открыт для стран СНГ, не проверял.
    С белорусских IP-адресов еще работает, возможно чтобы не вызвать массовых проблем с давно настроенными 1С.
    Если вдруг кому-либо принципиально нужно получать данные через XML в Google Sheets, измените доменное имя в своих скриптах на указанное на скриншоте.

    =VALUE( SUBSTITUTE( IMPORTXML("https://services.nbrb.by/xmlexrates.aspx?ondate="&TEXT(F2;"mm/dd/yyyy");"/DailyExRates/Currency[CharCode='USD']/Rate");".";","))

    Дата в ячейке F2. CharCode - буквенный код валюты.

    IT-консалтинг и IT-аутсорсинг для малого и среднего бизнеса.