【问题标题】:How to make simple summary variable in Excel?如何在Excel中制作简单的汇总变量?
【发布时间】:2016-05-24 14:34:34
【问题描述】:

我正在开展一个项目,我们正在分析来自世界各地的人们的对话开启者的心理维度。 Here 是我正在使用的一个非常简单的版本。

我想为每个国家/地区创建一个平均维度评级的简单汇总变量。例如,我需要什么宏、公式或函数来为 A 国的平均敌意创建一个变量?

实际上,我有数百个国家,所以它必须是一个宏观的说法:对于来自 X 国家的开局者的每个敌意评级,将这些评级相加并除以来自 X 国家的项目数量以创建变量 CountryX_AvgHostility .

【问题讨论】:

  • 你会使用 AVERAGEIF()/AVERAGEIFS()。
  • 要找到您的初始国家/地区数据集,您将复制国家/地区列并删除所有重复项。

标签: excel excel-formula summary


【解决方案1】:

如果您的输出表是这样的(例如在 Sheet2 上):

   A              B
Country     Avg. Hostility
   A             ###
   B             ###
   C             ###

B2中的公式可以是:

= sumproduct(Sheet1!$C:$C, --(Sheet1!$B:$B = Sheet2!$A2)) / countif(Sheet1!$B:$B, Sheet2!$A2)

这个公式假设:

  • 您在上图中发布的表格在 Sheet1 中。

    • 在您的原始表格中,国家/地区位于 B 列中。
    • 在您的原始表格中,敌意位于 C 列。
  • 结果表在 Sheet2 中。

作为附注,sumif() 也可以这样做。如上所述,Averageif() 可能更简单。

编辑:您应该像 Scott 在下面的 cmets 中描述的那样使用 Averageif(),它的计算速度会更快。

把它变成相同的格式:

=averageif(Sheet1!$B:$B, Sheet2!$A2, Sheet1!$C:$C)

【讨论】:

  • FWIW SUMPRODUCT() 是一个数组公式,应该避免完整的列引用,因为计算是指数的。 AVERAGEIF() 不是数组公式,所以=AVERAGEIF(B:B,"A",C:C) 是可以接受的。
  • @ScottCraner 你是对的,我猜sumproduct / countif 现在是 AVERAGEIF 之前的遗物......但是感谢您指出这一点,我完全忘记了 AVERAGEIF
  • 如果你想把数学分开使用 SUMIF() 而不是 SUMPRODUCT()。它再次避免了数组公式。 SUMIF(B:B,"A",C:C)/COUNTIF(B:B,"A")
  • 哦,我明白了...另一个问题,SUMIFS 是数组公式吗?我开始怀疑我对 SUMPRODUCT 的大量使用(尽管我通常定义一个有限的范围)
  • No SUMIFS() 不是数组公式。我也倾向于过度使用 sumproduct。现在我先尝试使用其他 SUMIF() 或 COUNTIF() 中的任何一个,然后再转到 SUMPRODUCT()。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-21
  • 1970-01-01
  • 2020-10-09
  • 1970-01-01
  • 1970-01-01
  • 2019-06-01
  • 1970-01-01
相关资源
最近更新 更多