gpt4 book ai didi

excel - 在excel中计算不同的值 - 频率函数

转载 作者:行者123 更新时间:2023-12-04 20:20:46 27 4
gpt4 key购买 nike

我的任务是计算 excel 列中不同字符串的数量。后来通过 Google 快速搜索得到以下公式 here :

=SUM(IF(频率(匹配(B2:B10,B2:B10,0),匹配(B2:B10,B2:B10,0))>0,1))

考虑数据:

一个

C
D
一个


C

现在,match 函数将返回一个数组(因为第一个参数是一个数组):

1
2
3
4
1
2
7
3

到目前为止,一切都很好。我不明白 FREQUENCY 函数在这里是如何工作的,特别是它如何处理被复制的 bin(例如 bin 1 在上述数据中被复制)。频率函数的结果是:

2
2
2
1
0
0
1
0
0

谢谢

塔拉斯

最佳答案

编辑 :我意识到您的解决方案是如何工作的 - 已修改以反射(reflect)这一点。

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 的数量,那么您应该得到不同字符串的数量。

关于excel - 在excel中计算不同的值 - 频率函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1425289/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com