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

Count unique values in column A based on a moving range of criteria in column B

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

本质上,我想计算 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           

换句话说,我想知道每个范围内(由 B 列指定)有多少 unique 项目,我想通过一系列将其进行下去重叠范围。

到目前为止,我能想到的最好的方法是计算每个范围内的记录总数的 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:$B>=A16)*($B:$B<=B16),(1/COUNTIFS($A:$A,$A:$A,$B:$B,">=" & A16,$B:$B,"<=" & B16))))

是数组公式,退出编辑模式时必须用Ctrl-Shift-Enter确认。如果操作正确,那么 Excel 会自动将 {} 放在公式周围。

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