Bagaimana cara menghapus karakter terakhir pada kolom di power query excel?

masukkan deskripsi gambar di sini

Halo semua,

Saya ingin menghapus karakter terakhir kolom, K dan M. Sehingga saya bisa menambahkan kolom lain sehingga jika karakter terakhirnya adalah M maka angka x 1000000 lagi angka x 100000. Tolong beri saya saran apa yang bisa saya lakukan, terima kasih.

Tangkapan layar di bawah ini adalah langkah yang sudah diterapkan pada Tabel. masukkan deskripsi gambar di sini


person Elvis    schedule 26.12.2020    source sumber
comment
Akankah klik-r (pada input), memformat sel, Number › Custom : 0 berhasil?   -  person p._phidot_    schedule 26.12.2020
comment
Maksudmu mengerjakannya di excel kan? Apakah ada metode lain yang memungkinkan saya melakukannya di power query?   -  person Elvis    schedule 26.12.2020
comment
ya (karena saya melihat tag excel di sana). maaf, saya tidak memiliki akses ke Power Query. Saya tidak yakin apakah ini akan membantu: support.microsoft.com/en-us/office/   -  person p._phidot_    schedule 26.12.2020


Jawaban (2)


Untuk menghapus karakter terakhir Anda dapat menggunakan 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"

masukkan deskripsi gambar di sini

Untuk mengonversi string yang diakhiri dengan K atau M menjadi bilangan realnya, Anda dapat melakukan hal-hal yang sedikit lebih rumit: (Perhatikan bahwa saya berasumsi K=1000 dan M=1000000 konsisten; sistem lain memiliki M=1000 dan MM=1000000. Saya tidak mengetahui adanya a sistem di mana K=100000 tetapi Anda dapat dengan mudah mengedit kode jika perlu)

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"

Jika Anda kesulitan memasukkan kode, Anda dapat menambahkannya sebagai kolom khusus ke kode yang sudah ada. Pastikan untuk mengubah pengidentifikasi kolom dalam kode menjadi nama kolom apa pun dalam kode Anda yang merujuk pada tabel yang Anda tampilkan. Mungkin [Query.Avg Volume]

eg:

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

person Ron Rosenfeld    schedule 26.12.2020
comment
Hai Ron Rosenfeld, terima kasih atas balasan dan upaya Anda. Saya cukup baru dalam kode M. Saya tidak yakin di mana harus menambahkan kode di editor lanjutan karena sudah ada beberapa baris kode di dalamnya. Saya mengedit pertanyaan saya bersama dengan kode yang sudah ada di editor sebelumnya, berharap mendapat bantuan Anda, terima kasih! - person Elvis; 27.12.2020
comment
@Elvis Saya telah menambahkan tangkapan layar yang menunjukkan bagaimana Anda dapat menambahkan kode yang relevan sebagai kolom khusus. Selain itu, saya perhatikan Anda memposting MCode Anda sebagai tangkapan layar, jadi saya melakukan hal yang sama dengan kode kolom khusus. Apakah Anda lebih suka itu daripada mengirim pesan teks? - person Ron Rosenfeld; 27.12.2020
comment
Terima kasih Ron, ini bekerja dengan sempurna untuk saya! - person Elvis; 29.12.2020

Dengan M-Code di bawah tabel input berikut

masukkan deskripsi gambar di sini

diperluas menjadi ini

masukkan deskripsi gambar di sini

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"
person Storax    schedule 26.12.2020