获取依赖于第二列的不同值的百分比

获取依赖于第二列的不同值的百分比

我向人们发了一项调查。其中一个问题问他们的性别,另一个问题问他们是否会头痛。我现在有一个 Excel 文件,我正在尝试分析它。
但我无法计算统计数据。

在此处输入图片描述

我想要计算出患有头痛的人中男性占比是多少,女性占比是多少。

我知道这个概念是
# people that are men AND experience headaches /
# of people that experience headaches

我如何获得这些百分比?

答案1

常规方法countif无法将多个列作为依赖项。请使用SUMPRODUCT

  1. 此公式将计算所有行男性头痛是真的。

    =SUMPRODUCT((A1:A100=1)*(B1:B100=1))
    

    请注意,如果您愿意,可以扩展公式以具有第三个或更多个依赖项 »
    ...*(C1:C100=x)...

    示例输出 = 2

  2. 要获取头痛人数,请使用COUNTIF,因为这里我们只需要查找一列

    COUNTIF(B:B,1)
    

    示例输出 = 6

  3. 现在你只需要把这两个公式结合起来

    =SUMPRODUCT((A1:A100=1)*(B1:B100=1)) / COUNTIF(B:B,1)
    =SUMPRODUCT((A1:A100=2)*(B1:B100=1)) / COUNTIF(B:B,1)
    

    示例输出 = 2/6 = 0,333333 = 33,33 %
    示例输出 = 4/6 = 0,666667 = 66,67 %

    第一个配方适用于男性头痛,第二个配方适用于女性头痛


第一个公式有几种替代方法=SUMPRODUCT((A1:A100=1)*(B1:B100=1)),它们都会给出相同的结果。选择您最喜欢的一种:

  • {=SUM(IF((A1:A100=1)*(B1:B100=1),1))}

  • {=SUM((A1:A100=1)*(B1:B100=1))}

  • {=SUM(N(A1:A100&B1:B100=1&1))}

  • =COUNTIFS(A:A;1,B:B,1)» 在 Excel 2003 中不可用

  • {=SUM((A:A=1)*(B:B=1))} » 在 Excel 2003 中不可用

请注意,其中大多数都是数组公式 {...}使用CTRL++输入SHIFTENTER

来源

答案2

另一种方法是使用AVERAGE这样的函数

=AVERAGE(IF(B2:B100=1,IF(A2:A100=1,1,0)))

已确认CTRL++SHIFTENTER

当 B2:B100 = 1(经历过头痛)时,将根据他们是男性还是女性返回 1 或 0,取平均值即可得出正确的百分比

相关内容