top of page

[M code] Tách chuỗi thông tin cá nhân

Vừa rồi một bạn có hỏi Ad cách tách một chuỗi như hình và kết quả bên dưới:

ree

Chuỗi bên trên có một đặc điểm chung là các thông tin cần tách đều bắt đầu bằng các thông tin: “SĐT:” , “mail”, “Tên”. Đây là cơ sở để ta dùng một số hàm trong M code để tách thông tin cần sử dụng.


Cách 1: Làm manual từng trường hợp

let
    Source = Excel.CurrentWorkbook(){[Name="Stringtbl"]}[Content],
    SliptbySpace = Table.AddColumn(Source, "SliptbySpace", each Splitter.SplitTextByDelimiter(",")([Items])),
    SelectName = Table.AddColumn(SliptbySpace, "Name", each [
        selectPhone = List.FindText([SliptbySpace],"Tên:"),
        removeName = List.ReplaceValue(selectPhone,"Tên: ","",Replacer.ReplaceText),
        combine = Text.Combine(removeName,", ")][combine]
    ),
    SelectPhone = Table.AddColumn(SelectName, "Phone", each [
        selectPhone = List.FindText([SliptbySpace],"SĐT"),
        removeSDT = List.ReplaceValue(selectPhone," SĐT:","",Replacer.ReplaceText),
        removeSpace = List.RemoveMatchingItems(removeSDT,{" "}),
        combine = Text.Combine(removeSpace,",")][combine]
    ),
    SelectMail = Table.AddColumn(SelectPhone, "Email", each [
        selectMail = List.FindText([SliptbySpace],"mail:"),
        removeMail = List.ReplaceValue(selectMail,"mail:","",Replacer.ReplaceText),
        removeSpace = List.RemoveMatchingItems(removeMail,{" "}),
        combine = Text.Combine(removeSpace,",")][combine]
    ),
    selectCols = Table.SelectColumns(SelectMail,{"Name", "Phone", "Email"})
in
    selectCols

Cách 2: Làm tự động dựa vào thông tin đưa vào (Bôi màu đỏ)

let
    Source = Excel.CurrentWorkbook(){[Name="Stringtbl"]}[Content],
    SliptbySpace = Table.AddColumn(Source, "SliptbySpace", each Splitter.SplitTextByDelimiter(",")([Items])),
    Result = List.Accumulate(
    {" SĐT:","mail:","Tên:"},
    SliptbySpace,
    (s,c)=> Table.AddColumn(s,c, each [
        selectPhone = List.FindText([SliptbySpace],c),
        removeLetter = List.ReplaceValue(selectPhone,c,"",Replacer.ReplaceText),
        removeSpace = List.RemoveMatchingItems(removeLetter,{" "}),
        combine = Text.Combine(removeSpace,",")][combine])
    ),
    SelectCols = Table.SelectColumns(Result,{" SĐT:", "mail:", "Tên:"})
in
    SelectCols

Comments


VR Goggles

Practice makes perfect

Sign up for our newsletter

Thanks for subscribing!

Contact Us

Thu Duc, HCM city

  • Slack
  • Twitter
  • Linkedin
  • Facebook

© 2023 by Finclvr. Powered and secured by Microsoft

bottom of page