Страницы: 1
RSS
Игнор пустых (null) ячеек при вычислениях (Power Query)
 
Добрый день

Вопрос тупой, но меня поставил в тупик:
В запросе PQ необходимо удалить строки, сумма по которым = 0

Решение такое: в отдельном столбце простым вычислением (Столбец1+Столбец2+Столбец3 и тд) считаем сумму и фильтром убираем нулевые значения. Однако при наличии пустых ячеек (null) результат будет null

Как произвести корректное вычисление, не заменяя при этом null на 0 ?

ps. Надеюсь есть более элегантное решение. Буду рад подсказке
 
В качестве формулы для столбца можно использовать выражение:
Код
=List.Sum( {[Сумма1], [Сумма2], [Сумма3]} & {0} )

Добавление к списку нуля нужно для случая, когда во всех трех столбцах имеются значения null, иначе будет ошибка.
З.Ы. и вопрос не тупой. Для начинающего вполне нормальный вопрос, сам с ним мучился немало.
Изменено: PooHkrd - 10.05.2018 15:32:22
Вот горшок пустой, он предмет простой...
 
PooHkrd, спасибо, помогло ;)
 
Добрый день!
проблема схожая, как можно ее решить? Операция вычитание от null - 5 = дает null
 
Цитата
Митягин Александр написал:
Операция вычитание от null - 5 = дает null
это не проблема и не ошибка - так работает PQ в соответствии со своей спецификацией. Если хотите получить осмысленный ответ - покажите свой файл
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
Митягин Александр написал:
Операция вычитание от null - 5 = дает null
а что она должна делать? null <> 0.
если хотите, чтобы для этой операции null приравнивался к 0, то сделайте формулу добавления столбца такой:
Код
= List.Max( { [Столбец где могут быть null], 0 } ) - [столбец где нет null]
List.Max или List.Min - не важно. Если второй столбец тоже может содержать null, тоже запихните его в такую конструкцию, типа:
Код
= List.Max( { [Столбец где могут быть null], 0 } ) - List.Max( { [Другой столбец где могут быть null], 0 } )
F1 творит чудеса
 
Спасибо, помогло
 
Цитата
Максим Зеленский написал:
Код
= List.Max( { [Столбец где могут быть null], 0 } ) - List.Max( { [Другой столбец где могут быть null], 0 } )
При отрицательных значениях в любом из столбцов результат будет некорректный

Нижеприведенное выражение должно правильно вычислять разность:
Код
= List.Sum( { [Столбец где могут быть null], -[Другой столбец где могут быть null], 0 } )
Изменено: neophyte - 26.02.2022 01:32:37
Страницы: 1
Наверх