excel - Excel:使用中位数,如果在数组公式中给出的结果与手工挑选的单元格不同
问题描述
我正在计算 B 列中值的中位数,如果 A 列中相应行中的动物是牛、猪或鱼。
.
如您所见,所有牛的值为 1,两只猪的值为 10,一条鱼的值为 100,有些单元格没有值。选择这些值以便于计算。
对于我期待的 MEDIANs:
奶牛:1(3 头奶牛的值为 1)
猪:10(2 头猪的价值为 10)
鱼:100(1 条鱼价值 100)
我正在使用数组公式:
{=MEDIAN(IF(A1:A9=D2,B1:B9))}
另一种选择是手动放入单元格进行计算,但我不想这样做,因为我的真实数据集更大并且一直在变化:
=MEDIAN(B1,B4,B7)
只要该类别的 B 列中有 1 个以上的值,数组公式就可以很好地工作。现在我的问题是,有时我只有一个值(例如 C 类)。结果不如预期,但是:
鱼:0(但是:1 条鱼的价值为 100!?)
发生了什么以及如何解决?
解决方案
斯科特给出了一个可行的建议,它很优雅,因此是我正在寻找的。解决方案是排除空单元格。
而不是A1:A9=D2
在 IF 做:(A1:A9=D2)*(B1:B9<>"")
所以完整的公式变成了:{=MEDIAN(IF((A1:A9=F2)*(B1:B9<>""),B1:B9))}
推荐阅读
- javascript - 如果参数为负,我如何返回错误?
- typescript - debug-vuejs-from-vs-code:在 chrome 中调试 vueJS 应用程序时未绑定断点
- node.js - Azure Function Node 应用 NPM 依赖项未解析
- java - JPackage 不生成工作 exe 和 bugs 文件夹
- java - 未能执行目标 org.springframework.boot:spring-boot-maven-plugin:2.5.5:run (default-cli)
- django - 英国的正确 LANGUAGE_CODE 是什么?
- c++ - 在 std::cin 中一次输入多个参数会导致程序失败 - 为什么?
- python - 在anaconda中创建环境时出错
- pdf - plotly pdf导出更改字体样式
- selenium-webdriver - Mac 中用于文件上传的机器人类