一个公式解决横向录入数据转化为纵向数据的问题,公式为=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))))。

excel中横向录入数据转化为纵向数据公式的推演过程-趣帮office教程网

公式分为三部分,第一部分是定义LET函数,因为在公式中会出现多个FILTER(C3:J10,C4:J4="入库数量")条件,这里将其定义为X,后面都用X代替;下图为FILTER(C3:J10,C4:J4="入库数量")的效果。

excel中横向录入数据转化为纵向数据公式的推演过程-趣帮office教程网

第二部分为横向拼接数据,即目录行与数据行的拼接,这里用VSTACK(M4:P4进行拼接;

TOCOL(IF(DROP(FILTER(C3:J10,C4:J4="入库数量"),2)>0,A5:A10,1/0),3)的效果

excel中横向录入数据转化为纵向数据公式的推演过程-趣帮office教程网

第三部分就是利用HSTACK函数进行数据组的拼接,通过TOCOL和DROP进行数据转化即可。

excel中横向录入数据转化为纵向数据公式的推演过程-趣帮office教程网