Tách dữ liệu trong từng dòng được ngăn cách bởi ", " ra các cột. Và sắp xếp dựa vào số trong ngoặc đơn, số lớn sẽ đứng đầu tiên.
Note: Với Office365 thì công việc này khá dễ dàng. Mình sẽ cung cấp cách dùng hàm cho Office thấp, giúp bạn dễ dàng xử lý.
Link: Onedrive
![]() |
| Tách dữ liệu và sắp xếp |
Công thức:
1.C2:G7=IFERROR(TRIM(RIGHT(SUBSTITUTE(LEFT($A2,MOD(AGGREGATE(14,6,ROW($1:$10001)*100+LEN(ROW($1:$10001))+1+FIND("("&ROW($1:$10001)&")",$A2),COLUMN(A1)),100)),",",REPT(" ",100)),100)),"")
2.=IFERROR(TRIM(MID(SUBSTITUTE($A2,",",REPT(" ",99)),RIGHT(LARGE(IFERROR(MID(SUBSTITUTE(SUBSTITUTE($A2,"(",")"),")",REPT(" ",99)),ROW($1:$9)*200-99,99)/1%+ROW($1:$9),),COLUMN(A1)))*99-98,99)),"")
3.=IFERROR(INDEX(TRIM(MID(SUBSTITUTE($A2,",",REPT(" ",50)),(ROW($1:$21)-1 )*50+1,50)),MATCH("*("&AGGREGATE(14,6,-("("&TRIM(MID(SUBSTITUTE(SUBSTITUTE($A2,"(",","),",",REPT(" ",50)),ROW($1:$21)*50+1,50))),COLUMN(A:A))&"*)",TRIM(MID(SUBSTITUTE($A2,",",REPT(" ",50)),( ROW($1:$21)-1)*50+1,50)),0)),"")
4.=IFERROR(TRIM(RIGHT(SUBSTITUTE(REPLACE($A2,FIND(",",$A2&",",FIND("("&AGGREGATE(14,6,--MID(SUBSTITUTE(SUBSTITUTE($A2,"(",")"),")",REPT(" ",99)),((ROW($1:$18)-1)*2+1)*99,99),COLUMN(A1))&")",$A2)),LEN($A2),""),",",REPT(" ",99)),99)),"")
5.=REDUCE(C1:G1,A2:A7,LAMBDA(x,v,IFNA(VSTACK(x,LET(a,TEXTSPLIT(v,", "),SORTBY(a,-REGEXEXTRACT(a,"\d+")))),"")))
6.Python (Xem trong file)
