Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 19.05.2008, 01:15   #1
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию Странное поведение ПОИСКПОЗ

Друзья,
У меня ПОИСКПОЗ почему-то не любит 0,3.
В чём дело?
Вложения
Тип файла: rar ПОИСКПОЗ.rar (2.2 Кб, 22 просмотров)
ZORRO2005 вне форума
Старый 19.05.2008, 12:43   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Вот это суровая задачка.
Сразу скажу - ответ не знаю. Еще скажу, такими вопросами ты подрываешь веру в Эксель!
Смотри, я там дополнил твой файл табличкой для экспериментов

Закономерность есть, ее надо искать в документации или спрашивать у Майкрософтов.

Смотри табличку.
Если 0,3 в базе (в желтой строке) заменить на результат формулы =0,1+0,2 - результаты поиска меняются местами. Там, где была найдена позиция 3 - становиться НД, а где были НД - стало 3. Причем, равны ли значения (искомое и из базы) - всегда выдает ИСТИНА (смотри последнюю колонку).

Да, если в ПОИСКПОЗ убрать 0 в конце, то она абсолютно логично всегда находит позицию 0,3.

Понятно, что видим мы в ячейке одно значение, а эксель хранит нечто другое, т.е. там есть какой-то знак, я не знаю, в 10-14 разряде после запятой, поэтому они и не равны, но как его увидеть, не знаю. Причем то, что они разные, видит ПОИСКПОЗ, а простое сравнение видит, что значения равны.((( Возможно они сравнивают разные типы, Single и Double, например.

100% я сталкивался с таким: при увеличении ширины колонки, иногда там, где стояла красивая цифра, появляется n нулей и единичка за ними, т.е. на самой деле Эксель держал в уме, немного не то, что показывал в ячейке.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 19.05.2008, 13:23   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Проблема в функции рабочего листа "ОКРУГЛВВЕРХ". Если использовать просто "ОКРУГЛ", то все будет ОК. При выполнении функции "ОКРУГЛВВЕРХ" с заданным количеством разрядов (не 0), Excel работает с типом Double. Поэтому и возникает ошибка. Избежать ее можно, если всегда задавать количество десятичных знаков - 0. Например, см. вложение.
Вложения
Тип файла: rar ПОИСКПОЗ_2.rar (2.3 Кб, 10 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 19.05.2008, 13:35   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

сори, не приложил свою таблицу
Вложения
Тип файла: rar ПОИСКПОЗ.rar (2.9 Кб, 17 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 19.05.2008, 13:53   #5
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

SAS888
Проблема не только с "ОКРУГЛВВЕРХ"
Это видно в примере IgorGO
Интересно то, что если вместо 0,26 подставить(>=0,3 или <=0,2)
то все будет работать.

Последний раз редактировалось ZORRO2005; 19.05.2008 в 13:58.
ZORRO2005 вне форума
Старый 19.05.2008, 14:02   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Функцию "ОКРУГЛВВЕРХ" я привел как пример. Почти все действия с дробными числами дадут подобный результат.
Цитата:
Это видно в примере IgorGO
Я имею ввиду не те числа, которые использует Excel в процессе выполнения функций, а те, которые пользователь предлагает Excel-ю. Во избежании возможной ошибки они должны быть (по возможности) целыми (опять же см. таблицу от IgorGO).
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Че-то странное .... ~Brilliant~ Безопасность, Шифрование 9 27.04.2009 13:57
Независимое поведение форм Alter Общие вопросы Delphi 2 25.07.2008 22:12
Непонятное поведение алгоритма master_root Общие вопросы Delphi 3 11.06.2008 14:32
Странное закрытие joker Win Api 18 29.03.2008 07:45