一个公式解决横向录入数据转化为纵向数据的问题,公式为=LET(X,FILTER(C3:J10,C4:J4="入库数量"),VSTACK(M4:P4,HSTACK(TOCOL(IF(DROP(X,2)>0,A5:A10,1/0),3),TOCOL(IF(DROP(X,2)>0,B5:B10,1/0),3),TEXT(TOCOL(IF(DROP(X,2)>0,TAKE(X,1),1/0),3),"m月d日"),TOCOL(IF(DROP(X,2)>0,DROP(X,2),1/0),3))))。
公式分为三部分,第一部分是定义LET函数,因为在公式中会出现多个FILTER(C3:J10,C4:J4="入库数量")条件,这里将其定义为X,后面都用X代替;下图为FILTER(C3:J10,C4:J4="入库数量")的效果。
第二部分为横向拼接数据,即目录行与数据行的拼接,这里用VSTACK(M4:P4进行拼接;
TOCOL(IF(DROP(FILTER(C3:J10,C4:J4="入库数量"),2)>0,A5:A10,1/0),3)的效果
第三部分就是利用HSTACK函数进行数据组的拼接,通过TOCOL和DROP进行数据转化即可。
评论 (0)