好吧,我觉得有点傻,因为两年前我问要在这个公式中添加第二个标准,现在我要添加第三个,我又被难住了。
我希望匹配的三个标准是:
- 我想匹配数据表中 G 列中的状态(在本地表的 $A$2 中列出)。
- 我想匹配数据表中 Q 列中的学校类型(硬编码,在这种情况下为“小学”)。
- 我想匹配数据表中 BF 列中的最大数字。
rank helper 列打破了数据中的任何联系。
因此,报告表中的 D46 将显示会员比例 (BF) 最高的 AZ 小学的名称。D47 将显示会员比例第二高的 AZ 小学的名称,依此类推。
这是我的工作公式,显示了最大的数字和状态:
=INDEX('[DOE Data.xlsx]Data'!$A$2:$A$40000,MATCH(LARGE(IF('[DOE Data.xlsx]Data'!$G$2:$G$40000=$A$2,'[DOE Data.xlsx]Data'!$BF$2:$BF$40000),4),IF('[DOE Data.xlsx]Data'!$G$2:$G$40000=$A$2,'[DOE Data.xlsx]Data'!$BF$2:$BF$40000),0))
现在我想让它也检查学校类型(即“小学”)我尝试了两种方式,但都没有奏效。
首先,我想我会将 IF 函数更改为 IFS 函数并添加另一个条件。没有骰子:
=INDEX('[DOE Data.xlsx]Data'!$A$2:$A$40000,MATCH(LARGE(IFS('[DOE Data.xlsx]Data'!$G$2:$G$4000=$A$2,'[DOE Data.xlsx]Data'!$BF$2:$BF$4000,'[DOE Data.xlsx]Data'!$Q$2:$Q$4000="Elementary",'[DOE Data.xlsx]Data'!$BF$2:$BF$4000),2),IFS('[DOE Data.xlsx]Data'!$G$2:$G$4000=$A$2,'[DOE Data.xlsx]Data'!$BF$2:$BF$4000,'[DOE Data.xlsx]Data'!$Q$2:$Q$4000="Elementary",'[DOE Data.xlsx]Data'!$BF$2:$BF$4000),0)
然后我尝试使用两个 IF 函数:
=INDEX('[DOE Data.xlsx]Data'!$A$2:$A$4000,MATCH(LARGE(IF('[DOE Data.xlsx]Data'!$G$2:$G$4000=$A$2,'[DOE Data.xlsx]Data'!$BG$2:$BG$4000) * IF('[DOE Data.xlsx]Data'!$Q$2:$Q$4000="Elementary",'[DOE Data.xlsx]Data'!$BG$2:$BG$4000),2),('[DOE Data.xlsx]Data'!$BG$2:$BG$4000),0))
仍然没有工作。显然我做错了什么。这两个公式都只给我#N/A。帮助?
我想建议一个数组(CSE)公式,根据三个标准提取多行。
注意
与其使用像这样的“基本”标准(使公式成为硬核),不如更好地使用单元格引用作为标准,这使公式动态化。
并为您提供自由,如果您需要更改标准,则编辑包含标准的单元格,而不是公式。
单元格 A1、B1 和 C1 包含标准。
使用Ctrl+Shift+Enter完成公式,然后填充。
根据需要调整公式中的单元格引用。
:编辑:
这个怎么运作:
在 Helper Column G 中输入值(1 到 5),如随附的屏幕截图所示。
值 1 到 5 支持公式获得 5 个最大值,用作 LARGE 函数的数组。
单元格 A174 中的数组 (CSE) 公式:
使用Ctrl+Shift+Enter完成公式,然后填充。
根据需要调整公式中的单元格引用。