Добрый день, прошу подсказать, где копать макрос суммирует 2 таблицы по уникальному критерию и сравнивает, отклонения закрашиваются цветом в процессе теста вылез непонятный баг значения в двух переменных одинаковы, тип переменных одинаковый "Single", но условие сравнения показывает, что данные неравны проверка формулой "суммесли" показывает, что значения равны файл не могу приложить из-за настроек защиты сети Вот результат проверки в окне "Immediate"
Добрый день, прошу подсказать, где копать макрос суммирует 2 таблицы по уникальному критерию и сравнивает, отклонения закрашиваются цветом в процессе теста вылез непонятный баг значения в двух переменных одинаковы, тип переменных одинаковый "Single", но условие сравнения показывает, что данные неравны проверка формулой "суммесли" показывает, что значения равны файл не могу приложить из-за настроек защиты сети Вот результат проверки в окне "Immediate"
Сталкивался с таким - тип один, значения переменных одинаковые, а сравнение в коде не проходят. Пришлось обе приводить в стринг, затем сравнивать. Разница была в том, откуда эти данные попадали на лист.
Сталкивался с таким - тип один, значения переменных одинаковые, а сравнение в коде не проходят. Пришлось обе приводить в стринг, затем сравнивать. Разница была в том, откуда эти данные попадали на лист.Hugo
две таблицы, в которых итоговые кол-во и сумма одинаковы таблица 1 - 1000 строк таблица 2 - 600 строк при типе Single 56 строк с отклонениями по сумме при типе Variant 234 строки при типе Double 167 строк остановился на типе Currency тут 0 отклонений, но только 4 знака после запятой думаю, что на кол-ве сделаю сравнение с преобразованием в строки в суммах не должно быть более чем 2 знака после запятой, так что Currency хватит спасибо за помощь.
две таблицы, в которых итоговые кол-во и сумма одинаковы таблица 1 - 1000 строк таблица 2 - 600 строк при типе Single 56 строк с отклонениями по сумме при типе Variant 234 строки при типе Double 167 строк остановился на типе Currency тут 0 отклонений, но только 4 знака после запятой думаю, что на кол-ве сделаю сравнение с преобразованием в строки в суммах не должно быть более чем 2 знака после запятой, так что Currency хватит спасибо за помощь.illios
Так а чем мои варианты не подошли? У Double - точность гораздо выше чем у "Currency" - это может дать сильные расхождения при расчетах на больших суммах, что в некоторых случаях недопустим0
Так а чем мои варианты не подошли? У Double - точность гораздо выше чем у "Currency" - это может дать сильные расхождения при расчетах на больших суммах, что в некоторых случаях недопустим0 SLAVICK
вообще,в excel для работы с числами используется тип данных double .поэтому логичнее вообще отказаться от других типов данных для работы с числами,т.к. чтобы понять,что происходит с числами,нужно быть профессиональным программистом
вообще,в excel для работы с числами используется тип данных double .поэтому логичнее вообще отказаться от других типов данных для работы с числами,т.к. чтобы понять,что происходит с числами,нужно быть профессиональным программистомKarataev
Сообщение отредактировал Karataev - Вторник, 03.02.2015, 17:01
округление не поможет, т.к. нужны точные цифры, все должно до копейки сходиться количество идет в штуках, кг тут может быть до 2 знаков после запятой, в тоннах в основном до 3 знаков после запятой, максимум видел 4 знака так что Currency вполне устраивает Сумма она и в Африке сумма, ну не может быть стоимость быть полкопейки по этому и 2 знаков после запятой хватит, а уж 4... кстати тип Currency по описанию как раз предназначен для денежного счета
вообще,в excel тип данных double .поэтому логичнее вообще отказаться от других типов данных
в Excel основной тип данных это variant, который считается самым затратным по памяти и соответственно по скорости, а при объемах от 2000 строк это очень затратно по времени по этому лично я перешел на смешанный тип вычислений, там где есть возможность, при помощи VBA проставляю формулы и считаю, а только там где с формулами не получается, уже использую массив в памяти с описанием тех типов переменных, которые мне нужны я же не буду хранить 1 и 0 для логического типа данных в double, когда есть boolean
округление не поможет, т.к. нужны точные цифры, все должно до копейки сходиться количество идет в штуках, кг тут может быть до 2 знаков после запятой, в тоннах в основном до 3 знаков после запятой, максимум видел 4 знака так что Currency вполне устраивает Сумма она и в Африке сумма, ну не может быть стоимость быть полкопейки по этому и 2 знаков после запятой хватит, а уж 4... кстати тип Currency по описанию как раз предназначен для денежного счета
вообще,в excel тип данных double .поэтому логичнее вообще отказаться от других типов данных
в Excel основной тип данных это variant, который считается самым затратным по памяти и соответственно по скорости, а при объемах от 2000 строк это очень затратно по времени по этому лично я перешел на смешанный тип вычислений, там где есть возможность, при помощи VBA проставляю формулы и считаю, а только там где с формулами не получается, уже использую массив в памяти с описанием тех типов переменных, которые мне нужны я же не буду хранить 1 и 0 для логического типа данных в double, когда есть booleanillios
Сумма она и в Африке сумма, ну не может быть стоимость быть полкопейки по этому и 2 знаков после запятой хватит
Не факт - у нас на фирме точность 5 знаков... т.е. в платежках отображается например 5,00 а на самом деле 4,99543 А теперь посчитайте какие расхождения могут быть на товарообороте хотя бы в 100 000 000 Зарплаты может не хватить
Сумма она и в Африке сумма, ну не может быть стоимость быть полкопейки по этому и 2 знаков после запятой хватит
Не факт - у нас на фирме точность 5 знаков... т.е. в платежках отображается например 5,00 а на самом деле 4,99543 А теперь посчитайте какие расхождения могут быть на товарообороте хотя бы в 100 000 000 Зарплаты может не хватить SLAVICK