对第一列与模式匹配的所有行求和

对第一列与模式匹配的所有行求和

我从 Google Analytics 导出了一些数据,希望将它们分组为更小的块。以下是我导出的指标。括号中是我想在将页面分组时对每个指标列执行的计算。

Users (sum), Avg. Session Duration (avg), Bounce Rate (avg), Pageviews (sum), Goal Completions (sum), Page Value (avg)

我对所有这些数据进行细分的维度是Landing Page。在这个大数据转储中,有 15 个不同的子域。我想将每个子域的登录页面一分为二,如下所示:

www.example.com                      <RAW DATA FOR HOME PAGE>
www.example.com/everything-else      <AVG & SUM DATA OF METRICS ABOVE>
sub1.example.com                     <RAW DATA FOR HOME PAGE>
sub1.example.com/everything-else     <AVG & SUM DATA OF METRICS ABOVE>
sub2.example.com                     <RAW DATA FOR HOME PAGE>
sub2.example.com/everything-else     <AVG & SUM DATA OF METRICS ABOVE>

因此,如果行是关于子域主页的,我们将数据保留在新表中。如果是内部页面,我希望将这些数据分组在一起,对每列求和/求平均值。

我认为我需要使用类似 VLOOKUP 之类的工具来检查 (1) 字符串的第一部分是否匹配以及 (2) 查看 .com/ 之后是否有任何内容。

但这很困难。

答案1

您的问题有点不清楚如何让子域与数据相对应(是在一个表中,还是多个表中?),而且我不确定您所说的 RAW 数据是什么意思。但是,您的解决方案可能如下所示:

由于您想关闭右侧以提供不同的输出,您应该尝试以下操作:

=if(right(a2,4)=".com",[get raw data], [get avg data])

这将允许您在两者之间切换。“[获取原始数据]”或“[获取平均数据]”的方式取决于数据的导入方式。就我个人而言,我会将上述“if”语句放在每列中,与数据列相对应,如果您不希望数据显示原始数据(再次不确定这是什么),我会将“[获取原始数据]”设置为“”。这将使其空白。您可以在获取原始数据中使用 vlookup,该 vlookup 使用 COLUMN()(当然,为站点名称列偏移添加一个)函数来识别您所在的列,并从 vlookup 表中提取该列。

再次更加清晰,我可以给你一个更好的答案,但我认为你正在看的是这样的:

=IF(RIGHT(A1,4)=".com",VLOOKUP(A1,WHEREEVER!A:B,column()+1,FALSE),VLOOKUP(A1,everythingelse!A:G,COLUMN()+1,FALSE))

编辑 我对此进行了更多的思考。对于您的计算,对于每一列,您可能希望用 sumif() 替换上面的 vlookup,它看起来将如下所示:

=IF(RIGHT(A1,4)=".com",[get RAW data],sumif(sourcedatatable!a:a,=a1,sourcedatatable!b:b))

相关内容