Добрый день! Столкнулся с такой проблемой: при изменении типа данных колонки с "Десятичное число" на "Текст" разделитель дробной части меняется с точки на запятую. Предполагаю, что это связано с региональными настройками в системе и самой PowerQuery, но все равно напрягает. Но главная проблема не в этом, а в том, что некоторые десятичные числа с дробной частью преобразуются в числа с кучей нулей после запятой. Вся информация собирается из нескольких однотипных файлов Excel. Проверил по конкретной ошибке в исходном файле ячейка со значением имеет тип "Общий", в ячейке забито значение - не формула. В тестовом файле воспроизвести данное преобразование не удалось, поэтому даже не знаю уже куда копать.
ps Про точку и запятую - да, на конкретном компьютере не правильно были настроены региональные настройки. Но вопрос с кучей нулей остается
Коллега, вот всякое уже видел, но такого ни разу такого не наблюдал. А если обрезать проблемный файл-источник, чтобы оставить строку с косяком и выложить на форум? Не выходит? Выгрузки из какой информационной системы? У меня разного вида хвосты в основном наблюдаются в выгрузках из 1С. Проверьте ячейку на наличие невидимых символов.
PooHkrd, файл пример - это как раз обрезанный уже файл. И вот в нем уже не воспроизводится эта ошибка Исходники - это обычные Excel файлы, которые заполняют в ручную. Я уже взял проблемный код и полностью сам по нему заполнил данные - не помогло.
Ну, в таком случае могу предложить только добавлять в код шаг с округлением чисел в столбце до нужного количества знаков. Но до этого, думаю, вы и сами догадались.
Вобщем, покопался в файликах, если кому будет интересно ссылка на яндекс.диск В архиве три файла: исходный - "test_full.xlsx", файл "test_error.xlsx" - в нем используется подключение к исходному файлу как внешнему источнику и вот в нем при загрузке в PowerQuery десятичное число превращается в число с кучей нулей после запятой, файл "test_full_PQ.xlsx" - это исходный файл, в котором таблица на листе преобразована в умную таблицу и она в этом же файле загружается в PowerQuery - но здесь десятичное число нормально преобразуется. Т.е. проблема именно в загрузке данных из внешних файлов. Ищу решение проблемы на англомовных сайтах, но пока не наткнулся.
TheBestOfTheBest, да, видимо придется добавить несколько промежуточных шагов с преобразованиями, просто, если бы эти числа использовались в математических операциях - вопроса нет, округлить или отбросить ненужные нули не проблема, но эти числа далее используются в составной текстовой строке, соответственно числа, которые изначально целые должны попасть в эту строку без всяких знаков дроби (без точек, без запятых) и уж тем более без чисел в дроби, а те числа, которые изначально идут как дробные, должны быть отражены в строке как дробные и столько знаков после запятой сколько в исходном файле.
сразу после загрузки из файла test_full.xlsx видим вот такое
Это обычная история, связанная с тем, как некоторые десятичные числа хранятся в виде числа с плавающей точкой. Самое интересное, что если в исходном файле просто поменять формат ячеек на текстовый, в PQ длинное число подтянется прям сразу, в виде текста, так как при этом преобразование самого значения в строку не происходит. Если прокликать ячейку с "2,2" (то есть: поменять формат на текст, F2, Enter) то тогда число становится текстом, и всё остальное в том числе в PQ работает и видит нормально.
Можно макросом пробегаться по этому столбцу
Код
For each cell in Selection.Cells
cell.Value = CStr(cell.Value)
Next cell
и тогда он сохранится как текст с системным разделителем (при этом 2,2 станет "2,2"), и заменить потом в PQ запятые на точки.