给同事气到吐血的Excel表是怎样的?

日常统计汇总本是一件简单的事情,但是总有人会让你体会到什么叫“化简为繁”!

日常加上按小时有饭补,于是就做了一张统计表,方便每个月底统计一下每个人需要补多少?

本文涉及函数如下:

  • TEXTJOIN函数          -WPS可用

  • SUBSTITUTE函数       - 主流版本

  • REPT函数                 - 主流版本

  • MID函数                  - 主流版本

  • TRIM函数                - 主流版本

  • UNIQUE函数            -O365新增

  • SUMIFS函数            - 主流版本

你觉得应该是这样的

但是最后给你的其实是这样的

而你要统计的是这样的

你们可能最想学的是如何快速处理杂乱日期,但是这不是我们本次的重点,我们先撇开日期乱的问题(文末补充处理方法),简单说一下如何把上面多个姓名转成下面这种标准的二维表!

我们结束两种方法,一种是纯技巧操作,一种是函数方法!

首先我们还是介绍一种最简单的,技巧操作法

方法01 | PQ技巧操作法

▼超详细动画演示-0代码纯操作!

操作细节文字说明版:

1、鼠标点击数据区域的任意位置,点击【数据】-【自工作表】-确定
(推荐2016及以上版本,2010以下版本及WPS等没有Power Query!)
2、选择加班人字段,点击【转换】-【拆分列】-【高级选项】-【行】
确定,这样我们就可以把内容按照固定的分隔符拆分到每一行,如果自动推测的分隔符不对,也可以自己填写!
3、选择餐补列,点击【转换】-【透视列】,值 列 选择加班时长,确定即可!
4、点击【主页】-【加载到工作表】,结束!
方法02 | 使用函数直接处理
这种我们需要利用到一些新版函数,也正好让大家感受一下新函数好用的地方!
为了大家更直观的看到我们公式是如何一步一步书写的,我们也录制了动画!
=SUBSTITUTE(TEXTJOIN(',',,$A$2:$A$14),',',REPT(' ',99))
▲ 这一步,我们主要干了两个事情,把所有的姓名使用TEXTJOIN拼接到一起,然后把中文逗号,替换成99个空格,方便我们下一步分别提取姓名!
▼过度公式
=TRIM(MID(SUBSTITUTE(TEXTJOIN(',',,$A$2:$A$14),',',REPT(' ',99)),ROW($1:$99)*99-98,99))
▲ 我们在第一次处理的基础上,从1,100,199……提取99个长度,因为我们上一步替换成了99个空格,这样截取的内容就是空格+对应分隔符的内容,这也是我们没有类似的TextSplit函数前,分隔文本的常用套路!
提取出来的结果是内存数组,我是O365版本所以自动扩展显示了,不要再问我的为什么不行,可能你的版本不支持动态数组!
▼姓名处理-最终公式
=UNIQUE(TRIM(MID(SUBSTITUTE(TEXTJOIN(',',,$A$2:$A$14),',',REPT(' ',99)),ROW($1:$99)*99-98,99)))
你学到了什么,明白一个多层嵌套的公式是怎么写出来的了吧!我们
总结一下:
1、先有处理思路,根据思路去搜索方式,最好有一定的函数储备知识
2、知道或者通过测试知道每步的运行结果,根据结果决定下一步使用哪一个函数(一般都在处理思路时考虑的差不多了)
3、想要嵌套,需要知道对应函数的参数是否支持上一步的结果,比如你上一步是文本,下一步你嵌套一个SUM,显然是没用对!
一句话:有思路、有一定的函数储备、掌握函数参数类型和结果类型、适当的练习!
姓名处理好后,金额比较简单,我们可以使用SUMIF直接处理
=SUMIFS($B:$B,$A:$A,'*'&$E2&'*',$C:$C,F$1)
不过这里还是不太严谨的做法,比如王文和王文文就会出现问题!想要更加严谨,我们需要把数据源稍微加工一下!
把两遍都加上逗号,这样我们的姓名就全部在两个中文逗号之间了!
=','&B2&','
在求和的公式中,同样加上两个逗号,这样就不会出现王文和王文文类似的问题了!
▼金额处理公式
=SUMIFS($C:$C,$A:$A,'*,'&$F2&',*',$D:$D,G$1)
到这里,我们的核心要分享的知识就结束了,你可能觉得第一种方法更简单,但是部分同学更喜欢使用函数处理!选择适合自己的方法吧!
文末彩蛋
搞不好这个才是你们最想学习的知识………………
▼ 一键搞定杂乱日期!
(0)

相关推荐

  • 万金油公式在二维数组中的应用

    今天和小伙伴们学习下万金油公式在二维数组中的应用.对于万金油公式,相信常用excel函数的同学都很了解,我这里把它叫做筛选公式.如果不了解,也没有关系,可以慢慢积累. -01- 表格转换 1.将左表转 ...

  • 有点难度的求和

    中间用逗号分隔的,现在前面二节不变,后面这一节要改在第1节加上第3节,如何用公实现,图如下 一.方法1: 1.公式截图 2.公式 =VLOOKUP("*,*,",MID(A1,1, ...

  • 多种方法合并同类名单,总有一种适合你!

    大家好,今天要分享的是合并名单的问题.先来看下数据,如下图所示.左表是源数据,是一个班级姓名表,现在要把相同班级的姓名合并在一起,效果如右表所示. 关于这个问题,有很多解决方法.第一种就是用函数tex ...

  • textjoin函数也来实现筛选的功能

    关于怎么用函数实现筛选的功能这个问题,今天是最后一次解析.用的是textjoin这个函数,它是新版本的函数,功能是文本连接.如果你对这个函数不熟悉,可以看<史上最强文本连接函数textjoin的 ...

  • 史上最强文本连接函数textjoin的用法

    我们昨天学了2个文本连接函数,今天来学一个功能更强大的文本连接函数--textjoin.此函数也是新增函数,要office2016版以上才可能有这个函数,它的功能是使用分隔符连接文本字符串区域. -0 ...

  • 又又又来了,多工作表单列提取不重复姓名!

    你好,我是刘卓.欢迎来到我的公号,excel函数解析.总有小伙伴执迷用函数来解决函数不好解决的问题,比如,多工作表提取不重复值,这就很尴尬了doge.这对我来说是一个挑战,也促使我去寻找解决方法.今天 ...

  • 按指定次数重复内容的套路合集

    -套路合集- 按指定次数重复内容 1.vlookup精确查找(4参为0) 如下图所示,B列的是要重复的内容,C列是要重复的次数,最后想要的效果是E列那样.A重复2次,B重复3次...... 首先在A列 ...

  • 一封用词不得体的信,这样改改大伯就不会气得吐血了

    一封用词不得体的信,这样改改大伯就不会气得吐血了

  • 目录文件转Excel表

    目录文件转Excel表

  • 同时打开两个excel表不重叠

    如何同时打开两个excel表不重叠呢?下面是具体的操作方法. 打开一个WPS excel表格. 单击工具栏上的视图. 单击选择新建窗口 单击选择重排窗口,在下拉列表中选择垂直平铺. 在表格名称栏上选择 ...

  • 一句代码合并Excel表

    原文链接:https://www.jianshu.com/p/0b2b9c08f7f 两个Excel中都有相同的一列,怎样依赖这列数据将两个Excel合并到一起?使用Python合并表格只要一句代码! ...

  • Excel技术 | 数据有效性8:使用Excel表创建动态级联列表

    Excel表能够创建结构化引用,并且在表中增加或删除行时,数据会自动调整.在Excel工作表中,选取数据单元格,单击"插入"选项卡中的"表"即可创建Excel表 ...

  • Excel表间数据对比,还有个简单的方法

    多一种思路,多一种方法,多一种面对不同问题及不同情况时的应对策略. 在Excel里,表间数据对比的解法其实有很多,在Power Query里也是一样,除了前面文章<PQ-综合实战:频繁重复的表间 ...

  • Excel表数据汇总又双叒叕粗错,$FilterDatabase是什么鬼?

    小勤:大海,又粗问题了! 大海:啥事?这么紧张兮兮的. 小勤:你教我用Power Query导入Excel文件的方法还是有问题啊,导进来的数据翻倍了!!! 大海:你的工作表里是不是有筛选或自己命名的区 ...

  • Excel表间数据对比,更加简单轻松,一键刷新

    在Excel里,表间数据对比的解法其实有很多,在Power Query里也是一样,在前面的文章<Excel频繁重复的表间数据对比,用Power Query一键刷新>给出了完全外部合并加公式 ...

  • 批量汇总多Excel表 | 标题位置不确定,怎么处理?

    标准Excel表格批量汇总过程及基础方法请参考文章:<批量汇总Excel工作簿多表数据,结合CELL函数实现动态化数据源及需要注意的Formula.Firewall问题>,所有特殊情况处理 ...