使用Excel公式IF及IFERROR统计分析URL的PV与UV

Posted by Hello Bytes on January 30, 2022

最近进行了一项推广活动,给每个用户发放一个推荐码,然后基于百度统计收集推荐码的使用情况。

用到的几个函数

FIND

FIND函数用于查找字符子串。如果找到了子串,并返回子串的位置。

其函数签名为:

FIND(find_text,within_text,start_num)
  • find_text要查找的文本,如”?p_code=”
  • within_text是包含要查找文本的文本,即从within_text中找find_text
  • start_num用于指定开始进行查找的字符。within_text 中的首字符是编号为 1 的字符。如果省略 start_num,则假定其值为 1。

示例

FIND("?p_code=",B3,1)

如上所示,表示要从B3这个单元格式,查找子串”?p_code=”,从第1个字符串开始查找。如果找到,则返回子串“?p_code=”的位置。

公式说明

  • 如果 find_text 为空文本 (“”),则 FIND 会匹配搜索字符串中的首字符(即编号为 start_num 或 1 的字符)。
  • Find_text 不能包含任何通配符。
  • 如果 within_text 中没有 find_text,则 FIND 返回错误值 #VALUE!。
  • 如果 start_num 不大于零,则 FIND 返回错误值 #VALUE!。
  • 如果 start_num 大于 within_text 的长度,则 FIND 返回错误值 #VALUE!。

IF函数的官方手册可以从这里查看

IF

IF负责进行逻辑判断,并根据逻辑判断的结果,返回对应的值。此函数支持3个参数。

其函数签名为:

IF(logical_value,value_if_true,value_if_false)

参数说明:

  • logical_value为要测试的表达式或值
  • logical_value为真时的返回值
  • logical_value为假时的返回值

示例

IF(FIND("?p_code=",B3,1)>0,1,0)

如上示例所示,表达式的意在执行这个逻辑:FIND("?p_code=",B3,1)>0为真时,返回1,否则返回0

IF函数的官方手册可以从这里查看

IFERROR

此函数的作用为,在预知可能发生错误的情况下,显示一个特定的结果。

其函数签名为:

IFERROR(value, value_if_error)

参数说明:

  • value,必需参数,用于检查是否存在错误的参数(表达式),value在计算过程中可能会产生一个错误,比如这个表达式3/B1,如果B1单元格的值为0,则会产生一个#DIV/0!的错误。
  • value_if_error 当value参数计算时出现了错误时,此公式的返回值

value的计算过程正常,未出现错误时,则返回公式value的值。

IFERROR函数的官方手册可以从这里查看

获取网站被访问的URL列表

百度统计提供了指定时间段内,访问URL的数据汇总。

获取路径为:网站的统计首页 => 来源分析 => 全部来源。然后从右上角选择下载,即可得到一份关于所有被访问URL的csv文件。

csv示例

CSV文件数据示例。

基于这份CSV文件,我们可以统计所有的特定邀请码的PV和UV

计算推荐码的PV

先直接输出公式,如下所示:

=IFERROR(IF(FIND("?p_code=",B2,1)>0,C2,0),0)

直接套用上面的函数,从最里层往外一层层剥开就是:

  • B2单元格的内容中查找?p_code=
  • 如果找到了,是返回单元格C2的值,找不到则返回0
  • 如果检查FIND函数,则会发现,IF函数走不到返回0的逻辑,因为如果FIND函数无法找到时,会出错并返回#VALUE!
  • FIND出错时,被IFERROR函数接住,返回0

串起来,这个逻辑就是:在B2单元格中找?p_code=,找到就返回单元格C2的值,否则就返回0

如上图所示,百度CSV文件导出时,C2单元格就是此URL的PV的值。

看懂了PV的计算,UV的计算就很好理解了,只是返回的时候,换了一个单元格的值。

计算推荐码的UV

同样先直接输出公式,如下所示:

=IFERROR(IF(FIND("?p_code=",B2,1)>0,D2,0),0)

直接套用上面的函数,从最里层往外一层层剥开就是:

  • B2单元格的内容中查找?p_code=
  • 如果找到了,是返回单元格D2的值,找不到则返回0
  • 如果检查FIND函数,则会发现,IF函数走不到返回0的逻辑,因为如果FIND函数无法找到时,会出错并返回#VALUE!
  • FIND出错时,被IFERROR函数接住,返回0

串起来,这个逻辑就是:在B2单元格中找?p_code=,找到就返回单元格D2的值,否则就返回0

如上图所示,百度CSV文件导出时,D2单元格就是此URL的UV的值。