Извлечь десятичные числа из списка в Power Query

Я пытаюсь извлечь десятичные числа из строки. У меня есть рабочее решение, но я думаю, что это можно сделать лучше,


Следующий M-код делает работу,

let
    Source = Excel.CurrentWorkbook(){[Name = "Table21"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each List.FindText(Text.Split([Column1]," "),".")),
    #"Expanded Custom" = Table.ExpandListColumn(#"Added Custom", "Custom"),
    #"Changed Type1" = Table.TransformColumnTypes(#"Expanded Custom",{{"Custom", type number}}),
    #"Removed Errors" = Table.RemoveRowsWithErrors(#"Changed Type1", {"Custom"})
in
    #"Removed Errors"

Но я хочу извлечь десятичные числа из списка


Что я должен добавить перед

List.FindText(Text.Split([Column1]," "),".")

Чтобы извлечь только десятичные числа.


Столбец1 Ожидаемый результат 100298 - 6000.2581 NG Миграция и демонтаж Добавить 6000.2581 101536 - 6000.2578 NG Миграция и демонтаж CS 6 6000.2578 101944 - 6000.2578 NG Миграция и демонтаж CS 6 6000.2578 102209 - 6000.2578 NG Миграция и демонтаж CS 6 6000.2578 102856 - 6000.2581 NG Миграция и демонтаж Добавить 6000.2581 8000.8500 - автомобильный автобус бичтитр 8000.8500 8000.7072 ertefg gfhfjfgj fghfgh 8000.7072 8000.7075 fghgfhg gfhhgjjses 8000.7075 8000.7076 rtretretre ter gdb v dffbdtbt 8000.7076 8000.7077 wqe рет gfn vbogf 8000.7077 8000.8181 gfhg (за лицензию для UL900) 8000.8181 8000.8254 Лицензии Mgfhghhode 8000.8254 8000.8254 Лицензии на несколько мгфхггодов 8000.8254 gfhg (за лицензию для UL900) 8000.8181 8000.8181 gfhg (за лицензию для UL900) 8000.8181 8000.8181

Что ты имеешь в виду? Вы уже извлекаете только десятичные числа с помощью кода, который у вас есть.

David Bacci 23.11.2022 21:34

Я хочу извлечь десятичные числа, такие как 8000.8181, 8000.8254 и т.д.

Mayukh Bhattacharya 23.11.2022 21:43

Но ваш код уже делает это?

David Bacci 23.11.2022 21:43

Да, но мне нужно расширить список, а затем изменить тип данных на десятичный, затем я должен удалить ошибку, чтобы показать ожидаемый результат, поэтому я подумал, что может быть лучший способ сделать это.

Mayukh Bhattacharya 23.11.2022 21:46

@DavidBacci есть ли какой-нибудь M-Code, который может вытащить отсюда десятичные дроби List.FindText(Text.Split([Column1]," "),".") или я думаю, что это неправильно?

Mayukh Bhattacharya 23.11.2022 21:53

Я понимаю. Я добавлю ответ.

David Bacci 23.11.2022 21:54
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
1
6
115
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("nc9PS8MwGMfxt/JjJwU30tik6VEUvGxexNPcYWn+NKVrNU0n+upNN3QrIkohp/D5Js+zXs8SQmguMAcnhCwoEwke7rFy1m+Daxs89xFw3Llut21C7RqLG6Vmm6shTdg1P6WZ+DO9fQT/avM0ndpSSvLJrWB80rpiKAQjJNbF1kP2HaQrPsJ78CeQkYxC+6CNhTWlqYytYGwZzwix4TKCgyptVXW6GwEOH7w+HgTtYZXEHsoYqYIMI5vh7VUj0vhYg71srTkbOYlLDj9dvMRXalcsYFqPp2VOyOUZoyzFanBl2SqNpSt0MxrqKPo6uPnu4OwP99s3+J7k32zzCQ= = ", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}}),

    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each   List.RemoveItems ( List.Transform( List.FindText(Text.Split([Column1]," "),"."), each Text.Select(_, {"0".."9", "."})) , {"."}){0}, type number )
in
    #"Added Custom"

Другие вопросы по теме