1职场实例
小伙伴们大家好,今天我们来讲解一个简单的数据结构转换问题,也就是我们经常在职场中遇到的“多列数据转一列问题”,只不过我们又加上了一个条件“先行后列”的转换顺序。这个问题在之前的文章讲到过不止一种方法,今天我们来学习用公式的方法解决此问题。
如下图所示:
A2:C4区域内有一个人员名单表,我们想要按照先向右再向下的顺序(即先行后列的顺序),将区域内人员名单转换为一列显示。
2解题思路
我们来介绍用函数的方法解决此问题。
在E2单元格输入数组函数公式:
=INDIRECT(TEXT(SMALL(IF($A$2:$C$4″”,ROW($2:$4)/1%+COLUMN(A:C),9999),ROW(A1)),”R0C00″),)&””
输入完成公式,按下Ctrl+Shift+回车键三键结束数组公式,向下下拉填充公式直至单元格显示为空白停止即可。
3公式解剖
01
IF函数条件判断服务器托管网
我们对数组公式进行解剖分析以便于理解。
首先使用IF函数对A2:C4单元格区域进行条件判断,如果不等于空值,则将对应的行号放大100倍后与对应列号相加,否则返回一个较大的值9999(还可以更大,自定义即可)。
=IF($A$2:$C$4″”,ROW($2:$4)/1%+COLUMN(A:C),9999)
最后生成一个由行列号数据组成的二维数组:
={201,202,203;301,9999,303;401,402,403}
选中公式对应部分后按下F9键可查看数组结果,Esc键即可恢复公式正常显示。
02
嵌套SMALL函数
再在外面嵌套SMALL函数,实现从小到大依次提取数组中的值。
=SMALL(IF($A$2:$C$4″”,ROW($2:$4)/1%+COLUMN(A:C),9999),ROW(A1))
将数组中的值元素:
={201,202,203;301,9999,303;401,402,403}
分别提取出来放置到对应的单元格显示。
03
嵌套TEXT函数
继续在最外侧嵌套TEXT函数,我们将TEXT函数的第二参数设置为代码格式“R0C00”,目的是将SMALL函数返回的位置数据转换为R1C1引用样式的字符串。
=TEXT(SMALL(IF($A$2:$C$4″”,ROW($2:$4)/1%+COLUMN(A:C),9999),ROW(A1)),”R0C0服务器托管网0″)
04
嵌套INDIRECT函数
最后再嵌套INDIRECT函数返回对应单元格的引用,名单中即可按先行后列的排列顺序显示在一列中显示。
=INDIRECT(TEXT(SMALL(IF($A$2:$C$4″”,ROW($2:$4)/1%+COLUMN(A:C),9999),ROW(A1)),”R0C00″),)&””
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 关于 Spartacus 服务器端渲染的 404 Not found 页面处理
当启动 Spartacus 时,路由由 Router 逻辑处理。将评估四种不同类型的路由: 路由应由自定义路由路径处理;客户添加了硬编码路由,并且我们应该优先考虑这些路由。 路由是 PLP(产品列表页)或 PDP(产品详情页)。 路由是 CMS(内容管理系统)…