Как удалить последний символ в столбце в power query excel?

Я хочу удалить последний символ столбца, K и M. Чтобы я мог добавить еще один столбец, чтобы если последний символ был M, то число x 1000000, иначе число x 100000. Что я могу сделать?

На снимке экрана ниже показан шаг, который уже был применен к таблице:

Будет ли r-щелчок (на входе), форматирование ячеек, число > Пользовательский: 0 сделать свое дело?

p._phidot_ 26.12.2020 13:37

Вы имеете в виду делать в excel правильно? Есть ли какой-либо другой метод, который позволяет мне сделать это в power query?

Elvis 26.12.2020 13:56

да (потому что я вижу там тег excel). извините, у меня нет доступа к Power Query. Не уверен, что это поможет: support.microsoft.com/en-us/office/…

p._phidot_ 26.12.2020 14:01
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
3
6 314
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

С М-кодом под следующей таблицей ввода

расширяется до этого

let
    Source = Excel.CurrentWorkbook(){[Name = "Table2"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Avg", type text}}),
    #"Inserted First Characters" = Table.AddColumn(#"Changed Type", "Last Character", each Text.End([Avg], 1), type text),
    #"Added Custom" = Table.AddColumn(#"Inserted First Characters", "Start", each Text.Start([Avg], Text.Length([Avg])-1))
in
    #"Added Custom"
Ответ принят как подходящий

Чтобы просто удалить последний символ, вы можете использовать Text.RemoveRange:

let
    Source = Excel.CurrentWorkbook(){[Name = "Table14"]}[Content],
    #"Added Custom" = Table.AddColumn(Source, "Custom", each Text.RemoveRange([Query],Text.Length([Query])-1))
in
    #"Added Custom"

Чтобы преобразовать строки, оканчивающиеся на K или M, в их действительные числа, вы можете сделать вещи немного сложнее: (Обратите внимание, что я предположил, что K=1000 и M=1000000 непротиворечивы; в других системах есть M=1000 и MM=1000000. Я не знаю системы, в которой K=100000 но вы можете легко отредактировать код, если вам нужно)

let
    Source = Excel.CurrentWorkbook(){[Name = "Table14"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Query", type text}}),
 
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each 
        let 
            x = Text.End([Query],1),
            y = Number.From(Text.RemoveRange([Query],Text.Length([Query])-1)),
            result =    if x = "K" then y * 1000 
                   else if x = "M" then  y * 1000000

/*Note that code assumes that if string doesn't end with K or M
  it is a number. You may want to test specifically for that to avoid errors*/
  
                   else Number.From([Query])
        in 
            result, type number)
in
    #"Added Custom"

Если у вас возникли проблемы с вводом кода, вы можете добавить его в качестве пользовательского столбца к существующему коду. Обязательно измените идентификатор столбца в коде на любое имя столбца в вашем коде, который ссылается на отображаемую вами таблицу. Возможно [Query.Avg Volume]

например:

Привет Рон Розенфельд, спасибо за ваш ответ и усилия. Я совершенно новичок в М-коде. Я не уверен, куда добавить код в расширенном редакторе, так как внутри уже есть несколько строк кода. Я отредактировал свой вопрос вместе с кодом, который уже существует в предварительном редакторе, надеюсь на вашу помощь, спасибо!

Elvis 27.12.2020 17:07

@Elvis Я добавил скриншот, показывающий, как вы можете добавить соответствующий код в качестве пользовательского столбца. Кроме того, я заметил, что вы разместили свой MCode в виде снимка экрана, поэтому я сделал то же самое с кодом пользовательского столбца. Вы предпочитаете это тексту?

Ron Rosenfeld 27.12.2020 17:37

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