top of page

[M code] Tách mẫu số lượng không trong điều kiện không đồng nhất đơn vị tính

Một câu hỏi trên diễn đàn GPE của một bạn như hình bên dưới

ree

Giải bằng Excel khá đơn giản với hàm như sau:

=LOOKUP(10^6,--RIGHT(SUBSTITUTE(TRIM(LEFT(D7,SEARCH({"gsm","g/m"},D7)-1))," ",REPT(" ",20)),20))

Nếu giải bằng Power Query thì như sau:

let
    Source = Excel.CurrentWorkbook(){[Name="GetNumbertbl"]}[Content],
    LowercasedText = Table.TransformColumns(Source,{{"Items", Text.Lower, type text}}),
    Lookup = Table.AddColumn(LowercasedText,"Lookup",
(x)=>
List.Transform(StringFind,each Text.PositionOf(x[Items],_,Occurrence.All))
),
    ExpandedLookup = Table.ExpandListColumn(Table.ExpandListColumn(Lookup, "Lookup"),"Lookup"),
    removeNull = Table.SelectRows(ExpandedLookup, each ([Lookup] <> null)),
    getPosition = Table.AddColumn(removeNull, "Result", each 
let 
getText = Text.Start([Items],[Lookup]),
trimText = Text.Trim(getText),
insrBlank = Text.Replace(trimText," ","                     "),
getNumber = Text.End(insrBlank,10)
in getNumber
),
    ChangedType = Table.TransformColumnTypes(getPosition,{{"Result", type number}}),
    RemovedColumns = Table.RemoveColumns(ChangedType,{"Lookup"})
in
    RemovedColumns

Stringfind là list cần tìm: "gsm", "g/m2"

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