【问题标题】:Get a weighted average of a filtered table获取过滤表的加权平均值
【发布时间】:2016-12-15 13:15:48
【问题描述】:

我正在寻找一种解决方案,该解决方案可以根据动态过滤表为我提供加权平均值。这是我所拥有的:

A 列:网址列表, B栏:数字, C栏:百分比

/page                   100000  20%
/brochures.htm?en       27443   75,30%
/brochures.htm?fr       1656    67,33%
/brochures.htm?it       483     75,00%
/brochures.htm?fr-fr    6       0,00%

我想要的是一个公式,它可以为我提供以“/brochures/htm”开头的页面的加权百分比,在本例中为:74.83%。

我可以用一张中间表做两次,我用它过滤表格 =FILTER(A1:C5;REGEXMATCH(A1:A5;"/brochures.html*")) 然后在第三张表中通过计算加权平均值 =SUMPRODUCT(C1:C5;B1:B5)/SUM(B1:B5) ,但您可以想象,这不是满足我需求的好解决方案。

有人可以帮忙吗?我创建了一个 google 表格,因此您可以轻松了解我是如何达到 74.83% 的。 -> https://docs.google.com/spreadsheets/d/1Q-ydRSOdoGN2wVj7Z4XWglz-0U7pL3_xMeyGdRB2K84/edit?usp=sharing

【问题讨论】:

  • 为了方便我们为您提供帮助,请提供有关您的数据的更多详细信息。我看不到您如何从您提供的数据中获得发布的结果。请阅读How to Provide an Example
  • 添加了一个谷歌表格来帮助你理解@RonRosenfeld ;-)

标签: excel google-sheets weighted-average


【解决方案1】:

对于 Excel。您可以使用数组公式来实现这一点。确保在输入公式后使用 Ctrl + Shift + Enter 而不是仅 Enter

=SUMPRODUCT(IF(LEFT(A1:A5,14)="/brochures.htm",B1:B5,0),C1:C5)/SUM(IF(LEFT(A1:A5,14)="/brochures.htm",B1:B5,0))

我在 Excel 中使用上面的示例数据对此进行了测试,结果为 74.83%。我希望这会有所帮助

对于 Google 表格,这将起作用: =ArrayFormula(SUMPRODUCT(IF(LEFT(A1:A5,14)="/brochures.htm",B1:B5,0),C1:C5)/SUM(IF(LEFT(A1:A5,14)="/brochures.htm",B1:B5,0)))

如果您的本地设置与美国不同,则使用分号 ; 代替逗号 ,

【讨论】:

  • 我刚刚尝试过,但出现错误。 “使用 ctrl + shift + enter”是什么意思:我什么时候应该使用该快捷方式,它有什么作用? @maxhob17
  • 在 Excel 中,不是在键入公式后直接回车,而是使用 Ctrl + Shift + Enter,这将创建一个数组公式,而不是常规公式excel-easy.com/functions/array-formulas.html
【解决方案2】:

我相信,这个公式会有所帮助(仅限 Google 表格):

=QUERY(QUERY(QUERY({A3:C8};"select 'avg', Col2*Col3, Col2 where Col1 like '/brochures.htm%'");"select Col1, sum(Col2)/sum(Col3) group by Col1");"select Col2 Label Col2 ''")

第一个查询在满足条件时选择Col2*Col3, Col2Col1 like '/brochures.htm%'

第二次查询 查找过滤表的加权平均值

第三次查询 仅从第二个查询中获取结果数字

在您的示例中: https://docs.google.com/spreadsheets/d/1Q-ydRSOdoGN2wVj7Z4XWglz-0U7pL3_xMeyGdRB2K84/edit#gid=1380706652


使用这个公式的好处是你只需要引用一次数据,而且你有更多的setting tools with query公式。

【讨论】:

    猜你喜欢
    • 2018-12-21
    • 2018-02-23
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    相关资源
    最近更新 更多