Я хочу удалить последний символ столбца, K
и M
. Чтобы я мог добавить еще один столбец, чтобы если последний символ был M
, то число x 1000000, иначе число x 100000. Что я могу сделать?
На снимке экрана ниже показан шаг, который уже был применен к таблице:
Вы имеете в виду делать в excel правильно? Есть ли какой-либо другой метод, который позволяет мне сделать это в power query?
да (потому что я вижу там тег excel
). извините, у меня нет доступа к Power Query. Не уверен, что это поможет: support.microsoft.com/en-us/office/…
С М-кодом под следующей таблицей ввода
расширяется до этого
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 Я добавил скриншот, показывающий, как вы можете добавить соответствующий код в качестве пользовательского столбца. Кроме того, я заметил, что вы разместили свой MCode в виде снимка экрана, поэтому я сделал то же самое с кодом пользовательского столбца. Вы предпочитаете это тексту?
Будет ли r-щелчок (на входе), форматирование ячеек, число > Пользовательский: 0 сделать свое дело?