Excel公式练习99:二维数组转换成一维数组

excelperfect

引言:本文的练习整理自chandoo.org。多一些练习,想想自己怎么解决问题,看看别人又是怎样解决的,能够快速提高Excel公式编写水平。

本次的练习是:如下图1所示,2行6列的数据,实际上是一个二维数组:

{1,2,3,”a”,”b”,”c”;4,5,6,”d”,”e”,”f”}

图1:2行6列数据,将该数据区域命名为“a”

现在,要将这个二维数组动态转换为一维数组,然后其他公式可以直接使用该数组,而无需在某个区域内输入。因此,你的公式应该返回的结果是:

{1,2,3,”a”,”b”,”c”,4,5,6,”d”,”e”,”f”}

不应该使用任何辅助单元格、中间公式或者VBA。

写下你的公式。

解决方案

下面列出一系列公式,有兴趣的朋友可以逐个研究。

公式1

=OFFSET(a,TRUNC((COLUMN(OFFSET(A1,,,,COLUMNS(a)*ROWS(a)))-1)/COLUMNS(a)),MOD(COLUMN(OFFSET(A1,,,,COLUMNS(a)*ROWS(a)))-1,COLUMNS(a)),ROWS(a),COLUMNS(a))

公式2

=OFFSET(a,INT(COLUMN(OFFSET(A1,,,,COUNTA(a/0)))/(COLUMNS(a)+1)),MOD(COLUMN(OFFSET(A1,,,,COUNTA(a/0)))-1,COLUMNS(a)),1,1)

公式3

=IF(T(OFFSET(a,INT(COLUMN(OFFSET(A1,,,,COUNTA(a/0)))/(COLUMNS(a)+1)),MOD(COLUMN(OFFSET(A1,,,,COUNTA(a/0)))-1,COLUMNS(a)),1,1))='',N(OFFSET(a,INT(COLUMN(OFFSET(A1,,,,COUNTA(a/0)))/(COLUMNS(a)+1)),MOD(COLUMN(OFFSET(A1,,,,COUNTA(a/0)))-1,COLUMNS(a)),1,1)),T(OFFSET(a,INT(COLUMN(OFFSET(A1,,,,COUNTA(a/0)))/(COLUMNS(a)+1)),MOD(COLUMN(OFFSET(A1,,,,COUNTA(a/0)))-1,COLUMNS(a)),1,1)))

公式4

=OFFSET(a,INT(COLUMN(OFFSET(A1,,,,COUNTA(-a)))/(COLUMNS(a)+1)),MOD(COLUMN(OFFSET(A1,,,,COUNTA(-a)))-1,COLUMNS(a)),1,1)

公式5

=OFFSET(a,INT(COLUMN(OFFSET(A1,,,,COUNTA(-a)))/COLUMNS(a)-1/COLUMNS(a)),MOD(COLUMN(OFFSET(A1,,,,COUNTA(-a)))-1,COLUMNS(a)),1,1)

公式6

=OFFSET(a,MOD(ROW(OFFSET(A1,,,COUNTA(-a)))-1,ROWS(a)),INT(ROW(OFFSET(A1,,,COUNTA(a)))/ROWS(a)-1/ROWS(a)),1,1)

公式7

=INDEX(A1:F2,N(IF(1,1+(INT((ROW(INDEX(A:A,1):INDEX(A:A,ROWS(A1:F2)*COLUMNS(A1:F2)))-1)/COLUMNS(A1:F2))))),N(IF(1,1+(MOD((ROW(INDEX(A:A,1):INDEX(A:A,ROWS(A1:F2)*COLUMNS(A1:F2)))-1),COLUMNS(A1:F2))))))

可以通过F9键或者公式求值功能,加深对上述公式的理解。

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

欢迎到知识星球:完美Excel社群,进行技术交流和提问,获取更多电子资料,并通过社群加入专门的微信讨论群,更方便交流。

(0)

相关推荐

  • 一个花了很长时间才想明白的公式错误

    这个问题花了我很长时间才想明白 这是一个朋友的求助问题.同样的两个公式为什么一个可以得到结果,另外一个却返回错误值: 两个Offset函数,一个是从透视表的行字段(销售量)区域取出第一个值,一个是从透 ...

  • Excel VBA 8.42单元格批量写入公式 无需二次填充公式

    单元格批量写入公式 无需二次填充公式 点击上方"Excel和VBA",选择"置顶公众号" 致力于原创分享Excel的相关知识,源码,源文件打包提供 一起学习,一 ...

  • Excel二维表转换成一维表(2种方法)

    今天大年初四,春节假期还剩三天了,每逢佳节胖三斤,亲们可要注意控制饮食了,要不然春节后无脸见人哟.闲话少说,今日分享如下. 在做数据处理的时候,有的时候为了处理方便我们需要将二维的数据表处理成一维的数 ...

  • 利用数据透视表将Excel二维表转换成一维表

    在做数据处理的时候,有的时候为了处理方便我们需要将二维的数据表处理成一维的数据表,那么我们应该如何操作呢?有没有什么简单的办法呢?本文介绍一种通过数据视表的方式来处理二维表.操作步骤如下: Step1 ...

  • WPS Excel中将二维表转换成一维表方法!

    有的时候因为工作需要,我们在制作Excel报表的时候,需要将二维表转换成一维表,两者之间最大的区别就是列字段中是否有相同性质的字段,同时出现两个或两个以上相同性质字段的就是二维表,反之就是一维表.接下 ...

  • 拯救大表哥必杀技,合并单元格的双头二维表转换成一维表

    近期推送的文章 如何用公式提取字符串中的数字?!经典公式,收藏备用 带单位的数字,单位长度不一,如何提取数字,LOOKUP应用实例 漂亮!新颖!这张顶级国际机构的表格,怎么制作的呢? 颠覆认知,用高德 ...

  • int数组转换成char数组进一步思考及5种实现方法

    2014-04-30 15:40:23  ghevinn 码龄10年 关注 // printfTest.cpp : 定义控制台应用程序的入口点. // #include 'stdafx.h' #inc ...

  • 如何使用数据透视表将二维表转成一维表(俗称逆透视)

    -01- 二维表转成一维表 要将下图左边的二维表转成右边的一维表.先来说下二维表和一维表的区别.二维表是一种交叉表,由行列两个方向交叉确定数据的属性.简单来说,就是同一类数据出现在多列中.比如下图左表 ...

  • Excel应用大全 | 二维表转换一维表

    一本书教会你分分钟搞定数据分析! 常见的二维表是一种交叉表,有行.列两个方向的标题交叉定义数据的属性.二维表在工作和生活中应用十分广泛,如课程表.工资表.人员花名册.价格表等.一维表则是每一行都是完整 ...

  • Excel 2016让二维表快速转换为一维表

    Step1:准备原始数据,如图1. 图 1 Step2:单击数据区域任意表格,点击菜单数据→从表格,这样Excel就会自动将区域转换为"表",并且弹出"表1 查询编辑器& ...

  • Excel公式技巧99:FREQUENCY函数应用示例

    excelperfect FREQUENCY函数是Excel中一个比较难以理解的函数,然而该函数在一些场合非常有用,虽然以前给出过不少关于FREQUENCY函数应用的例子,这里再给出一例,以帮助大家深 ...