Страницы: 1
RSS
Power Query 2016. Как заставить воспринимать столбец как текст?, Excel упорно воспринимает столбец как содержащий числа, все текстовые значения в столбце помечает как Ошибка и удаляет значения
 
Здравствуйте, знатоки Excel!

Никак не могу победить PowerQuery.
Есть много таблиц в файлах, я их подгружаю все вместе через PowerQuery.
Есть один столбец "№ заявки", в котором в большинстве строк стоят числа. Но попадаются и текстовые значения и это так и должно быть.
PowerQuery на текстовых значениях пишет "Error" и пропускает значение ячейки, хотя я ему явно указал, что надо воспринимать значение как текст.
Пробовал во всех исходных файлах столбец "№ заявки" принудительно указать как текст, но это не помогает.
На скриншоте все видно



Почему он упорно пытается преобразовать все значения в число? Ведь я его не просил и даже наоборот, пытаюсь настаивать на том, что это текст. Но нет...
Как убедить эту излишне умную штуку?
Изменено: mvu_2000 - 03.08.2018 15:49:46
 
Выложите файл без данных, но со всеми запросами, которые используются.
Подозреваю, что у вас срабатывает автотипизация столбцов в функции, которой вы обращаетесь к листам конкретных файлов. Если там это дело убрать, то все должно заработать.
Вот горшок пустой, он предмет простой...
 
А если вообще убрать шаг преобразования типов и потом добавить, изменив типы только для нужных данных?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Так можно же при объявлении источника данных отменить автообнаружение типов данных и тогда все столбцы загрузятся с текстовым типом данных. А потом изменить тип данных там, где это требуется.

p.s.:  повторил то, что уже было написано( прошу прощения!
Изменено: ADimov - 03.08.2018 16:10:10
 
Вы чертовски правы!

У меня в функции загрузки данных из файлов было написано это:
Код
(filepath)=>
let
    Источник = Excel.Workbook(File.Contents(filepath), null, true),
    Лист1_Sheet = Источник{[Item="Лист1",Kind="Sheet"]}[Data],
    #"Повышенные заголовки" = Table.PromoteHeaders(Лист1_Sheet),
    #"Измененный тип" = Table.TransformColumnTypes(#"Повышенные заголовки",{{"ФИО", type text}, {"Дата", type date}, {"№ заявки", Int64.Type}, {"Источник", type text}, {"Статус", type text}, {"Комментарий", type text}})
in
    #"Измененный тип"
Огромное спасибо за то, что тыкнули носом!

А если еще вопросы есть (с этим же отчетом, но по другой теме) - лучше в этой же теме спросить, или новую открыть?
Изменено: mvu_2000 - 03.08.2018 16:39:08
 
В отдельной.
И исправьте свое предыдущее сообщение. Код по правилам форума должен быть выделен тегом CODE, это делается при помощи кнопки <..> на панели редактирования сообщения.
Вот горшок пустой, он предмет простой...
 
Исправил.
Спасибо!
Страницы: 1
Наверх