Dữ liệu là thời gian làm việc của nhân viên. Tính số tháng làm việc của nhân viên tương ứng theo vùng mốc thời gian G1:L1.
Link: Onedrive
![]() |
| Tính số tháng làm việc trong từng mốc thời gian |
Công thức:
1.G2:L11=SUMPRODUCT(N(MATCH(EDATE($C2,ROW(INDIRECT("1:"&DATEDIF($C2,$D2,"M")+1))-1),IFERROR(--(1&"/"&LEFT($F$1:$L$1,7)),""))=COLUMN(B1)))
2.=HSTACK(B1:B11,REDUCE(G1:L1,D2:D11,LAMBDA(x,v,IFERROR(VSTACK(x,MAP(G1:L1,LAMBDA(s,LET(a,SEQUENCE(v-@+C11:v+1,,@+C11:v),ROWS(UNIQUE(TEXT(FILTER(a,(a<=IFERROR(--("1/"&TEXTAFTER(s,"- ")),TODAY())*(a>=--("1/"&TEXTBEFORE(s,"- "))))),"m/e"))))))),""))))
3.=HSTACK(B1:B11,REDUCE(G1:L1,D2:D11,LAMBDA(x,v,VSTACK(x,LET(a,SEQUENCE(v-@+C11:v+1,,v,-1),b,G1:L1,IFNA(VLOOKUP(b,GROUPBY(LOOKUP(a,--("1/"&TEXTSPLIT(b," ")),b),TEXT(a,"m/e"),LAMBDA(s,ROWS(UNIQUE(s))),,0),2,),""))))))
4.=HSTACK(B1:B11,REDUCE(G1:L1,D2:D11,LAMBDA(x,v,VSTACK(x,TOROW(DROP(FREQUENCY(--UNIQUE(TEXT(SEQUENCE(v-@+C11:v+1,,@+C11:v),"m/e")),TEXTBEFORE(G1:L1," ")-1),1))))))
