Найти в Дзене

NULL - это вам не ноль, и что с ним делать в Power Query

Если вы работаете в Power Query, то наверняка видели такое: NULL - в этой статье разберем, что это такое и увидим, чем он опасен. Несмотря на то, что NULL созвучен со словом "ноль" - это совсем не ноль. NULL - это пустота. Отсутствие значения. Предыдущая картинка как нельзя лучше иллюстрирует различие между 0 и NULL. (тут, как говорится, кто понял, тот понял 😀) Все же работают в Excel и знают функцию ВПР? (ну а как иначе вы оказались на моем канале 😀). Когда функция ВПР не находит искомое значение в таблице-источнике, она выдает ошибку #Н/Д - "Нет данных" Заметьте - не 0, а именно "Нет данных". То же самое происходит и в Power Query. Особенно часто эта ошибка возникает при объединении запросов - аналог функции ВПР в Power Query. Рассмотрим на примере. У нас есть две таблицы: Таблица 1 - остатки на складе на начало месяца Таблица 2 - продажи за месяц Задача - посчитать остатки на конец месяца. Загрузим обе таблицы в Power Query. Для этого встанем на любую ячейку внутри таблицы
Оглавление

Если вы работаете в Power Query, то наверняка видели такое:

NULL - в этой статье разберем, что это такое и увидим, чем он опасен.

-2

Несмотря на то, что NULL созвучен со словом "ноль" - это совсем не ноль. NULL - это пустота. Отсутствие значения.

Предыдущая картинка как нельзя лучше иллюстрирует различие между 0 и NULL.

(тут, как говорится, кто понял, тот понял 😀)

Сначала разберемся - что такое NULL?

Все же работают в Excel и знают функцию ВПР? (ну а как иначе вы оказались на моем канале 😀).

Когда функция ВПР не находит искомое значение в таблице-источнике, она выдает ошибку #Н/Д - "Нет данных"

-3

Заметьте - не 0, а именно "Нет данных".

То же самое происходит и в Power Query.

Особенно часто эта ошибка возникает при объединении запросов - аналог функции ВПР в Power Query.

Рассмотрим на примере. У нас есть две таблицы:

Таблица 1 - остатки на складе на начало месяца

Таблица 2 - продажи за месяц

Задача - посчитать остатки на конец месяца.

-4

Загрузим обе таблицы в Power Query.

Для этого встанем на любую ячейку внутри таблицы и перейдем на вкладку Данные - блок Получить и преобразовать данные - Из таблицы/диапазона.

(если у вас данные находятся в обычном диапазоне, а не в "умной" таблице - Excel предложит преобразовать в "умную" таблицу - нужно согласиться)

Далее в редакторе Power Query на вкладке Главная выберем Закрыть и Загрузить - Закрыть и Загрузить в... - Только создать подключение.

Аналогично поступим со второй таблицей.

Теперь в редакторе Power Query объединим Таблицу 1 и Таблицу 2 по ключевому столбцу Товар.

Для этого, находясь в запросе Таблица 1, на вкладке Главная выберем Объединить - Объединить запросы.

Выберем Таблицу 2 как вторую таблицу и отметим поле Товар как ключевое.

-5

Затем развернем значения столбца Продано, которые подтянулись по наименованию Товара.

-6

И вот они - значения null, которые подтянулись для трех позиций товаров.

-7

Если мы вернемся к Таблице 2, то увидим, что этих товаров нет в таблице - именно поэтому в ячейках появились null (если бы мы использовали ВПР для аналогичной операции, то получили бы ошибку #Н/Д).

Чем опасно значение NULL?

Если мы сейчас просто загрузим результат этого объединения запросов а таблицу на лист Excel, то ячейки со значением NULL выгрузятся просто пустыми.

-8

И в том случае, если прямо в этой же выгруженной таблице создадим новый столбец, в котором рассчитаем Остаток на конец месяца - Excel воспримет эти пустые ячейки как 0 и ошибки не будет.

-9

Но!

Если мы сделаем то же самое внутри редактора Power Query - создадим столбец (вкладка Добавление столбца - Настраиваемый столбец) и укажем формулу

-10

То получим такую беду:

-11

Остаток на конец месяца, вместо того, чтобы остаться неизменным, превратился в NULL.

Это произошло потому, что при любых математических операциях с NULL всегда получаем результат NULL.

Кстати, также работает и ошибка #Н/Д в Excel - попробуйте сделать с ней любое математическое действие - получите ошибку #Н/Д.

Именно этим и опасен NULL.

Что делать с NULL?

Неужели всегда выгружать результат в Excel и уже там делать расчеты?

Нет, конечно, это чаще всего нецелесообразно.

На самом деле, нет универсального решения, как поступить со значениями NULL. Всегда нужно ориентироваться на особенности вашей конкретной задачи и ваших данных.

Но есть несколько советов:

1. Во-первых, ошибка NULL чаще всего появляется при объединении запросов. И иногда в ней виноваты мы сами, т.к. не учли некоторые особенности.

Вы могли поменять тип данных в ключевом столбце - будет ошибка NULL.

Вы могли поменять регистр букв в ключевом столбце - будет ошибка NULL.

И так далее, подробнее про особенности объединения запросов смотрите в статье.

В общем, многие действия с ключевым столбцом после операции объединения запросов могут привести к возникновению ошибки NULL.

2. Ошибку NULL можно отфильтровать.

Помним, что фильтрация в Power Query работает иначе, чем в Excel - она фактически удаляет строки, которые не выбраны фильтром.

Если ваша задача позволяет удалить эти строки навсегда - примените фильтрацию.

-12

3. NULL можно заменить на 0

На самом деле это самый распространенный и безопасный вариант.

Для этого щелкнем правой кнопкой мыши на заголовке столбца и выберем Замена значений.

И укажем, что заменяем null на 0.

-13

Для нашей задачи подходит именно этот вариант.

Теперь можно добавлять столбец с любыми математическими действиями - они не будут ошибочно рассчитываться как NULL.

-14

Теперь вы знаете, чем опасен NULL и как им управлять.

Если вы хотите знать еще больше про Excel, Power Query и анализ данных - подписывайтесь на канал Ленивый аналитик.

Также у канала есть Телеграмм, где я делюсь дополнительными фишечками и полезностями из своей практики - присоединяйтесь, ссылка ниже!

Ленивый аналитик | Excel, Power Query, SQL