Страницы: 1
RSS
Как в PQ считывать длинные числа? И не грузится первый столбец...
 
Есть выгрузка из программы биллинга отчетов в формате XLS (пример отчета 1053216.xls), из которых собирается единый реестр средствами PQ. С этими выгрузками такие проблемы:
1. В выгрузке есть столбец с 11-значным целым номером "№ накладной ИМ". При загрузке PQ считывает значения в формате "Е" и при этом делает округление - это ошибка, т.к. значение является номером а не числом (пример в Загрузка.xlsx)
2. PQ не хочет считывать первый столбец файла выгрузки "№ накладной", загружает данные начиная со второго столбца "№ накладной ИМ". (пример в Загрузка.xlsx) Почему так, как с этим бороться?

Файлы удалены: превышение допустимого размера вложения [МОДЕРАТОР]
 
По первому вопросу не согласен. смотрите картинку. Ничего PQ не округляет, а просто показывает вам значение ячейки вот в таком формате. Если что, то здесь описание типов со всеми ограничениями в Power Query
По второму вопросу это глюк загрузки PQ файлов формата .xls Первый столбец на листе он не видит. Тут ничем помочь нельзя меняйте формат выгрузки на текст или .xlsx Если уже выгруженных данных много, то конвертируйте их в xlsx или в текст. Тут тем с такими макросами валом.
Изменено: PooHkrd - 12.04.2018 16:00:22
Вот горшок пустой, он предмет простой...
 
По первому вопросу: если посмотреть внимательно, то в ячейке B2 выгрузки число 240024755966, а при PQ дает 240024755970
т.е. 66 округлилось до 70

Со вторым вопросом - чтение первого столбца - в самом деле MS PQ не может справиться с файлом MS XLS ???
 
Это как? Я вам на картинке прямо показал, что и в ячейке на листе и в ячейке редактора запросов хранится одно и то же число 240024755966. Смотрите внимательнее.
Некоторые виды xls - да. Это же только расширение файла, а спецификация данного стандарта менялась неоднократно за все прошедшие годы. Вот какие-то старые стандарты считываются так. Если вы возьмете ваш файл и пересохраните его с тем же расширением в Excel 2016, то после этого первый столбец будет нормально считываться.
Вот горшок пустой, он предмет простой...
 
как Вам удалось это?
у меня кодом
Код
let
    Источник = Excel.Workbook(File.Contents("C:\Users\Miniadmin\Documents\1053216.xls"), null, true),
    Worksheet1 = Источник{[Name="Worksheet"]}[Data]
in
    Worksheet1

вытягивает с округлением (((

По второму вопросу - в самом деле пересохранение файла помогает
 
Цитата
VladimirVSh написал:
как Вам удалось это?
А, ну я изначально сделал запрос не к файлу, а преобразовал данные в смарт таблицу и запрос уже к ней. Судя по всему PQ по разному считывает данные из таблиц и листов книги xls.
Сейчас поэкспериментировал, получаем вот что:
из xls считывает некорректно, неважно сохранен он в старом Экселе или в новом.
из смарт-таблицы и из xlsx считывает корректно.
Вывод конвертируйте всю вашу выгрузку в xlsx или в текст.
Вот горшок пустой, он предмет простой...
 
Видимо так и есть (((
Может кому пригодится - решил обе проблемы так: макросом открываются все файлы и:
1. формат 2го столбца: ТЕКСТ "000000000000"
2. строка заголовков: выравнивание по центу
закрываем с сохранением

после этого PQ нормально открывает 1й столбец, и числа во 2м столбце без округления
 
1. Почти 500 кБ вложения - многовато.
2. Код в сообщении следует оформлять с помощью кнопки <...>
3. Один вопрос - одна тема.

Обо всем этом - в правилах форума.
Страницы: 1
Наверх