【问题标题】:counting numbers in corresponding range计数相应范围内的数字
【发布时间】:2017-06-16 22:25:47
【问题描述】:

假设我们有以下数字

49  57  38  73  81
74  59  76  65  69
54  56  69  68  78
65  85  49  69  61
48  81  68  37  43
78  82  43  64  67
52  56  81  77  79
85  40  85  59  80
60  71  57  61  69
61  83  90  87  74

让我们假设我们有以下班级间隔

Lower limit  upper limit
35              41
42              48
49              55
56              62
63              69
70              76
77              83
84              90

我想要的是计算给定间隔之间出现了多少个数字,例如在 [35-41] 之间,在 excel 中我尝试了以下范围

=COUNTIF($A$1:$E$10,"<="&J3)-COUNTIF($A$1:$E$10,"<"&I3)

其中 j3 和 I3 是上限和下限,我认为这个公式是正确的,例如让我们考虑以下数字

1    2   3  4  5  6   7  8  9  10  11  12

我们想知道有多少个元素在 7-12 的范围内,有 12 个小于或等于 12 的数,以及 6 个小于 7 的数,所以它们之间的差是 6 个数,所以我们有

7 8 9 10 11 12

所以我认为我的公式是正确的,对吧?

【问题讨论】:

  • 问题是什么?如果只是您的公式是否正确,那么“手动”是否可以或多或少地轻松检查?如果您想知道如何改进公式,那么最好将其提交给 codereview.stackexchange.com 。另一方面,如果您怀疑您的代码有问题,那么请举例说明它没有按预期工作!
  • 如果I3是下限,应该不是COUNTIF($A$1:$E$10,"&gt;="&amp;I3)
  • @PaulDixon 不,它是从数字计数中减去&lt;=J3,公式可以,COUNTIFS 可能是更干净的解决方案。

标签: excel frequency-distribution


【解决方案1】:

使用如下数据:

I2中输入:

=COUNTIF(A$1:E$10,"<=" & H2)

并在 I3 中输入:

=COUNTIF(A$1:E$10,"<=" & H3)-SUM($I$2:I2)

这利用了您的阈值不重叠且没有间隙的事实。

【讨论】:

  • 这也可以使用{=FREQUENCY($A$1:$E$10,$H$2:$H$9)}作为公式数组I2:I9中的数组公式来实现。
  • @AxelRichter 你是对的!在一般情况下,你的方法更好......我发布了我的简单方法来展示如何利用非重叠阈值没有间隙。
  • 你的例子很好。一般来说,使用FREQUENCY 并不好。我只想提一下,Excel 中已经有一个FREQUENCY 函数。
  • 我知道频率函数(实际上我正在教我的学生 excel),我正在尝试给他们简单的例子来理解
  • @datodatuashvili 给您的学生举几个例子可能很有价值....感谢您的反馈。
猜你喜欢
  • 1970-01-01
  • 2017-08-06
  • 1970-01-01
  • 2021-07-02
  • 1970-01-01
  • 1970-01-01
  • 2013-07-18
  • 1970-01-01
  • 2020-11-09
相关资源
最近更新 更多