Страницы: 1
RSS
Импорт данных из интернета, заменить разделитель целой и дробной части
 
Доброго времени суток! Помогите разобраться, настроил импорт данных с  Сайта. В частности импортируется таблица с курсами валют.На сайте в качестве разделителей стоят "точки" ко мне в таблицу прилетают "запятые"!Проблема в том что на некоторых ПК пользователей таблицы импортируются "точки", соответственно формулы там не работают. Хотелось бы понять почему так! И как сделать чтоб гарантированно импортировались запятые вместо точек.  
 
После того как все импортировалось с точками можно выделить весь импортированный диапазон данных и автозаменой заменить все запятые на точки.  
 
amicus, к сожалению это не вариант, так как лист этот скрытый,  оттуда подтягивается актуальный курс. Пользователь к нему не имеет доступа. Может можно как то по другому в таблице всегда иметь актуальный курс доллара?  
 
Вероятная причина проблемы: разное представление десятичных дробей в Excel (через запятую) и в контексте источника (JavaScript и, значит, десятичные значения через точку).
Опять же, предположу, что проблема устраняется простой операцией вида CDbl(Replace(Ваша_строка_из_цифр_с_точкой, ".", ",")) перед вставкой данных в ячейку (если используется VBA). Однако чтобы сказать что-то конкретное, надо увидеть код парсинга загруженных данных перед их вставкой.
Изменено: Irregular Expression - 30.10.2017 17:56:08
 
Irregular Expression, Вот сам файл, буду очень благодарен если поможете разобраться!  
 
ГОТОВО. Вот примет как это сделать
Изменено: amibus - 30.10.2017 18:05:40
 
amibus,Супер. Спасибо огромное.  
 
amibus, Не знаете случайно, может есть способ получения актуального курса на сегодня попроще?  
 
Пожалуйста. Удачи в финансах  
 
Keepsv,Упс, теперь ситуация стала зеркальный. На тех ПК теперь все ОК но у меня не ОК. Как быть?  
 
Вот статья:   Импорт курса валют из интернета
http://www.planetaexcel.ru/techniques/11/129/

Там все подробно написано и показано
 
amicus, Ну в принципе по ней и делал. Думал мало ли  иное есть. Как бы поменять формулу чтоб и точки и занятые заменялись запятыми?
 
Keepsv, посмотрел.
1) Сохраните Книгу как *.xlsm, а не *.xlsx, т.к. Ваш формат не поддерживает макросы.
2) Сочетанием клавиш Alt+F11 откройте редактор VBA, там выберите меню Insert и добавьте новый модуль.
3) В макрос пропишите код новой функции:
Код
Public Function ОБНОВИТЬКУРС(ByRef ЯЧЕЙКА As Excel.Range) As Double
    ОБНОВИТЬКУРС = CDbl(Replace(ЯЧЕЙКА.value & "", ".", ","))
End Function

4) На листе в нужном столбце воспользуйтесь этой функцией как обычной функцией Excel (т.е. =ОБНОВИТЬКУРС(Адрес_ячейки)).
5) Обратите внимание, что на выходе функция возвращает числовое значение, если нужно строковое (как Вам предложил amibus, и как данные представлены у Вас), то надо так:
Код
Public Function ОБНОВИТЬКУРС(ByRef ЯЧЕЙКА As Excel.Range) As String
    ОБНОВИТЬКУРС = Replace(ЯЧЕЙКА.value & "", ".", ",")
End Function

Думаю, данный вариант должен работать корректно и у Вас, и у Ваших пользователей. (Но да, макросы надо разрешить).
Изменено: Irregular Expression - 30.10.2017 23:03:59
 
Irregular Expression, спасибо за участие, но хотелось бы остаться в xlsx формате и обойтись без макросов. Это возможно?  
 
Во вкладке автозамена можно настроить замену всего что угодно (в том числе  точку на запятую и наоборот).  В разных версиях экселя эта вкладка находится в разных местах. Где найти вкладку в вашем экселе узнаете из справки (нажать F1)  
Изменено: amibus - 30.10.2017 19:03:31
 
Вариант формулы без макросов Вам уже предложили выше: =ЗАМЕНИТЬ(F2;НАЙТИ(".";F2;1);1;",") .
Однако мне непонятно, почему эта формула не сработала у Вас. Возможно, Вы в ней опечатались и точку с запятой спутали?
 
Цитата
amibus написал: примет как это сделать
Проще:
=ПОДСТАВИТЬ(F2;".";",")

Цитата
Keepsv написал: Как бы поменять формулу чтоб и точки и занятые заменялись запятыми?
Как бы посмотреть пример, где и точки, и запятые?
 
Всем огромное спасибо. Помогла эта формула =ПОДСТАВИТЬ(F2;".";",")  
Страницы: 1
Читают тему
Наверх