美文网首页随笔-生活工作点滴简友广场想法
用Excel帮简小哥在聊天记录中自动统计数据解读(一)

用Excel帮简小哥在聊天记录中自动统计数据解读(一)

作者: 资深刘刘 | 来源:发表于2019-08-25 11:37 被阅读22次

    昨天写了 用Excel帮简小哥在聊天记录中自动统计日更与点评数据 后,发现一些小伙伴并没有理解这是怎么实现的。接下来的几天中,将对统计文档进行详细解读,让小伙伴们能够掌握。

    一、为什么能自动统计

    【城市合伙人社群】创作101第一季活动的日更和点评发布有规定的模板,模板的格式在昨天的文中已经详细介绍过。日更模板的【101日更】【日更时间】【日更作者】【链接或分享】,点评模板的【101点评】【101点评人】是模板的关键字,也就是特征字符,这是自动统计的前提。我们需要的数据能够通过特征字符筛选出来,之后再进行处理,得到最终需要的数据。

    这个模板是我们主办方制定的活动规则,这规则使得活动标准化,标准化是程序自动处理的一个重要前提,也就是说程序最适合于做标准化重复工作

    二、资料收集

    日更与点评模板具备了自动处理的基本条件,剩下来的事情就是如何去处理。既然最后的成果是表格,这通过Excel来实现最便利。

    处理的第一步就是资料收集,也就是聊天记录收集。从处理的角度看,数据越标准,处理越简单;从使用的角度看,数据来源越容易,使用越方便。这二者是一对矛盾。在这里,目前每天20多个人参加活动,有50多条日更和点评记录,数量不算多;当参加人数到几十甚至一两百的时候,日更和点评记录达到一百多甚至三五百条,对于手工处理来说,数量还是较多。因此,最好是直接复制聊天记录,而不用从聊天记录里将日更和点评筛选出来,这样使用最方便。将聊天记录复制到Excel工作表「聊天记录」中,资料收集完成。


    原始聊天记录

    三、资料粗加工

    对收集的聊天记录采取由粗到细的方法,进行分步筛选加工,得到最终成果。聊天记录的内容很多,较为杂乱。为简化处理,也方便查错,首先对资料进行粗加工,目标是将含有日更或点评的信息筛选出来。

    粗加工第一步使用的公式为:=IFERROR( IF( AND( FIND("【" , 聊天记录!A2) > 0 , LEFT( 聊天记录!A2 , 9) <> "【我的点评&建议】"), SUBSTITUTE( 聊天记录!A2 , " " ,"") ,0) ,0)

    该公式用了IFERROR、IF、AND、FIND、LEFT和SUBSTITUTE六个Excel函数,看上去较复杂,难以看懂,下面将依次详细介绍。

    1、核心函数为IF函数,该函数的形式如下:
      IF(logical_test, [value_if_true], [value_if_false])
    该函数包含3个参数,第一个参数是逻辑判断条件,第二个参数是条件为真时返回的结果,第三个参数是条件为假时返回的结果。

    目标是通过IF函数根据模板的特征字符,将我们需要的信息进行筛选出来。

    2、IF逻辑判断条件
    在IF函数逻辑判断条件里,用了AND函数,该函数的形式如下:
      AND(logical1, [logical2], …)
    该函数是逻辑与,参数为逻辑判断条件,至少1个,每个条件均为真时,结果返回真。

    这里用了2个条件,第一个条件是字符串含有"【"("【"字符是日更和点评模板7个特征字符串的两个公共特征之一),第二个条件是字符串不含“【我的点评&建议】”。

    目标是筛选出除“【我的点评&建议】”之外的其他6个特征字符串。“【我的点评&建议】”不需要统计,同时它字数较多时会导致表格行高不一,界面不美观,因此在这里直接剔除。

    3、AND逻辑判断条件之一
    第一个AND逻辑判断条件是 FIND("【",聊天记录!A2) > 0,FIND函数的形式如下:
      FIND(find_text, within_text, [start_num])
    该函数返回一个字符串(find_text)在另一个字符串(within_text)中出现的起始位置(区分大小写)。当字符串多次出现时,可以指定起始位置(start_num),该参数可选,缺省时默认为1。

    该逻辑判断条件是在"聊天记录!A2"里查找字符“【”,当“聊天记录”工作表的A2单元格中为日更或点评记录时,除非用户删除了,“【”一定在里面,那么 FIND("【", 聊天记录!A2) 返回的位置为1,此时1>0,条件为真,否则为假,能够筛选日更和点评记录。

    4、AND逻辑判断条件之二
    第二个AND逻辑判断条件是 LEFT(聊天记录!A2, 9) <> "【我的点评&建议】",LEFT函数的形式如下:
      LEFT(text, [num_chars])
    该函数从一个文本字符串(text)的第一个字符开始返回指定个数(num_chars)的字符。如果省略 num_chars,则缺省值为 1。

    LEFT(聊天记录!A2, 9)返回“聊天记录”工作表的A2单元格内容左边的9个字符,当其结果不等于“【我的点评&建议】”时为真。与第一条件求逻辑与时,就是含"【"但不含“【我的点评&建议】”的单元格满足要求。

    5、IF函数条件为真的返回值
    当满足含"【"但不含“【我的点评&建议】”的单元格时,IF函数返回值为SUBSTITUTE(聊天记录!A2," ","")。SUBSTITUTE函数的形式如下:
      SUBSTITETE(text, old_text, new_text, [instance_num])
    该函数将字符串的部分字符串(old_text)以新字符串(new_text)替换。参数instance_num 用来指定以新字符串替换第几次出现的旧字符串,省略时表示替换掉所有的旧字符串。

    这里主要是为了避免多余空格影响后面的处理,SUBSTITUTE(聊天记录!A2, " ", "") 将“聊天记录”工作表的A2单元格内容中的空格全部替换为空。

    6、IF函数条件为假的返回值
    当不满足含"【"但不含“【我的点评&建议】”的单元格时,IF(AND(…), SUBSTITUTE(…) , 0) 函数的value_if_false参数设置为0。

    7、函数错误处理
    IFERROR函数的形式如下:
      IFERROR(value, value_if_error)
    该函数第一个参数为错误值, 包括以下错误类型:#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?或 #NULL!。第二个参数是出现错误时,设置的值。

    前面的5个函数当出现错误时,IFERROR(IF(…), 0)函数来屏蔽错误值,将value_if_error参数设置为0,使得查询结果看起来非常干净,也方便后续处理。

    至此,聊天记录的粗加工介绍完毕,结合实例来进行Excel函数的应用更容易理解。加工成果如下:


    聊天记录粗加工

    相关文章

      网友评论

        本文标题:用Excel帮简小哥在聊天记录中自动统计数据解读(一)

        本文链接:https://www.haomeiwen.com/subject/wizcectx.html