有效地使用COUNTIFS返回不同条件的数据

时间:2015-10-13 09:15:15

标签: excel excel-formula

我正在为每个班级(1级,2级)计算不同类型的回复(Strongly AgreeAgreeDisagree)的回复数量:

Image of my problem

我可以为每个不同的主题(sub 1,sub 2)做一个COUNTIFS。例如,对于子1,用[{1}}来计算来自[1类]的学生人数。我使用公式:

Strongly Agree

但是,这意味着我需要更改每个主题的参考列。

是否有一种更有效的方法,如果我改变主题(单元格A8),例如从子1更改为子2,统计数据会相应地改变?

2 个答案:

答案 0 :(得分:0)

您需要使用MATCH返回主题的列号,然后使用ADDRESSINDIRECT将其作为COUNTIFS的地址进行操作。像这样:

=COUNTIFS($A$2:$A$5, $A10, INDIRECT(ADDRESS(2, MATCH($A$8, $A$1:$C$1, 0))&":"&ADDRESS(5, MATCH($A$8, $A$1:$C$1, 0))), B$9)

MATCH($A$8...)指的是主题单元格,而ADDRESS(2..ADDRESS(5..是您要计算的列表的顶行和底行。

替代方法是添加一个额外的主题列,并且只有一个您想要计算的列。这只需要通过添加其他标准来修改您发布的公式。

答案 1 :(得分:0)

您可能需要考虑unpivoting然后从结果表中构建一个新的PT,其中ROWS为Row上面的列,VALUES为Value of Value:

SO33098690 example