本期讲如何应用一系列的公式,
实现自动将一行变成多行的功能。
首先做一个简单的示范表:
绿底色单元格是公式,做好了不要动,会自动运算;
橙底色单元格是需要甲纯手动输入和修改的。
这是纯老师做表的小习惯。
第一列是【ID】列:
呃……如果还有甲纯不知道ID是啥的话,
建议一定要看一下《小程序基础 之 ID》。
然后,随便在【内容】列内输入点啥,
【指定行数】列输入想要把【内容】由一行变成多行的行数。
【起始序号】列的公式如下:
【起始序号】指把某一行变成N行后的起始序号。
比如本例里面,想要把【大猪头】变成2行,
把【小猪头】变成3行,那么总的就是5行。
2行的【小猪头】数据的序号就是1-2,
接下来的3行【大猪头】数据的序号就是3-5,
最后的【黑猪头】序号就是6了。
好的,数据的输入区域就做好了。
接下来做数据的输出区域。
输出区域:
【序号】列的公式如下:
功能就是从1开始排正整数的序号,
判断如果序号的最大值等于【指定行数】之和了,
就不再增加序号,全部为空。
比如本例,当【序号】增长到5后,
再下一个公式判断最大的序号5,
已经等于【指定行数】之和了,
就停止增加序号,开始赋值为空。
【ID分解】列的公式如下:
ID分解的意思是【指定行数】是多少,
对应的这个ID就要出现多少次。
如【ID】为1时([A2]),【指定行数】为2,
则【ID】为1应出现2次,占用2行。
前面我们有介绍过MATCH+INDEX的用法,
可详阅《INDEX+MATCH实现VLOOKUP从右向左取值》。
但本例内的MATCH(F:F,D:D),
不是精确查找,而是模糊查找,
作用是找到小于或等于查找值的最大值。
计算时从上往下查找,
不停的拿查找值与查找值比对,
如果找得到相等的,就取最后一个相等的值,
注意是最后一个,
如果有相邻的上下行或多行都是等于查找值的,
那就取最后一行。
如果找不到相等的,就取小于查找值的最大值。
模糊查找的前提是被查找的列必须升序排列,
本例内的【起始序号】列就是升序排列。
【内容分解】列的公式就非常好理解了,
利用ID分解后的值,使用VLOOKUP函数,
去匹配出相对应的【内容】。
总体功能演示:
那最后的问题来了,
甲纯们:这个功能有什么用呢?
纯老师:呃……好像真没什么用。
本期没什么用,
也许下期非常有用。