{"id":14268,"url":"\/distributions\/14268\/click?bit=1&hash=1e3309842e8b07895e75261917827295839cd5d4d57d48f0ca524f3f535a7946","title":"\u0420\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a\u0430\u043c \u0438\u0433\u0440\u0430\u0442\u044c \u043d\u0430 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u043c\u0435\u0441\u0442\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e?","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"f71e1caf-7964-5525-98be-104bb436cb54"}

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

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

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

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

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

Решение.

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

Было:

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

Стало:

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

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

Почему так?

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

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

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

0
6 комментариев
Написать комментарий...
Илюза Хасанова

👍👍👍

Ответить
Развернуть ветку
Vyacheslav Teplyakov

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

Ответить
Развернуть ветку
Многомерный Грааль
Автор

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

Ответить
Развернуть ветку
Михаил Скубченко

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

Ответить
Развернуть ветку
Многомерный Грааль
Автор

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

Ответить
Развернуть ветку
Елена Миронова

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

Ответить
Развернуть ветку
3 комментария
Раскрывать всегда