搜索
写经验 领红包

如何将多列数据合并为一列(公式法)(将多列数据合并到一个单元格)

导语:把多列数据合并为一列高阶表格函数详解,上一课没看懂,详解在此

Excel函数学习:悟空百问の015:详细解析把多列数据合并为一列数据的高阶函数

可能是上一课的课程重点是分摊了三种情况下的分列数据的合并,把最后一种高阶函数简单的说了下就结束了。有点烂尾了,刚好又有朋友指出了这一点,今天就来深入解析这个函数,没看懂的今天大饱眼福,来细细的解读这串代码。

本期重点

函数在此:

=IFERROR(OFFSET(XXB1!$A$1,MOD(ROW(XXB1!A1)-1,COUNTA(XXB1!A:A)),IF(INT((ROW(XXB1!A1)-0.1)/COUNTA(XXB1!A:A))<8,INT((ROW(XXB1!A1)-0.1)/COUNTA(XXB1!A:A)),"")),"")

效果展示:

效果展示

首先这串代码分为几个层次:

=IFERROR(函数A,"")

函数A=OFFSET(函数B,函数C,函数D,“”)

函数B=XXB1!$A$1

函数C=MOD(ROW(XXB1!A2)-1,COUNTA(XXB1!A:A))

函数D=IF(函数E<8,函数E,"")

函数E=INT((ROW(XXB1!A1)-0.1)/COUNTA(XXB1!A:A))

总的概括下此函数的逻辑:

创建一个以A1为起始的一个引用区域,横向执行函数E(每列获取非空单元格数的列值),纵向获取值为函数C(连续获取1-5,1-5的列值),最后呈现出来的结果就是把A列,B列,C列连续的获取在我们所需的A列中。

重点概述:

1.IFERROR函数解析

=IFERROR(函数A,"")

IFERROR函数正如其词义一样,就是判断错误函数,当函数正常时得函数所获得值,当函数错误时,获得第二参数值。这里要了解的地方就是IFERROR的结果是对或者错,所以当第一个参数是判断语句时,得到的答案是对错。

2.OFFSET函数解析

函数A=OFFSET(函数B,函数C,函数D,“”)

OFFSET函数,简单的来就是创建一个引用区域,然后包含四个参数ABCD,A代表的是这个区域的左上角第一个值,B是向下(正数)或者向上(负数)偏移的行数,C是向右(正数)或者向左(负数)偏移的列数,CD是获取的区域,1,1就是获取一个单元格,不写的时候默认是1,1,获取的是一个单元格内容。

简单实操一下获取一个名叫香港的美丽地方。

OFFSET函数解析

3.函数C解析

函数C=MOD(ROW(XXB1!A2)-1,COUNTA(XXB1!A:A))

这列先说MOD函数是求余数函数,两个参数分别是A和B。

A=ROW(XXB1!A2)-1

A求得的结果是每行的行值-1,获得一个列为123456的行值

B=COUNTA(XXB1!A:A)

B求得结果是获取A列的非空单元格的数量。

用A去取B的余数,获得的数组结果就成了:

1/N=1 2/N=2 3/M=3 直至 N/N=0

N+1/N=1 N+2/N=2 N+3/N=3 直至 N+N/N=0

获得结果是一个1至N然后0至N的循环结果,这就是后面要连续取行值循环做准备。

效果展示

4.函数D解析

函数D=IF(函数E<8,函数E,"")

这个简单来说就是判断抵达第八列,就结束,没到第八列就继续取值,直至第八列结束。

5.函数E解析

函数E=INT((ROW(XXB1!A1)-0.1)/COUNTA(XXB1!A:A))

INT函数是向下去最近一个整数,2.5INT取值是2,然后通过行值减去0.1除以本行的非控制的个数,获取的值就是一列有1111,2222,3333,4444,的循环数列,然后通过这个信息来向右进行偏移。获得我们需要的值。

函数效果

收尾

此篇是上一篇的精华解析版,讲述这个分列数据的整个单列数据的事宜。请大家细细阅读,好好学习。加油哦~

免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小舻创作整理编辑!