Hàm tách dữ liệu ra nhiều cột

  • Thread starter Thread starter jusend
  • Ngày gửi Ngày gửi
Liên hệ QC
Tôi tuân thủ nội quy khi đăng bài

jusend

Thành viên mới
Tham gia
2/5/08
Bài viết
16
Được thích
0
Em cần tách dữ liệu từ 1 cột ra nhiều cột. Em đã thử hàm mid và search nhưng được cái này thì không được cái kia.

Em đính kèm file ví dụ nhờ các chuyên gia chỉ giáo với.

Xin đa tạ!
 

File đính kèm

Bạn sử dụng chức năng Text to columns hoặc Flash Fill nhé
 
Em cần tách dữ liệu từ 1 cột ra nhiều cột. Em đã thử hàm mid và search nhưng được cái này thì không được cái kia.

Em đính kèm file ví dụ nhờ các chuyên gia chỉ giáo với.

Xin đa tạ!
1732716844698.png
Hình như chỉ tách thành 4 cột, dù thấy phần cuối vẫn còn dấu cách cũng bỏ qua hay sao á bạn. Này Office 365 nhé, hoặc Filterxml với bản thấp hơn chút.
=REDUCE("Col "&COLUMN(A1:D1), A3:A7, LAMBDA(u,k,VSTACK(u,HSTACK(TEXTSPLIT(TEXTBEFORE(k," ",3)," "),TEXTAFTER(k," ",3)))))
=TRANSPOSE(FILTERXML("<u><k>"&SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3," ","</k><k>",1)," ","</k><k>",1)," ","</k><k>",1)&"</k></u>","//k"))
 
Em cần tách dữ liệu từ 1 cột ra nhiều cột. Em đã thử hàm mid và search nhưng được cái này thì không được cái kia.

Em đính kèm file ví dụ nhờ các chuyên gia chỉ giáo với.

Xin đa tạ!
Công thức không được hay lắm nhưng khá đơn giản.
PHP:
=TEXTSPLIT([CODE]SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3," ","|",1)," ","|",1)," ","|",1),"|")

Giải thích:
Mã:
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3," ","|",1)," ","|",1)," ","|",1)
3 lần thay thế để biến đổi 3 ký tự " " đầu tiên trong chuỗi ban đầu thành ký tự "|"

TextSplit sau đó thì đơn giản rồi.

Tất nhiên chỉ áp dụng khi máy bạn cài Excel Office 365 hoặc Excel 2021 hỗ trợ hàm TEXTSPLIT
 
Lần chỉnh sửa cuối:
Công thức không được hay lắm nhưng khá đơn giản.
PHP:
=TEXTSPLIT([CODE]SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3," ","|",1)," ","|",1)," ","|",1),"|")

Giải thích:
Mã:
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3," ","|",1)," ","|",1)," ","|",1)
3 lần thay thế để biến đổi 3 ký tự " " đầu tiên trong chuỗi ban đầu thành ký tự "|"

TextSplit sau đó thì đơn giản rồi.

Tất nhiên chỉ áp dụng khi máy bạn cài Excel Office 365 hoặc Excel 2021 hỗ trợ hàm TEXTSPLIT
Em dán hàm của bác vào ô B3 thì bị lỗi #NAME? à bác.

1732780683074.png
 
Xin lỗi chủ thớt cho xí một # để lưu mã M code cho sau này dễ tìm...
Mã:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    ListFour = Table.AddColumn(Source, "Custom", each Splitter.SplitTextByPositions(List.Transform({0} & List.FirstN(Text.PositionOfAny([TEXT],{" "},Occurrence.All),3), each Number.From(_)))([TEXT])),
    Combine = Table.TransformColumns(ListFour, {"Custom", each Text.Combine(List.Transform(_, Text.From), ";"), type text}),
    SplitColumn = Table.SplitColumn(Combine, "Custom", Splitter.SplitTextByDelimiter(";", QuoteStyle.Csv), {"Custom.1", "Custom.2", "Custom.3", "Custom.4"}),
    RemoveColumn = Table.RemoveColumns(SplitColumn,{"TEXT"})
in
    RemoveColumn
 

File đính kèm

  • Untitled.png
    Untitled.png
    71.2 KB · Đọc: 9
Col 1: =TRIM(LEFT(A3,SEARCH(" ",A3)))
Col 2 :=MID(A3,LEN(B3)+1,SEARCH(" ",A3,LEN(B3)+2)-LEN(B3))
Col 3:=MID(A3,LEN(B3)+LEN(C3)+1,SEARCH(" ",A3,LEN(B3)+LEN(C3)+2)-(LEN(B3)+LEN(C3)))
Col 4:=RIGHT(A3,LEN(A3)-LEN(CONCAT(B3,C3,D3)))
Bạn Copy vô từng cột là đc, này mình chưa tối ưu công thức nhưng chạy đc
 
để lưu mã M code cho sau này dễ tìm...
Tách ra nhiều cột ... và merge các cột phía sau lại ...
Mã:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    TachRa = Table.SplitColumn(Source, "TEXT", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"TEXT.1", "TEXT.2", "TEXT.3", "TEXT.4", "TEXT.5", "TEXT.6", "TEXT.7"}),
    HopVao = Table.CombineColumns(TachRa,{"TEXT.4", "TEXT.5", "TEXT.6", "TEXT.7"},Combiner.CombineTextByDelimiter(" ", QuoteStyle.None),"Merged")
in
   HopVao
 
Web KT

Bài viết mới nhất

Back
Top Bottom