Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Проверка ячеек D4=E4 истинна, итог формул по ним различен - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Проверка ячеек D4=E4 истинна, итог формул по ним различен
Apxuej Дата: Вторник, 17.12.2024, 18:01 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

2013
Есть данные в виде чисел из которых с помощью простых формул получаем другие числа (один знак после запятой). Полученные числа точно являются числами - если мы введём рядом число с клавиатуры и сверим с помощью А1=B1, то получим ИСТИНА. Если затем по этим числам с помощью ВПР или ИНДЕКС попытаться подтянуть значения из таблицы, то по части чисел этого не произойдёт - выдаст НД (данные точно есть в таблице и они тоже 100% числа). Если данные, полученные формулой, скопировать и вставить как значения, то также формулы ВПР и ИНДЕКС в части случаев не сработают. Однако, если воспользоваться числами идентичными полученными формулой, но вбитыми вручную, то всё подтягивается. Я уже подумал может числа и не числа каким-то образом и применил ЗНАЧЕН, но и это не помогло. Ещё раз упомяну, что числа полученные формулой и числа вбитые вручную одинаковые я проверил это через A1=A2, но по одним формула работает, а по другим нет. И это не может быть проблемой чисел с большим количеством знаков или тем, что я идиот не могу вбить число верно, так как в числах 3 знака. Я в смятении, помогите, пожалуйста! Файл прикладываю.
К сообщению приложен файл: WTF.xlsb (37.3 Kb)
 
Ответить
СообщениеЕсть данные в виде чисел из которых с помощью простых формул получаем другие числа (один знак после запятой). Полученные числа точно являются числами - если мы введём рядом число с клавиатуры и сверим с помощью А1=B1, то получим ИСТИНА. Если затем по этим числам с помощью ВПР или ИНДЕКС попытаться подтянуть значения из таблицы, то по части чисел этого не произойдёт - выдаст НД (данные точно есть в таблице и они тоже 100% числа). Если данные, полученные формулой, скопировать и вставить как значения, то также формулы ВПР и ИНДЕКС в части случаев не сработают. Однако, если воспользоваться числами идентичными полученными формулой, но вбитыми вручную, то всё подтягивается. Я уже подумал может числа и не числа каким-то образом и применил ЗНАЧЕН, но и это не помогло. Ещё раз упомяну, что числа полученные формулой и числа вбитые вручную одинаковые я проверил это через A1=A2, но по одним формула работает, а по другим нет. И это не может быть проблемой чисел с большим количеством знаков или тем, что я идиот не могу вбить число верно, так как в числах 3 знака. Я в смятении, помогите, пожалуйста! Файл прикладываю.

Автор - Apxuej
Дата добавления - 17.12.2024 в 18:01
Hugo Дата: Вторник, 17.12.2024, 19:04 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3703
Репутация: 792 ±
Замечаний: 0% ±

365
Apxuej, округляйте итоговое значение, например
Код
=ОКРУГЛ(ОКРУГЛ(ОКРУГЛ(A6;1)/0,2;0)*0,2;1)

вот такое 20,4 находит.
Хотя вот странное всё ж в одном месте есть:

Если тут константу ввести повторно то найдёт! Хотя и сейчас она число, и ниже ИСТИНА - это сравнение константы со списком для ВПР.
Но функция значение не находит.
P.S. нашёл где косяк, но не понятно откуда такая константа, явно не вручную вбивали (и это портит всё расследование (( ):
[vba]
Код
<c r="D10"><f>ROUND(ROUND(ROUND(A10,1)/0.2,0)*0.2,1)</f><v>26.2</v></c><c r="E10"><v>26.200000000000003</v></c>
[/vba]

А говорили
числа вбитые вручную

расскажите как так сумели?


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD


Сообщение отредактировал Hugo - Вторник, 17.12.2024, 19:43
 
Ответить
СообщениеApxuej, округляйте итоговое значение, например
Код
=ОКРУГЛ(ОКРУГЛ(ОКРУГЛ(A6;1)/0,2;0)*0,2;1)

вот такое 20,4 находит.
Хотя вот странное всё ж в одном месте есть:

Если тут константу ввести повторно то найдёт! Хотя и сейчас она число, и ниже ИСТИНА - это сравнение константы со списком для ВПР.
Но функция значение не находит.
P.S. нашёл где косяк, но не понятно откуда такая константа, явно не вручную вбивали (и это портит всё расследование (( ):
[vba]
Код
<c r="D10"><f>ROUND(ROUND(ROUND(A10,1)/0.2,0)*0.2,1)</f><v>26.2</v></c><c r="E10"><v>26.200000000000003</v></c>
[/vba]

А говорили
числа вбитые вручную

расскажите как так сумели?

Автор - Hugo
Дата добавления - 17.12.2024 в 19:04
Apxuej Дата: Среда, 18.12.2024, 10:46 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

2013
Hugo, спасибо большое! Дополнительное округление действительно помогло! 26,2 не вбивал вручную - в столбце "константа" вбивал с клавиатуры только значения 20,4 и 19, остальные получены копированием и вставкой соседней ячейки как значения.
И всё-таки это в очередной раз баг с числами с большим количеством знаков после запятой. У меня уже такое бывало, но на этот раз этого даже заметить невозможно из интерфейса! После того как увидел Ваше сообщение, сразу появилось следующее предположение: допустим есть число с 15+ знаками после запятой, функция округления берёт 14+"аргумент кол-во знаков после запятой"=15 знаков после запятой, превращает их в нули до нужного нам знака. Потом происходит деление на 0,2, что поднимает цифру из 16 знака после запятой до 15 знака, где его могут видеть некоторые формулы, но не все. Потом следующая ОКРУГЛ берёт 14+"аргумент"=14 знаков после запятой, что оставляет цифру в 15 знаке. Потом ещё одна функция округления берёт 14+1 знак после запятой, что исправляет ситуацию. Но это предположение не работает, ведь если взять ту ОКРУГЛ, которую Вы предложили для исправления ситуации с вторым аргументом 0, то всё равно ситуация исправляется. Может у Вас есть предположение, что может происходить? Хотелось бы понимать логику, чтобы в дальнейшем избегать таких ситуаций.
 
Ответить
СообщениеHugo, спасибо большое! Дополнительное округление действительно помогло! 26,2 не вбивал вручную - в столбце "константа" вбивал с клавиатуры только значения 20,4 и 19, остальные получены копированием и вставкой соседней ячейки как значения.
И всё-таки это в очередной раз баг с числами с большим количеством знаков после запятой. У меня уже такое бывало, но на этот раз этого даже заметить невозможно из интерфейса! После того как увидел Ваше сообщение, сразу появилось следующее предположение: допустим есть число с 15+ знаками после запятой, функция округления берёт 14+"аргумент кол-во знаков после запятой"=15 знаков после запятой, превращает их в нули до нужного нам знака. Потом происходит деление на 0,2, что поднимает цифру из 16 знака после запятой до 15 знака, где его могут видеть некоторые формулы, но не все. Потом следующая ОКРУГЛ берёт 14+"аргумент"=14 знаков после запятой, что оставляет цифру в 15 знаке. Потом ещё одна функция округления берёт 14+1 знак после запятой, что исправляет ситуацию. Но это предположение не работает, ведь если взять ту ОКРУГЛ, которую Вы предложили для исправления ситуации с вторым аргументом 0, то всё равно ситуация исправляется. Может у Вас есть предположение, что может происходить? Хотелось бы понимать логику, чтобы в дальнейшем избегать таких ситуаций.

Автор - Apxuej
Дата добавления - 18.12.2024 в 10:46
Hugo Дата: Четверг, 19.12.2024, 13:00 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3703
Репутация: 792 ±
Замечаний: 0% ±

365
Apxuej, это всё IEEE 754:
https://learn.microsoft.com/en-us....-result
допустим есть число с 15+ знаками после запятой
- думаю в Экселе не будет без спецнадстроек. Нужны другие программы.


webmoney: E265281470651 Z422237915069
USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
 
Ответить
СообщениеApxuej, это всё IEEE 754:
https://learn.microsoft.com/en-us....-result
допустим есть число с 15+ знаками после запятой
- думаю в Экселе не будет без спецнадстроек. Нужны другие программы.

Автор - Hugo
Дата добавления - 19.12.2024 в 13:00
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!