Dữ liệu doanh thu của các công ty trong các năm. Liệt kê các công ty có mức độ tăng trưởng dương hàng năm, và tốc độ tăng trưởng trung bình.
Link: Onedrive
![]() |
| Liệt kê công ty có tăng trưởng dương hàng năm |
Công thức:
1.=LET(c,B2:B21,s,C2:C21,DROP(REDUCE(0,UNIQUE(c),LAMBDA(a,v,LET(y,DROP(FILTER(DROP(s,1)/s/(c=DROP(c,1)),c=v),-1)-1,IF(AND(y>0),VSTACK(a,HSTACK(v,AVERAGE(y))),a)))),1))
2.=LET(a,A2:A21,b,B2:B21,c,C2:C21,d,IF(a<>2021,c/OFFSET(c,-1,0)-1,0),e,UNIQUE(b),f,BYROW(e,LAMBDA(x,SUM((--(d>0)*(b=x))))),g,BYROW(e,LAMBDA(y,SUM(FILTER(d,b=y)/3))),FILTER(HSTACK(e,g),f=3))
3.=LET(a,WRAPROWS(C2:C21,4),b,BYROW(DROP(a,,1)/DROP(a,,-1)-1,LAMBDA(x,IF(MIN(x)>0,AVERAGE(x)))),FILTER(HSTACK(UNIQUE(B2:B21),b),b))
4.=LET(b,B2:B21,u,UNIQUE(b),m,MAP(u,LAMBDA(v,LET(d,FILTER(C2:C21,b=v),e,DROP(DROP(d,1)/d,-1),AND(e>1)*AVERAGE(e-1)))),FILTER(HSTACK(u,m),m))
5.=LET(b,B2:B21,c,UNIQUE(b),d,MAP(c,LAMBDA(x,LET(a,FILTER(C2:C21,b=x),b,DROP(a,1)/DROP(a,-1)-1,IF(AND(b>0),AVERAGE(b),)))),FILTER(HSTACK(c,d),d))
6.Python
(xl("A1:C21",1).groupby('Company')['Sales'].apply(pd.Series.pct_change).groupby(level=0)
.agg(Percent='mean', ok=lambda s: s.dropna().gt(0).all())
.query('ok').reset_index()[['Company','Percent']])
