Power Query - замена текста в новом столбце - PullRequest
0 голосов
/ 12 декабря 2018

Я новичок в Power Query в Excel, и мой вопрос:

У меня есть текстовый столбец с датой в этом формате "09-Feb-17 A".Чтобы удалить текст «А» и заполнить информацию о дате в новом столбце (настраиваемый столбец?), Я использовал этот код:

= Table.AddColumn(#"Changed Type", "Start Date", each Replacer.ReplaceText([Start], " A",""))

Проблема в Некоторые датыв правильном формате, т.е. без "A".Для этих дат я получаю сообщение об ошибке:

Expression.Error: Мы не можем преобразовать значение #date (2019, 1, 11) в тип Text.Подробности: Значение = 11/01/2019 Тип = Тип

Есть ли способ решить эту проблему в запросе мощности?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Вы можете использовать try otherwise для работы с обоими типами данных:

= Table.AddColumn(#"Changed Type", "Start Date", each try Date.FromText(Replacer.ReplaceText([Start], " A","")) otherwise DateTime.Date([Start]), type date)

Или с этим, который будет извлекать дату перед первым пробелом, независимо от того, какой (или сколько) символовследовать:

= Table.AddColumn(#"Changed Type", "Start Date", each try Date.FromText(Text.BeforeDelimiter([Start], " ")) otherwise DateTime.Date([Start]), type date)
0 голосов
/ 12 декабря 2018

Возможно

  • Изменить столбец Тип данных на Text (даты -> дата и время)
  • Извлечь часть строки до space
  • Необязательно Изменить столбец Тип данных на Date

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Dates", type text}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each Text.BeforeDelimiter([Dates]," ")),
    #"Changed Type1" = Table.TransformColumnTypes(#"Added Custom",{{"Custom", type date}}),
    #"Removed Columns" = Table.RemoveColumns(#"Changed Type1",{"Dates"})
in
    #"Removed Columns"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...