A列是要打印的条码,b列是每个条码需要打印的数量
结果列想要根据数量显示每个条码的个数,并且顺序排列下去
主要是用index+match来实现,不过在这之前需要一个辅助列
辅助列的作用就是知道每个条码首次出现的位置
以568举例,首次出现应该是在第4个,因为前面132打印1个,235打印2个。
把b4到b2的之间的所有数量总和减去本身的3个,然后再+1,就是首次出现的位置
也就是4
把每个条码对应的辅助列都填充起来,就知道每个条码对应的首次出现次数了
用index和match去匹配
在a2到a6进行匹配没问题,用上绝对引用
这里只有一列,所以只需要一个match参数匹配
关键在于match的参数
在辅助列进行匹配,绝对引用
用什么匹配呢,就是结果列单元格的行数-1,这表示是第几个打印的位置
比如c2,c2的row()就是2,然后减1等于1,那就是第一个打印的数。
最后1个参数选1,就是为了应对不同条码打印数量不同的情况
比如说第三个位置,应该是要235。
Row()是4,减1=3
3在d2到d6是匹配不上的,但是这里match最后1个参数是1所以不是精准匹配
小于的意思就是3夹在来了2和4中间,所以3是小于4的,所以去匹配哪个小的数,也就是2。
所以这里的match匹配出来2,在index中就是235
这就是为什么要搞辅助列,把每个条码第一次出现的位置求出来。
在结果列,如果位置能在辅助列匹配那就是正好,比如第一个位置在132,第二个位置在235。但是第三个就要匹配小的那个了,也就还是2,结果是235。第4个位置又和4配对,在match中是中的位置是第3个,然后match嵌套在index里,a2到a6的第三个就是568。第5个位置夹在4和7之间,还是和4配对,也就还是568。直到结果列的位置到达7,也就是456第一次出现的位置。
总共需要打印14个,那就是说需要填充的单元格是c2:c15
输入到左上角,点击回车就会选中这些单元格
前面几个已经输入公式,在这种情况按ctrl+d
就能把选中的单元格,用前面的公式填充起来
可接:
Excel数据处理
图表设计 & 数据可视化