【问题标题】:Excel - Cell left of the median celExcel - 中位数左侧的单元格
【发布时间】:2013-05-29 09:24:58
【问题描述】:

我在 excel 中有一个数组:C2:C20。我想找到具有中位数的单元格,然后在 A 列中找到与该行相对应的单元格的值。数组中的某些单元格可能不包含任何内容。我该怎么做?

编辑:
该表是关于观察的。 A 列是关于观察的名称。

对不起丹麦语。
Hyppighed = 频率
Summeret hyppighed = 总结频率

示例表:

使用建议函数时的结果表

【问题讨论】:

  • 数组C2:C20和你想要从A列得到的值有什么关系?另外,我认为表格的样本和预期的输出会很有用。
  • 在您的示例中,C2:C20 中只有 4 个值 - 这是您想要 MEDIAN 的位置吗?鉴于如何在 excel 中计算中位数,可能没有“具有中位数的单元格”,例如用你的例子=MEDIAN(1,3,19,17) = 10 - 你的例子应该是什么结果?

标签: excel median


【解决方案1】:

这将返回在 C2:C20 中找到的第一个中值,并返回 A 列中的相应单元格。

=INDEX(A2:A20,MATCH(MEDIAN(C2:C20),C2:C20,0),1)

如果您确切知道要查找的内容,则可以将 MEDIAN(C2:C20) 替换为您在 C 列中包含的数组中搜索的任何内容。如果它是您要搜索的字符串,请在文本周围使用“”。

编辑: 您的数据集得到 N/A 的原因是因为没有与中位数完全匹配。为了解决这个问题,如果您想要一个高于或等于中位数的值,则需要将 0 替换为 1;如果您想要一个低于或等于中位数的值,则需要将 -1 替换。

试试这个,如果没有匹配,它会给你下一个最高的中值。

=INDEX(A2:A20,MATCH(MEDIAN(C2:C20),C2:C20,1),1)

为了进行索引查找,上述使用中值函数的方法较差,

barry houdini 在下面提出了一个很好的建议,无论排序如何,都会选择可用的中值或下一个最低值...

=INDEX(A2:A20,MATCH(SMALL(C2:C20,INT((COUNT(C2:C20)+1)/2)),C2:C20,0)) 

或者,如果您想在中位数不可用的情况下选择最高的,而不是您可以选择的最低的

=INDEX(A2:A20,MATCH(LARGE(C2:C20,INT((COUNT(C2:C20)+1)/2)),C2:C20,0))

【讨论】:

  • 第三个参数为 1 的 MATCH 需要 C2:C20 按升序排列,所以我认为你不能保证它会起作用
  • 一种解决方案是通过选择单元格 A1 shift+单击单元格 F20 来保持升序,然后执行 CTRL+T 将数据放入表中,然后通过单击确保 C 列处于升序至少在进行中位数搜索时,小箭头并选择升序。
  • 而不是使用 MEDIAN(C2:C20) 您可以使用此公式 - =SMALL(C2:C20,INT((COUNT(C2:C20)+1)/2)) 如果 C2:C20 中有奇数个值或“中间两个“如果值的数量是偶数 - 你可以将它插入到原始的 INDEX/MATCH 函数中,第三个参数为零,因为总会有一个完全匹配,即=INDEX(A2:A20,MATCH(SMALL(C2:C20,INT((COUNT(C2:C20)+1)/2)),C2:C20,0)) - 不需要排序
  • 令人惊讶的是,他们首先需要对 1,-1 选项进行升序或降序。使用 -1,1 选项确实使 Median 函数变得逊色,当您只能使用 SMALL 和 LARGE 函数时,为什么还要费心呢?
  • 我已经用 1 到 37 的所有奇数填充了 C2:C20,它返回了正确的列,但是它没有返回正确的行。它返回的中位数是 C11,但通过计算我发现它应该是 C15。这怎么可能?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 2018-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多