Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Неправильно сравниваются два числа
 
Добрый день!
Очень давно пользуюсь вашим форумом и почти всегда нахожу решения возникающих проблем - за что вам крайне благодарен.
Однако впервые у меня возникла ситуация, поставившая меня в тупик настолько, что пришлось создавать топик.
Прошу прощения, если проблема покажется вам тривиальной, но в поисковиках я решения не нашёл.

Итак, есть таблица в которой я что-то там обсчитываю и пытаюсь сделать условное форматирование по значению.
Однако, оно не срабатывает, и в попытке выяснить, в чём дело, я вручную сравниванию значения ячеек В6 и В3.
Результат - в ячейках С3 и D3.
Первая утверждает, что В6 не меньше В3, а вторая - что В6 больше В3, т.е. одно и то же.
Проблема в том, что В6 = 54410, а В3 = 100000 :)

Подозреваю, что проблема в том, что значение В6 получено мной из текста и, возможно, где-то некорректно обсчитывается.
Хотя в ячейке Е3 формула =В3-В6 вполне корректно выдаёт результат 45590.

Буду крайне признателен за подсказку, почему неправильно сравниваются ячейки!
 
Добрый день. Вы правильно подозреваете. Виной текстовые функции, результатом работы которых является текст. Для того что бы псевдочисло превратить в настоящее число, нужно произвести с ним математическое действие, которое не исказит значение исходное. Умножить на 1, прибавить 0 или перед текстовой функцией поставить -- (два минуса ). И дело в шляпе.
PS. Вот эта формула =ЕСЛИ(B6<B3;1;0) идентична этой =--(B6<B3).
Изменено: Bema - 18 Фев 2017 16:11:52
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Bema, спасибо Вам огромное! Меня ввело в заблуждение то, что операция вычитания над этим "псевдочислом" корректно выполнялась.
 
Пожалуйста. Вот приёмах статья на эту тему ТЫЦ.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Цитата
Nidere написал: операция вычитания над этим "псевдочислом" корректно выполнялась.
Правильно. Потому что Excel, видя математическую операцию над данными, пытается привести эти данные к соответствующему формату, и, если у него это получается, то операция успешно выполняется
Согласие есть продукт при полном непротивлении сторон.
 
А кто как поступает, когда среди данных "числа как текст", могут проскакивать ячейки с текстом нулевой длины (или как там оно красиво зовется), в общем эмулируется так: =""
Как можно универсально формулами привести такую последовательность к числам? Тоже двойное отрицание выдаст #Знач
 
vladjuha
Для C2 тогда уж лучше: =ЕСЛИ(A2="";0;A2)
А в E3 (=--(A3&0)/10) Вас тоже что то смущает?  
Изменено: Sanja - 19 Фев 2017 17:34:12
Согласие есть продукт при полном непротивлении сторон.
 
Sanja, спасибо, я тоже использую "если" , хотя мне немножечко жалко использовать его для такого пустяка :), но видимо это единственный путь
Цитата
Sanja написал:
А в E3 (=--(A3&0)/10) Вас тоже что то смущает?
то, что это годится только для целых чисел

Кажется я родил подходящее: =--(0&A1)
...
Чиорт пабери, а на нужном мне образце всё-равно не работает из-за кривущей выгрузки дат.
Изменено: vladjuha - 19 Фев 2017 17:52:05
 
Цитата
vladjuha написал: Кажется я родил подходящее: =--(0&A1)
Кстати, ДА  :excl:

Цитата
vladjuha написал: годится только для целых чисел
не согласен. Что 5,1/10 = 0,51, что 5,10/10 = 0,51
Согласие есть продукт при полном непротивлении сторон.
 
Цитата
Sanja написал:
не согласен. Что 5,1/10 = 0,51, что 5,10/10 = 0,51
Так на входе 5,1 а на выходе 0,51 (число-то не должно меняться).
 
Цитата
vladjuha написал: число-то не должно меняться
Ну как же? Вы же ноль добавляете к дробной части
Согласие есть продукт при полном непротивлении сторон.
 
Цитата
vladjuha написал: из-за кривущей выгрузки дат
Даты то причем? Они наоборот в НОРМАЛЬНОМ виде (именно как ДАТЫ)
Видимо без ЕСЛИ() никак  :)
Согласие есть продукт при полном непротивлении сторон.
 
Цитата
Sanja написал: Ну как же? Вы же ноль добавляете к дробной части
Ну правильно, потому он ничего не значит, а я, несмотря на это, всё-равно делю на десять и уменьшаю исходное значение на порядок, хотя требовалось его только преобразовать в число из текста. Или я того  :oops:  

Цитата
Sanja написал: Даты то причем? Они наоборот в НОРМАЛЬНОМ виде (именно как ДАТЫ)
Они не по уставу: время вперёд даты, 24:00, текст. На полуесли, в принципе, выехал, =ЕСЛИОШИБКА(--C9;--(0&C9)). Здесь хоть ошибка ожидаемой природы.
Страницы: 1
Читают тему (гостей: 1)