Доброго времени суток! Помогите разобраться, настроил импорт данных с Сайта. В частности импортируется таблица с курсами валют.На сайте в качестве разделителей стоят "точки" ко мне в таблицу прилетают "запятые"!Проблема в том что на некоторых ПК пользователей таблицы импортируются "точки", соответственно формулы там не работают. Хотелось бы понять почему так! И как сделать чтоб гарантированно импортировались запятые вместо точек.
amicus, к сожалению это не вариант, так как лист этот скрытый, оттуда подтягивается актуальный курс. Пользователь к нему не имеет доступа. Может можно как то по другому в таблице всегда иметь актуальный курс доллара?
Вероятная причина проблемы: разное представление десятичных дробей в Excel (через запятую) и в контексте источника (JavaScript и, значит, десятичные значения через точку). Опять же, предположу, что проблема устраняется простой операцией вида CDbl(Replace(Ваша_строка_из_цифр_с_точкой, ".", ",")) перед вставкой данных в ячейку (если используется VBA). Однако чтобы сказать что-то конкретное, надо увидеть код парсинга загруженных данных перед их вставкой.
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
Думаю, данный вариант должен работать корректно и у Вас, и у Ваших пользователей. (Но да, макросы надо разрешить).
Во вкладке автозамена можно настроить замену всего что угодно (в том числе точку на запятую и наоборот). В разных версиях экселя эта вкладка находится в разных местах. Где найти вкладку в вашем экселе узнаете из справки (нажать F1)
Вариант формулы без макросов Вам уже предложили выше: =ЗАМЕНИТЬ(F2;НАЙТИ(".";F2;1);1;",") . Однако мне непонятно, почему эта формула не сработала у Вас. Возможно, Вы в ней опечатались и точку с запятой спутали?