【问题标题】:SUMPRODUCT ( 1/COUNTIF( range, criteria)). WHY DOES THIS WORKSUMPRODUCT(1/COUNTIF(范围,标准))。为什么会这样
【发布时间】:2022-10-05 04:05:18
【问题描述】:

我需要计算一个范围内有多少不同的值。我通过使用SUMPRODUCT(1/COUNTIF(A2:A37,A2:37))得到了答案,但是我不明白公式,有人可以帮我解释一下吗?

如果我单独执行COUNTIF,结果是0SUMPRODUCT(1/COUNTIF) 有什么帮助?还有,COUNTIF里面rangecriteria是一样的,这是什么意思?我知道range 是我们寻找的地方,criteria 是什么标准,但如果criteria 是整个range,我们如何指定我们在这里寻找的东西?这是如何翻译/工作的?

这是我的示例输入: enter image description here

  • COUNTIF(A2:A37,A2:37) 将计算每个项目在列表中出现的次数。然后1/COUNTIF(A2:A37,A2:37) 将根据计数对每个项目进行分数值。然后将这些小数值相加得到总数,这相当于不同的计数。您可以通过=COUNTA(UNIQUE(A2:A37))微软-365.
  • 它还与隐式交集与动态数组有关。在旧版本的 Excel 中,SUMPRODUCT() 是少数可以克服隐式交集的函数之一。使用 ms365,您可以将其更改为 SUM() 以查看动态数组如何工作和计算。
  • 那么,如果您不知道它是如何工作的,那么您是如何制定该解决方案的?
  • 谢谢@Harun24hr,我也会试试这个公式!
  • 感谢@JvdV 提供的信息,我会对此进行更多研究!

标签: excel distinct countif sumproduct


【解决方案1】:

只需扩展您问题中提供的一些 cmets 以便更好地理解。在这里:Excel dynamic arrays, functions and formulas你可以找到关于的详细解释动态数组隐式拦截以及它是如何通过 Excel 演变而改变的。

SUMPRODUCT (array1, [array2], ...) 可以与单个参数一起使用,在这种情况下,它将 array1 中的所有元素相加,即类似于 SUM 函数 (Excel SUMPRODUCT Function)。例如:SUMPRODUCT({1;2;3}) = 6

笔记:乘法是SUMPRODUCT的默认运算,但您可以使用其他(检查此link)将,替换为相应的运算。例如:SUMPRODUCT({1;2;3}/({1;2;3}))=3(充当COUNT),即1/1+2/2+3/3,但SUMPRODUCT({1;2;3},{1;2;3})=14,即1*1+2*2+3*3

COUNTIF(range, criteria)第一个参数是一个范围,但第二个参数可以是一个数字、表达式、单元格引用或文本字符串,用于确定将计算哪些单元格,它也可以是范围或数组 (Excel COUNTIF function)。如果是这种情况,则为criteria 的每个元素调用COUNTIF 并返回一个数组相同的大小和形状作为criteria。例如,如果以下范围 A1:A4 具有以下值:

|1|
|2|
|1|
|1|

以下表达式将返回:

COUNTIF(A1:A4, 1) = 3
COUNTIF(A1:A4, A1:A2) = {3;1} i.e. 2x1 array
COUNTIF(A1:A4, {1;2}) = {3;1}
COUNTIF(A1:A4, {1,2}) = {3,1} i.e. 1x2 array

笔记: 记得你不能使用第一个输入参数作为数组调用函数,例如:COUNTIF({1;2;1;1}, 1) 返回错误。它成为一个范围。

所以我们可以计算第一个输入参数的每个元素重复了多少次,如下所示:

COUNTIF(A1:A4,A1:A4) = {3;1;3;3} i.e. 4x1 array

现在回到SUMPRODUCT(请记住,只有一个参数,它只是元素的总和):

SUMPRODUCT(COUNTIF(A1:A4,A1:A4)) 
 = SUMPRODUCT({3;1;3;3})
 = 10

A1:A4的每个元素出现的总和

最后:

SUMPRODUCT(1/COUNTIF(A1:A4,A1:A4)) 
 = SUMPRODUCT({1/3;1/1;1/3;1/3})
 = 3*(1/3) + 1 
 = 2

这导致A1:A4 中唯一元素的总数。正如@Harun24hr 指出的那样,它可以在微软 365与:COUNTA(UNIQUE(A1:A4)COUNT(UNIQUE(A1:A4) 因为在此答案的示例中 A1:A4 是数字,但在您的问题(字母)示例中,您使用:COUNTA

【讨论】:

  • 非常感谢大卫,这完全有道理,也很有帮助:)感谢您的时间!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-24
  • 1970-01-01
  • 2016-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多