假设我有一定数量的物品:
1 2 3 4 5 4 3 2 1 2 3 4
在单元格列中。我想要做的是计算这个数组中有多少个独特的“项目”:
1 --> 2
2 --> 3
3 --> 3
4 ..> 3
等等。我希望表格看起来像这样:
另外,如果我一开始就不知道数组的所有值,有没有办法实现这一点?我正在寻找一种方法,让 excel 搜索数组,找到一个唯一值,计算该值在数组中出现的次数,然后转到下一个值。
答案1
执行此操作的最佳方法(为了便于设置和刷新)是使用数据透视表。将数据透视表数据设置为值列(带标题),然后按如下所示设置表格。
数据透视表将自动识别唯一值并在一个步骤中为其提供计数。
答案2
为此,您需要该COUNTIF()
函数。它计算范围内符合条件的条目数。
假设您的范围是 Y4 到 Y15,并且您的单个项目是 AA4 到 AA8,那么 AB4 将是:
=COUNTIF($Y$4:$Y$15,AA4)
然后将其复制并粘贴到 AB5、AB6、AB7 等,最终得到:
=COUNTIF($Y$4:$Y$15,AA4)
=COUNTIF($Y$4:$Y$15,AA5)
=COUNTIF($Y$4:$Y$15,AA6)
=COUNTIF($Y$4:$Y$15,AA7)
=COUNTIF($Y$4:$Y$15,AA8)
鲍勃就是你叔叔。
更新:
这是一个更适合您的需求的新系统,但还不够完善。
首先,我们需要对列表进行排序,因此在温度列表旁边的列中(或其他方便的位置),您需要重复输入以下公式(我将取 AA 列):
=SMALL($Y$4:$Y$15,ROW(AA4)-3)
这将找到范围内第 N 个最小数字 - 第 N 个是当前单元格的行号 - 3(因此 AA4 变为 1)。沿页面向下重复此操作将得到 AA5 (2)、AA6 (3) 等。
现在我们可以进行与以前相同的计数,但使用新的数字:
=COUNTIF($Y$4:$Y$15,AA4)
并重复列表。
输出应该是这样的:
1 1 2
2 1 2
3 2 3
4 2 3
5 2 3
4 3 3
3 3 3
2 3 3
1 4 3
2 4 3
3 4 3
4 5 1
现在,如果我们能找到某种方法来减少它,使每个数字只显示一次。