Страницы: 1
RSS
Как распознать число с десятичной точкой вместо запятой?
 
Столкнулся с комичной ситуацией, надо выдернуть числовые значения из документа (Excel) содержащего текстовый строки. При этом одни числа содержат десятичную точку, другие десятичную запятую, при восприятии текса это не важно, а коменда ЗНАЧЕН начинает ругаться на точки. Перерыл настройки экселя и документа, ничего не нашел. Для смеху изменил разделитель десятичной дроби в региональных настройках Windows, команда ЗНАЧЕН стала понимать точки, но ругаться на запятые. Бился я бися головой об системник, нашел команду ПОДСТАВИТЬ, теперь использую их в связке:    
=ЗНАЧЕН(ПОДСТАВИТЬ(RC[-1];".";","))
Но это сильно загромождает формулу, нельзя ли как то одной командой это реализовать.  
Устроит вариант, если команда будет понимать только точку, но без изменения настроек Windows, так как к ним привязаны другие программы, такие как калькулятор.
 
ctrl+H
Я сам - дурнее всякого примера! ...
 
Я пробовал так делать, но так можно ненароком зацепить просто точки не десятичные, когда это не критично я так и делаю, но это может привести к ошибкам в распознавании обзначений содержащих "правильные" точки или, например, дат. Проще создать дополнительный столбец с командой ПОДСТАВИТЬ.  
Кроме того, этот способ не решает проблему привязки команды к региональным настройкам Windows, стоит поменять там запятую на точку в угоду другой программе (чтобы скрестить программы с разными десятичными разделителями, как напрмер mathematica и solid works), опять полезут ошибки.
 
Так вот как раз подставить Вам не решит проблему при смене системного разделителя и так же поменяет ненужное. А выделив нужный диапазон и заменив один раз... В любом случае лучше все привести к одному виду. Или UDF.
Я сам - дурнее всякого примера! ...
 
А Вы правы, команда ПОДСТАВИТЬ(RC[-1];".";",") оставляет зависимость от настрое системы. Значт вместо запятой следует подставлять системный разделитель.
А может все таки есть способ отвязать Excel от настроек системы и задать свой системный разелитель? (желательно для конкретного документа, так как в разных документах могут использоваться разные записи).  
 
Зы конечно привязка в к системе вызывает не только проблемы с точками, раньше аналогичная проблема возикала у меня с языком функций и с записью дат (OpenOffice под Linux заботливо переписал все даты в документе в формате "дд/мм/гг").
 
{quote}{login=Captor}{date=19.03.2011 11:52}{thema=}{post}А может все таки есть способ отвязать Excel от настроек системы и задать свой системный разелитель? {/post}{/quote}  
2003. Сервис - Параметры - Международные - Использовать системные разделители. Не то?
 
Или UDF.
Я сам - дурнее всякого примера! ...
Страницы: 1
Читают тему
Loading...