编辑:我意识到您的解决方案是如何工作的 - 修改以反映这一点。
FREQUENCY 正在搜索数组中从您的 bin 中搜索条目。这是它的工作原理:
搜索数组:1 2 3 4 1 2 7 3
垃圾箱:1 2 3 4 1 2 7 3
Bin 1 => 有两个 1 => 2
Bin 2 => 有两个 2 => 2
Bin 3 => 有两个 3 => 2
Bin 4 => 有一个 4 => 1
Bin 1 重复 => 1 已计数 => 0
Bin 2 重复 => 2 已计数 => 0
Bin 7 => 有一个 7 => 1
Bin 3 重复 => 3 已计数 => 0
似乎该解决方案正在利用 FREQUENCY 怪癖,也就是说,它不会将同一个 bin 计数两次,因为您可能期望值为 1 的第二个 bin 也非零。但这就是它的工作原理——因为它只会计算第一个 bin 而不是重复 bin 的出现次数,所以值大于零的行数将为您提供不同条目的数量。
这是您可能会发现有用的替代方法。它可用于计算不同值的数量:
假设您的字符串范围是 B2:B10。在另一列中填写
=(MATCH(B2,B$2:B2,1)-(ROW(B2)-ROW(B$2)))>0
当您向下复制时,该行应该会发生变化,因此第二行应该是,例如:
=(MATCH(B3,B$2:B3,1)-(ROW(B3)-ROW(B$2)))>0
如果当前行包含字符串的第一个实例,这表示 TRUE(如果你给它几分钟,你应该能够弄清楚它在做什么)。因此,如果您使用 COUNTIF() 计算 TRUE 的数量,那么您应该得到不同字符串的数量。