Dạng bài tách dữ liệu theo yêu cầu, giúp bạn tư duy hàm rất tốt (hướng dẫn có Office thấp và 365).
Link: Onedrive
![]() |
| Tách chuỗi kí tự theo điều kiện |
Công thức:
1.=LET(a,MAP(A2:A9,LAMBDA(x,REDUCE(x,{1,-1},LAMBDA(y,z,SUBSTITUTE(y,TAKE(TEXTSPLIT(x,VSTACK(CHAR(ROW($65:$90)),"-")),,z),""))))),REPLACE(a,LEN(a),1,SUBSTITUTE(RIGHT(a),"-","")))
2.=MAP(A2:A9,LAMBDA(a,LET(seq,SEQUENCE(LEN(a)),c,--ISERROR(--MID(a,seq,1)),s,MATCH(1,c,0),e,AGGREGATE(14,6,MATCH(seq,seq/c,0),1),t,MID(a,s,e-s+1),LEFT(t,LEN(t)-(RIGHT(t)="-")))))
3.=LET(a,A2:A9,G,REGEXEXTRACT,F,TEXTAFTER,b,F(a,G(a,"\d+")),TEXTBEFORE(b,"-",-1)&IFNA("-"&G(F(b,"-",-1),"\D+"),""))
4.=LET(a,A2:A9,b,VSTACK(CHAR(ROW(65:90)),"-"),c,TEXTBEFORE(TEXTAFTER(a,b,1),b,-1),d,MID(a,FIND(c,a)-1,LEN(c)+2),LEFT(d,LEN(d)-(RIGHT(d)="-")))
5.=MID(LEFT(A2,MATCH(TRUE,ISNUMBER(--MID(A2,ROW($1:$100),100)),0)-1),MATCH(10^15,--MID(0&A2,1,ROW($1:$100))),100)
6.=MID(MID(A2,1,LOOKUP(6^9,1/((CODE(MID($A2,ROW($2:$100),1))=45)+(CODE(MID($A2,ROW($1:$100),1))>60)),ROW($1:$100))),MATCH(TRUE,CODE(MID($A2,ROW($1:$100),1))>60,0),6^9)
