根据列B中标准的移动范围计算列A中的唯一值

好的,这是我的第一个问题,希望我能解释清楚。

本质上,我想计算列A中唯一值的数量,但是从列B中具有落在指定范围内的值的子集中。

这是一个例子:

ColumnA ColumnB potato 29.1 potato 29.7 potato 30.3 potato 31.0 bean 31.6 apple 32.2 apple 32.8 bean 33.5 bean 34.0 apple 34.3 potato 35.0 Count b/w 29-31: 1 Count b/w 30-32: 2 Count b/w 31-33: 3 Count b/w 32-34: 2 Count b/w 33-35: 3 

换句话说,我想知道每个范围内有多less个独特的项目(如B列所指定的),我想通过一系列重叠的范围来进行下去。

到目前为止,我所能想到的最好的方法是计算每个范围内logging总数的COUNTIFS公式。 例如:

= COUNTIFS(B1:B11, “> = 29”,B1:B11, “<= 31”)

= COUNTIFS(B1:B11, “> = 30”,B1:B11, “<= 32”)

= COUNTIFS(B1:B11, “> = 31”,B1:B11, “<= 33”)

等等…

而这显然甚至没有引用列A.我已经尝试了几个不同的基于类似问题的数组公式,但他们总是解决一个稍微不同的问题,所以我基本上没有成功。

任何帮助非常感谢! 谢谢。

你可以使用这个数组公式:

 =SUM(IF(($B$2:$B$12>=A16)*($B$2:$B$12<=B16),(1/COUNTIFS($A$2:$A$12,$A$2:$A$12,$B$2:$B$12,">=" & A16,$B$2:$B$12,"<=" & B16)))) 

存在和数组公式必须在退出编辑模式时用Ctrl-Shift-Enter确认。 如果正确完成,那么Excel会自动将公式放在公式中。

在这里输入图像说明

它查找B中的数据位于范围之间的所有行,然后使用1 / COUNTIF()来查找唯一值。