1、如下图,是小王收到的一份外出学习名单,名单姓名是多列数据,现在想要把它转换成一列排列,而且要录入时要先列后行。就像图片右边的数据那样
2、小王在F2单元格输入公式=IFERROR(INDEX($A$2:$D$10,MOD(ROW(A1)-1,9)+1,INT(((ROW(A1)-1)/9))+1)&"",""),并下拉填充直至出现空白单元格为止。
3、上面演示的是数据是一个4列9行数据区域,可如果数据是下图这样又该怎么处理呢?
4、只需要将F2中的公式改为=IFERROR(INDEX($A$2:$E$11,MOD(ROW(A1)-1,10)+1,INT(((ROW(A1)-1)/10))+1)&"","")即可
5、下面跟大家简单分析一下这个公式,首先是INDEX函数,INDEX函数是返回表或区域中的值或值的引用。
6、为了方便大家理解我们实际演示一下,比如我现在想要引用A列数据内容,在单元格输入=INDEX(A:A,ROW(A1))下拉即可
7、理解了INDEX函数,如果我们想要将文中5列10行数据排成一列,那么我们的行号就应该是1,2,3,……10,1,2,3……10这种序列。列号就是十个一,十个二,这种序列,公式中MOD(ROW(A1)-1,10)+1的作用就是生成这种行序列。如下图输入=MOD(ROW(A1)-1,3)+1,即可生成1,23,1,23这种序列
8、INT(((ROW(A1)-1)/10))+1)在公式中的作用就是生成十个1,十个2,十个3这种列序列,如下图在单元格中输入INT(((ROW(A1)-1)/10))+1)
9、IFERROR函数其含义是如果公式的计算结果为错误,则返回指定的值;否则将返回公式的结果。此公式中的作用就是姓名提取完后返回空单元格。