Еще одна тонкость работы в Power BI, которая заставит тебя понервничать и потратить время, если не…

...если не прочитать данную статью. Время чтения — 1 минута.

Привет, дорогие читатели vc.ru! В серии статей хотел бы с вами поделиться пятью вещами, которые с большим трудом и затраченным временем удалось понять, а затем и обойти при работе с Power BI. Эти знания основаны исключительно на моем личном опыте, то есть с этими проблемами я сам непосредственно столкнулся, поэтому и решил поделиться.

Ситуация #1. Импортирую csv файл. В нем есть столбцы, содержащие десятичные числа, разделенные точкой (например, 6.67). Power Query считывает этот столбец как тип данных “Текст”.

Еще одна тонкость работы в Power BI, которая заставит тебя понервничать и потратить время, если не…

При попытке конвертировать его в тип “Десятичное число”, возникает ошибка

Еще одна тонкость работы в Power BI, которая заставит тебя понервничать и потратить время, если не…

Решение.

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

Было:

Table.TransformColumnTypes(#"Измененный тип", {{"BS", type number}})

Стало:

Table.TransformColumnTypes(#"Измененный тип", {{"BS", type number}}, "en-US")

Все работает, вуаля:

Еще одна тонкость работы в Power BI, которая заставит тебя понервничать и потратить время, если не…

Почему так?

Дело в том, что в по умолчаню в русской локализации Windows десятичный разделитель это запятая, а в американской - точка. Узнать это можно попробовав в Excel ввести десятичное число через запятую и через точку.

Спасибо, что дочитали до конца!

Оставляйте комментарии. Следите за обновлениями, в ближайшее время данная серия статей будет дополняться.

66
6 комментариев

👍👍👍

1
Ответить

По мне так надёжнее в таких столбцах сделать замену точки на запятую. Ну и потом назначить тип данных ручками. Вообще нормальная практика не надеяться на авто определение типа данных. Я его сразу удаляю и все колонки назначаю в ручную.

1
Ответить

Да, Вячеслав, вы правы, если изначально неизвестно, что разделитель запятая или точка. Насчёт автоопределения типа данных тоже согласен с вами. Его всегда надо проверять

Ответить

"Используя локаль"

1
Ответить

Спасибо, что подметили)

Ответить

Добрый день. Преобразую столбец из запроса к csv файлу в десятичное число "используя локаль", но почему-то в случае, когда после точки слишком много цифр, работает некорректно. Например, 3344436.5499997335 преобразуется в 33444365499997335,00 вместо 3344436.55. Не подскажете, в чем может быть дело и как это обойти?

Ответить