excel-formula - MEDIANIF 使用 CSE 并且需要 INDIRECT
问题描述
约束:
- 有一个计算表和一个数据表
- 对数据表中存在的可以有任何名称的数据执行计算;该名称存储在计算表中的一个单元格中(例如,B1
)。
-数据表有 2 个标题行和不确定数量的记录(即包含数据的行)。
- 并非所有行都包含数据,尽管我们已确保所有数据都是有效的数值。
- 保存此数据的特定列存储在计算表中(例如,列T
)。
我知道在包含数据的同一张表中执行计算时,正常的 CSE 解决方案有效,例如,
{MEDIAN(IF(A3:A9999 <= 3, A3:A9999))}
但是,使用INDIRECT
会破坏这种方法:
{MEDIAN(IF(INDIRECT(B1&"!"&T2&"3:"&T2&"9999")<=3, INDIRECT(B1&"!"&T2&"3:"&T2&"9999"))}
这将返回 0 而不是小于或等于 3 的一组数字的中位数。
解决方案
试试下面的公式,需要用CONTROL+SHIFT+ENTER确认...
=MEDIAN(IF(COUNTIF(OFFSET(INDIRECT("'"&B1&"'!"&T2&"3:"&T2&"9999"),ROW(INDIRECT("3:9999"))-3,0,1),"<=3")>0,N(OFFSET(INDIRECT("'"&B1&"'!"&T2&"3:"&T2&"9999"),ROW(INDIRECT("3:9999"))-3,0,1))))
请注意,工作表名称用单引号括起来,以防名称有空格,正如 Scott 已经提到的那样。
推荐阅读
- android - 在 Android 中使用 R8 和 Proguard 时如何保护数据模型类免受逆向工程的影响?
- react-native - Child Flatlist 不接受水平
- heroku - 验证 Heroku 配置变量的存在和正确性
- python-3.x - 如何根据功能(自动)按属性查看或隐藏字段?
- c++ - 如何防止修改数组数据?
- sql-server - 调查问题和答案的数据库模式
- jquery-ui - Datepicker 在检查代码时不起作用但没有错误?
- r - 如何修复 R 包问题 Google Cloud?
- r - 闪亮的 actionButton 删除数据表中的行(带代码)
- javascript - querySelectorAll 找不到具有自定义属性的元素