EXCEL中一列(行)转多行多列或多行多列转一列(行) | 您所在的位置:网站首页 › excel将多列数首尾相接 › EXCEL中一列(行)转多行多列或多行多列转一列(行) |
写在前面: 之前分享过EXCEL中简单的单列数据转单行,或单行数据转单列(EXCEL行列互转三种方法 ),其中有一个方法用的就是OFFSET函数与ROW、COLUMN函数的嵌套。 今天运用OFFSET+ROW+COLUMN函数组合处理更多稍微复杂一点的数据。 1.一列转多列多行(或多行多列) ①先列后行,比如一列数据转为四列多行。 在目标区域第一个单元格B19输入以下公式,然后向右拉到第4列,再下拉直到出现空白。 =OFFSET($A$1,COLUMN(A1)-1+(ROW(A1)-1)*4,)&"" ②先行后列,比如一列数据转为四行多列。 在单元格H19输入以下公式,然后向下拉到第4行,再右拉直到出现空白。 =OFFSET($A$1,ROW(A1)-1+COLUMN(A1)*4-4,)&"" 2.一行转多列多行(或多行多列) ①先列后行,比如一行数据转为三列多行。 同样,此例在单元格B6输入以下公式,然后向右拉到第3列,再下拉直到出现空白。 =OFFSET($A$1,,(COLUMN(A1)-1)+(ROW(A1)-1)*3,)&"" ②先行后列,比如一列数据转为三行多列。 在单元格H6输入以下公式,然后向下拉到第3行,再右拉直到出现空白。 =OFFSET($A$1,,(ROW(A1)-1)+(COLUMN(A1)-1)*3,)&"" 3.多行多列转一列 比如源数据六行五列: ①先向下引用源数据,再向右引用。 单元格B9输入以下公式,下拉直到出现空白。 =OFFSET($A$1,MOD(ROW(A6),6),ROW(A6)/6-1,)&"" ②先向右引用源数据,再向下引用。 单元格D9输入以下公式,下拉直到出现空白。 =OFFSET($A$1,ROW(A5)/5-1,MOD(ROW(A5),5))&"" 4.多行多列转一行 多行多列数据转成单行的情况实际应用中应该不算常见,不过这里也一并整理了,若需要可直接套用公式。 比如源数据五行六列: ①先向右引用源数据,再向下引用。 单元格B8输入以下公式,右拉直到出现空白。 =OFFSET($A$1,INT(COLUMN(F1)/6)-1,MOD(COLUMN(F1),6))&"" ②先向下引用源数据,再向右引用。 单元格B9输入以下公式,右拉直到出现空白。 =OFFSET($A$1,MOD(COLUMN(E1),5),INT(COLUMN(E1)/5)-1)&"" 公式说明: ①ROW()返回行号,比如ROW(A2)=2; ②COLUMN()返回列号,比如COLUMN(F1)=6; ③MOD()求余数,比如MOD(1,5)=1,即1÷5余数是1,再比如MOD(5,5)=0,因为5被5整除,没有余数; ④上面每个公式最后都加了&"",作用是把引用空单元格得到的0去掉,显示为空白; ⑤上面公式中用到不少逗号,(英文半角状态下),不能随意省略或移动位置,每一个小豆芽都有它存在的意义,有兴趣研究的可以看看下面链接OFFSET的基础用法。 【原文链接:EXCEL中一列(行)转多行多列或多行多列转一列(行)】 |
CopyRight 2018-2019 实验室设备网 版权所有 |