很多人学习函数很容易忘记,很有可能就是使用频率太低了,或者是实际工作使用的场景太少了。高效的学习函数的方法古老师认为就是学以致用,平时工作中经常需要操作的,看一下是否可以通过“自动”化的方案来解决,这个自动很有可能就是通过函数实现的,再或者是热心回答同事或网友的提问。
这不,一个同事的问题如下,有一些数据在不同的单元格里面,每个单元格是一个条件,这些单元格分布在不同的行和列,现在需要统计一共有几个条件(去重),这些条件出现了几次(计数),如下图:
如图片中的“IT设备”,出现了3次(可见范围),实际上数据有非常多列和行。如何解决这个问题呢?解决问题的最笨的方法就是手动统计思路:先把每一列的数据都复制到一列,再把这一列的数据复制出来,删除重复项目,以这一列为条件作为统计,合并复制列为条件区域统计就可以实现了。如下图:=COUNTIFS(E:E,G1)
知道这些思路后,难点就是解决合并多行到一列的问题了,此时用365版本最新的函数VSTACK,就立刻解决了这个问题了,我们录入函数
=VSTACK(A1:A34,B1:B34,C1:C34,D1:D34,E1:E34),就把多列合并成一列了,到了这一步就非常简单了;
边上单元格录入删除重复项函数:=UNIQUE(G:G),再在边上再次录入统计函数:=COUNTIFS(G:G,H1),就快速地统计出来了;
当然学习函数最好的方法就是多想想,有没有其它办法,刚刚的方法是通过函数VSTACK来实现的,但是当出现多列的时候,就会非常“痛苦”因为需要一列一列对应VSTACK的参数,类似这样,(A1:A34,B1:B34,C1:C34,D1:D34,E1:E34),分别录入。此时就要想其它办法了。
我们可以通过“合并分拆合并”的思路来设计函数;
步骤1:录入函数:=TEXTJOIN(";",,A1:E34),把需要统计的单元格全部合并到一个单元格。
步骤2:录入函数=TEXTSPLIT(TEXTJOIN(";",,A1:E34),";"),把它分开到多个单元格中。
步骤3:录入函数=TRANSPOSE(TEXTSPLIT(TEXTJOIN(";",,A1:E34),";")),把分开的函数转成列的显示方式
到了这一步就基本OK了,相对于方法1,简单不少,不需要一列一列的输入合并列了,只需要全选待合并区域就可以了,接下来只需要边上再次重复方法1的步骤就可以了;
步骤4:=UNIQUE(G:G),删除重复项目
步骤5:=COUNTIFS(G:G,H1),条件统计
总结:对于多行多列合并成一行或一列,最快的办法就是:合并成一个单元格,再分拆成多个单元格,再根据情况转换行列的显示区域就可以了;
我是古哥:
从事制造行业18年,在企业运营、供应链管理、智能制造系统等方面具有丰富的实战经验。企业智能化,柔性化计划运营管理专家,擅长通过企业流程优化规范,企业管理、导入计划运营提升企业效率;对提高企业准时交货率,降低企业库存,输出智能制造人才有丰富的经验。学习PMC生产计划,关注古哥计划!
领取专属 10元无门槛券
私享最新 技术干货