将工作表中矩形数据区域转换成一行或者一列。例如将下图所示的名为Data的区域:
转换成单独的一列:
或者单独的一行:
先不要看下面的答案,自已可以先想一想如何实现?
公式思路
获取数据所在的行号和列号,然后提取行列号所在单元格中的数据。
公式解析
按行顺序将区域中的数据转换成单独的一列
在单元格B2中输入公式:
=IF(INDIRECT(ADDRESS(ROW(Data)+INT((ROW()-ROW($B$2))/COLUMNS(Data)),COLUMN(Data)+MOD(ROW()-ROW($B$2),COLUMNS(Data)),4,,”Sheet1″))=””,””,INDIRECT(ADDRESS(ROW(Data)+INT((ROW()-ROW($B$2))/COLUMNS(Data)),COLUMN(Data)+MOD(ROW()-ROW($B$2),COLUMNS(Data)),4,,”Sheet1″)))
然后下拉至单元格B17,如下图所示。
其中,ROW(Data)+INT((ROW()-ROW($B$2))/COLUMNS(Data))获取Data区域中第1行第1列的数据所在的行。数学原理:用需要输入数据的区域中当前单元格所在行的行号减去首行行号的结果,除以被提取单元格区域Data的列数,所得结果加上Data区域起始行号,即为要在当前单元格中放置的数据在Data区域中的行号。
COLUMN(Data)+MOD(ROW()-ROW($B$2),COLUMNS(Data))获取Data区域中第1行第1列的数据所在的列。数学原理:用需要输入数据的区域中当前单元格所在行的行号减去首行行号的结果,除以被提取单元格区域Data的列数的余数,用所得结果加上Data区域起始列号,即为要在当前单元格中放置的数据在Data区域中的列号。
Addrees(行号,列号,4,,”Sheet1”)以相对引用方式返回工作表Sheet1中相应行列号的地址。
INDIRECT(引用地址)返回引用地址所在单元格的数据。
使用IF函数让结果为空的单元格仍然返回为空,而不是0。
下面的几种情形与上文介绍的情形相似,原理相同,这里只给出公式,你可以自已调试体会。
按列顺序将区域中的数据转换成单独的一列
在单元格B2中的公式如下,然后拖动下拉至单元格B17。
按行顺序将区域中的数据转换成单独的一行
在单元格B2中的公式如下,然后向右拖动拉至单元格Q2。
按列顺序将区域中的数据转换成单独的一行
在单元格B2中的公式如下,然后向右拖动拉至单元格Q2。
小结
本例的关键在于求出需要提取的数据在Data区域中的行列号,其中的运算是精华所在。可以先用代表行列的数字找到规律,再用相应求得行号列号的函数代替。
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!