Страницы: 1
RSS
Почему происходит неверное ранжирование
 
Столкнулся с проблемой неверного определения ранга экселем. Не могу понять причину ошибки. Имеются 2 значения (в примере помечены красным), полученные делением абсолютно одинаковых исходных данных (помечены желтым), но этим одинаковым значениям присваиваются почему то разные разные ранги. Одна группа исходных данных (показатели) берется из связанной таблицы, ссылки идут не на формулы а на обычные целые числа. Ранги становятся равными, если ссылку на второе исходное данное (расположено ниже) заменить значением. Таблица в оригинале состоит из ряда показателей, по каждому определяются места и в одном случае при равенстве значений ранг пляшет, но может также быть одинаковым...  Читал про погрешности Эксель, связные с делением, но хвостиков не нашел. Странно что именно при округлении второго значения или замены показателя числом а не ссылкой все работает корректно, первое  значение не при чем, хотя ссылки идут просто на два числовых значения равных 20. Буду благодарен за дельный совет.
Изменено: roninza - 10.07.2020 20:27:45
 
Забавно. Пытаюсь разобраться. Пока не получается. Переделал табличку чуть-чуть (оставил только "странные" значения). Думаю, что проблема где-то в ячейках, выделенных красных. Если зайти в них и нажать Enter - результат меняется.
Я не волшебник, я только учусь.
 
не нужно бездумно копировать сообщение [МОДЕРАТОР]

понять бы причину...) мистика какая то
 
В B3 находится значение 20.000000000000004. Как его из Экселя увидеть - не знаю. Сохранил книгу в формате XLSX, переименовал в ZIP и смотрел уже на XML

<c r="B2" s="6">
<f>[2]База!D15</f>
<v>20</v>
</c>
<c r="C2" s="10">
<f>B2/$A2</f>
<v>0.3125</v>
</c>
...........................
<c r="B3" s="6">
<f>[2]База!D29</f>
<v>20.000000000000004</v>
</c>
<c r="C3" s="10">
<f>B3/$A3</f>
<v>0.31250000000000006</v>
</c>

Как вариант решения проблемы - перед ранжированием округлять цифры до какого-то знака.
Изменено: Wiss - 10.07.2020 20:40:36
Я не волшебник, я только учусь.
 
наверное надо обезопаситься округлением во всей таблице, спасибо огромное за информацию, но откуда хвост 04 приклеился если ссылка идет просто на ячейку с числом это загадкой останется)
 
Цитата
roninza написал:
но откуда хвост 04 приклеился
Надеюсь, кто-нить более опытный сможет ответить на этот вопрос. Мне тоже это очень интересно. Эксель и ВБА говорят, что в ячейке B3 стоит 20, а там на самом деле 20.000000000000004. Почему? Как это увидеть не черeз XML?!
Я не волшебник, я только учусь.
 
Упростил файл до предела. Может быть в отдельный пост его выкину, правда не знаю, что спрашивать, кроме того, что как узнать что там 20.000000000000004. Меня удивило, что при умножении на 10^20 эксель всё-равно продолжает делать вид, что там 2E+21, но хранит как 2.0000000000000003E+21.
Изменено: Wiss - 10.07.2020 21:07:33
Я не волшебник, я только учусь.
 
но при нажатии ввода в ячейке все становится на свои места)
 
roninza, при нажатии ввода в ячейке значение округляется и меняется на 20.
Я не волшебник, я только учусь.
 
И самый прикол, что в таблице есть другой показатель там его значение равно 3, он аналогично берется с того же источника и считается также, но там никаких приколов со скрытыми хвостами нет и все считается правильно
Страницы: 1
Наверх