Microsoft Excel-根据成对列表创建二维表

Microsoft Excel-根据成对列表创建二维表

我想就以下 Excel 问题寻求帮助:我正在解释一份问卷的结果,所以我有一对值。第一列包含一个类别,比如说 A、B、C,而第二列包含 1-3 的评级。所以我有这样的数据:

类别 评分
A 2
A 1
2
C 3

你懂我的意思。

我想计算一下每个类别有多少人给出了具体的评分。

在这种情况下,预期的解决方案将是这样的:

X 评分 1 评分 2 评分 3
A 1 1 0
0 1 0
C 0 0 1

我尝试使用 COUNTIF,但似乎无法完全正确获得条件。我宁愿避免使用辅助单元格,但如果没有办法,我可以使用它们。

答案1

您还可以尝试 Power Query。

  1. 选择数据范围,右键单击它>从表/范围获取数据。

在此处输入图片描述

  1. 选择 2 列 >“转换”选项卡 >“分组依据”,设置Advanced并选择这两列作为分组。新列称为数数默认。操作是“计数行”。

在此处输入图片描述

3.对评级列进行排序。

  1. 选择计数列和评级列 > 转换选项卡 > 数据透视表列。选择数数列作为值列。

在此处输入图片描述

在此处输入图片描述

  1. 然后单击文件>关闭并将表格加载到一个工作表中。

答案2

使用公式,您可以使用以下两个:

=UNIQUE($A$2:$A$5)

=SUM(  ($A$2:$A$5=$J2) * ($B$2:$B$5 = VALUE( RIGHT(K$1, LEN(K$1)-6)) )  )

第一个位于标题下第一列的单元格中,X它将SPILL根据需要进行设置。

第二个放在其余单元格中。将其放在下一列,公式旁边UNIQUE(),然后复制并粘贴到其余单元格中。

它使用两个条件,即该行的“X”值是数据表中“类别”列的每一行的值,并返回一个TRUE/FALSE值数组。

第二个条件使用字符串构建技术从每个列标题中删除单词,rating只留下单词后面的数字内容字符串,然后将其类型更改为数值,而不是字符串。然后将其与数据表“评级”列中的每个数值进行比较,返回其自己的TRUE/FALSE值数组。

因此,这些数组没有用处。但是对它们执行一个需要它们是数值的操作,Excelcoerce就会将它们都更改为值数组。然后将这两个数组相乘,返回一个数组,该数组的大小为数据表中的行数,其中任何满足其单元格条件的行1/0的值为,并且(1100=0, 0另外三种可能性是:1=0、0*0=0。

SUM()然后获取单个数组并计算各个值的总和,返回数据表中符合其单元格条件的对的数量。

但是,如果您拥有大量数据集,或者数据集经常更改,Power Query 方法可以解决许多繁琐的事情,例如确保您的“评级”单元格公式在输出中填充足够的行,而不是太少或太多。有很多方法可以处理这些平凡的事务,但 PQ 可以让您始终精确匹配并在单个命令中更新。它也很乐意从文件中读取数据,即使该文件是这个,但如果您的数据来自一般的 CSV 文件或 PDF 表单的数据文件,PQ 也会为您处理从那里获取数据。它对于自动化来说是杀手级的,这种使用绝对是“初学者和他的鼠标”的工作。在知识方面绝对没有什么特别的。我自己的第一次使用就是这样,读取另一个 Excel 文件并对数据进行几个步骤并将其输出到表中。使用报告范围内的公式从该输出中提取信息更难。

答案3

否则,您可以使用简单的 COUNTIFS:

假设您的数据表从 A1 开始并带有标题:

=COUNTIFS($A$2:$A$5,"A",$B$2:$B$5,1)

相关内容