从 Sumproduct(countif) 计算特定值
Counting Specific Values From Sumproduct(countif)
我已经在这个地方生闷气了一段时间,直到现在我已经能够找到我遇到的几乎所有问题的答案。我觉得我在寻找所需答案的正确道路上,但我似乎无法找到正确的方法。
下面是我想做的一个简单示例的屏幕截图。
在这个例子中,我有 4 个人,他们选择了他们最喜欢的前 5 种颜色(我很不擅长生成这样的假数据,所以请原谅颜色选择哈哈)。最终,我想知道有多少人匹配了所有 5 种颜色(不必按相同顺序),有多少人匹配了 4、3、2 等。理想情况下,数据集的右侧是我想要的我要查看的数据 (H2:M11)。
我已经采用了多种方法来解决这个问题,但都没有取得太大的成功。看起来最接近的两种方法是:
查看失败的想法 1) 我想写一个公式,基本上说“计算 sumproduct(countif(Colors from Person 2,3, and 4 : Colors from Person 1)) 等于 5 的次数(在此示例中为零)。我将复制 4 种匹配颜色的公式,3 种、2 种,依此类推。然后求和和平均。
公式本身有缺陷,returns为错误。所以,既然这没有成功......
查看失败的想法 2) 我想过制作一个 "heat map" 样式 table,我可以让第 1 到第 4 个人在行和列上,然后做一些我知道可以像 sumproduct(countif( B4:F4,B5:F5)) 对于第 1 个人与第 2 个人(答案 3)。唯一的区别是我必须使用索引(匹配)通过使用列名来识别正确的行(参见示例)。拖动所有 16 (4x4) 个单元格,然后使用 countif(F19:I22,"5") 来计算每个单元格的数量。不幸的是,在 countif 中使用 index(match) 会导致 #REF!
Simplistic Example Data
如果任何一个概念都能真正发挥作用,我可以操纵其余的。我知道我可以做热图设计并手动更改每列的公式,但我的真实数据超过 100 行。 VBA 也欢迎其他选择。
如果我的描述不是很清楚,我深表歉意。如果它令人困惑,请告诉我,我会尽量弄清楚。谢谢!
继续你失败的想法 2。在第 1 步中使用此数组公式:
=SUM(COUNTIF(INDEX($B:$F,MATCH(J,$A:$A,0),0),INDEX($B:$F,MATCH($I3,$A:$A,0),0)))
作为数组公式,退出编辑模式时需要用Ctrl-Shift-Enter确认,而不是回车。如果正确完成,那么 Excel 将在公式周围放置 {}
。
第 2 步:
=COUNTIFS($J3:$M3,P,$J:$M,"<>" & $O3)
我已经在这个地方生闷气了一段时间,直到现在我已经能够找到我遇到的几乎所有问题的答案。我觉得我在寻找所需答案的正确道路上,但我似乎无法找到正确的方法。
下面是我想做的一个简单示例的屏幕截图。 在这个例子中,我有 4 个人,他们选择了他们最喜欢的前 5 种颜色(我很不擅长生成这样的假数据,所以请原谅颜色选择哈哈)。最终,我想知道有多少人匹配了所有 5 种颜色(不必按相同顺序),有多少人匹配了 4、3、2 等。理想情况下,数据集的右侧是我想要的我要查看的数据 (H2:M11)。
我已经采用了多种方法来解决这个问题,但都没有取得太大的成功。看起来最接近的两种方法是:
查看失败的想法 1) 我想写一个公式,基本上说“计算 sumproduct(countif(Colors from Person 2,3, and 4 : Colors from Person 1)) 等于 5 的次数(在此示例中为零)。我将复制 4 种匹配颜色的公式,3 种、2 种,依此类推。然后求和和平均。
公式本身有缺陷,returns为错误。所以,既然这没有成功......
查看失败的想法 2) 我想过制作一个 "heat map" 样式 table,我可以让第 1 到第 4 个人在行和列上,然后做一些我知道可以像 sumproduct(countif( B4:F4,B5:F5)) 对于第 1 个人与第 2 个人(答案 3)。唯一的区别是我必须使用索引(匹配)通过使用列名来识别正确的行(参见示例)。拖动所有 16 (4x4) 个单元格,然后使用 countif(F19:I22,"5") 来计算每个单元格的数量。不幸的是,在 countif 中使用 index(match) 会导致 #REF!
Simplistic Example Data
如果任何一个概念都能真正发挥作用,我可以操纵其余的。我知道我可以做热图设计并手动更改每列的公式,但我的真实数据超过 100 行。 VBA 也欢迎其他选择。
如果我的描述不是很清楚,我深表歉意。如果它令人困惑,请告诉我,我会尽量弄清楚。谢谢!
继续你失败的想法 2。在第 1 步中使用此数组公式:
=SUM(COUNTIF(INDEX($B:$F,MATCH(J,$A:$A,0),0),INDEX($B:$F,MATCH($I3,$A:$A,0),0)))
作为数组公式,退出编辑模式时需要用Ctrl-Shift-Enter确认,而不是回车。如果正确完成,那么 Excel 将在公式周围放置 {}
。
第 2 步:
=COUNTIFS($J3:$M3,P,$J:$M,"<>" & $O3)