Обработка пустых значений

Автор suboral, 18 декабря 2019, 05:28:50

« назад - далее »

suboral

Добрый день. Прошу подсказать, каким способ лучше решить сложившуюся проблему. Имеем приложение, для расчета кол-ва товара к заказу, 3 таблицы:
1. "остаток" и "ожидаемое поступление"
2. Отчет по продажам, из него рассчитывается средний расход и сколько надо заказать на будущий период - $(Расход за 3 месяца)
3. Номенклатура
Вот такая простая формула: Ceil($(Расход за 3 месяца)*40-[Доступно]-[Поступление], 10)
Проблема возникает в 2ух случаях:
1. Если остаток или ожидаемое поступление 0(в файле с остатками ячейка пустая), то в результате формула дает "-"
2. Если меняю формулу на Ceil($(Расход за 3 месяца)*40-[Доступно], 10) то результат считается(но разумеется без "ожидаемое поступление").

Я так понимаю, надо обрабатывать Null при загрузке?
 

admin

Попробуйте использовать alt(Поступление,0), но это если у вас есть строка с null. если же нет значения в принципе, то надо как-то при загрузке этот момент просчитать.

suboral

Цитата: admin от 22 декабря  2019, 06:15:38  Попробуйте использовать alt(Поступление,0), но это если у вас есть строка с null. если же нет значения в принципе, то надо как-то при загрузке этот момент просчитать.

Нет, null нет, просто загрузка из excel с пустой ячейкой. Подскажите, как поправить скрипт загрузки?
Что-то типа if пусто, то null,(а лучше даже 0).

Uunit

Добрый день.
Возможно я наивен, но вы пробовали один из приведённых ниже вариантов?

Ceil($(Расход за 3 месяца)*40-[Доступно]-IF(Isnull([Поступление]),0,[Поступление]),10)или
Ceil($(Расход за 3 месяца)*40-[Доступно]-IF(len(trim([Поступление]))=0,0,[Поступление]),10)

suboral

Цитата: Uunit от 23 декабря  2019, 02:16:15  Добрый день.
Возможно я наивен, но вы пробовали один из приведённых ниже вариантов?

Ceil($(Расход за 3 месяца)*40-[Доступно]-IF(Isnull([Поступление]),0,[Поступление]),10)или
Ceil($(Расход за 3 месяца)*40-[Доступно]-IF(len(trim([Поступление]))=0,0,[Поступление]),10)
Тогда уж вот так
Ceil($(Расход за 3 месяца)*40-IF(Isnull([Доступно]),0,[Доступно])-IF(Isnull([Поступление]),0,[Поступление]),10)Это рабочее решение, но хотелось бы более лаконичное решение, а это выглядит как костыль, т.е. именно, чтобы изначально грузились нули, а не делать проверку.
Но все равно спасибо)

admin

Если у драйвера нет возможностей на преобразование пустоты в ноль, то кому это придется делать как не клику )

Яндекс.Метрика