基于域表的问卷调查分数总和

时间:2018-12-07 04:44:55

标签: excel excel-vba excel-formula

我创建了一个调查表,其中包含大约100个问题。要求参与者在线填写,每次都将其随机排序。这些项目分为6个域,为了便于理解,我们将它们称为“域1-6”。

我让他们在一个称为“信函”的特定表中键入,格式如下:

  

(一个例子)

     

问题号|域

     

1 |域A

     

2 |域C

     

3 |域A

     

4 |域B

     

5 |域A

     

6 |域C

我使用Google表单生成了受访者RAW数据的电子表格,该电子表格将帮助我在单独的列中为每个项目标记RAW得分:

  

(一个例子)

     

提交ID |问题1 |问题2 |问题3 |问题4 |问题   5 |问题6

     

参与者1 | 2 | 3 | 5 | 1 | 2 | 4 |

     

参与者2 | 5 | 4 | 5 | 3 | 5 | 1 |

     

参与者3 | 1 | 1 | 1 | 2 | 2 | 2 |

接下来我要做的是生成另一个表,该表汇总每个参与者的域总数。因此,从上面的示例中,我需要将1,3,5作为域A,将4作为域B,将2和6作为域C:

  

(一个例子)

     

参与者1

     

|域A |域B |域C |

     

总计| 9 | 1 | 7 |

最困难的事情是找到适当的方法来启动此过程。谁能指出我正确的方向?公式或VBA都可以。谢谢!

1 个答案:

答案 0 :(得分:0)

如果您能够创建帮助行,则可以完成此操作。

首先,我创建了一个表以将问题链接到域。在我的示例中将其命名为“信件”。该表在某种程度上是答案的关键。从问题的描述中,您需要一个类似这样的表来确定哪个问题与您要使用的域/类别/积分系统相关联。

然后,我为第9行中显示的调查结果创建了一个帮助行。这在单元格B9中具有=INDEX($B$3:$C$8,MATCH(B$10,$B$3:$B$8,0),2)作为将问题引用到域的代码。这在示例中的问题上方,但是如果需要,您可以将其放在单独的纸上。

然后您可以对它们进行总结。

=SUMPRODUCT(SUMIFS(INDIRECT(MATCH($E3,$A:$A,0)&":"&MATCH($E3,$A:$A,0)),$9:$9,F$2))

enter image description here 此公式使用MATCH内的INDIRECT返回一个整数,用作动态行引用。如果参与者名称不是唯一的,这将失败。 SUMIFS内部的SUMPRODUCT可以将行像数组一样对待,而无需使用数组公式。因此,您可以重新创建我拥有的示例,然后根据需要复制/粘贴或拖放公式。

一种不同的方法可能是您要先汇总问题的要点,然后再进行从问题到领域的转换。这样,您就不必操纵原始数据,而只需处理报告。实际上,这可能是更好的方法。

编辑:添加了有关公式和示例的信息。