2016-01-03 36 views
0

我在GoogleDrive中创建了一个可下载的工作表来显示我的问题。根据多个条件查找MAX值Excel

https://docs.google.com/spreadsheets/d/1O8fnWQyTFcsqfHAsmpiY4o-n2_xbC-yue2QI4Ww4kSI/edit?usp=sharing

我需要下面的公式,其发现在H1的最大值结合:H1024其小于或等于它增加了在B16

{=MAX(IF(H1:H1024<=B16,H1:H1024, 0))} 

用公式指定的值与该值相邻的单元格必须包含所有列出的单元格范围的元素D1:D10 - 以下公式返回TRUE时,情况如下

=SUMPRODUCT(--ISNUMBER(SEARCH($D$1:$D$10,F1)))=COUNTA($D$1:$D$10) 

下不工作,但说明了什么我想实现

{=MAX(IF(AND(H1:H1023<=B16,E1:E1023="TRUE"),H1:H1023, 0))} 

其中E1包含SUMPRODUCT公式拖累E1023。

在知道一个宏会更好(这将使交易更多的项目可行),但这不是我的选择。

提前欢呼。

回答

2

尝试

=MAX(IF(H1:H1023<=B16,IF(E1:E1023,H1:H1023))) 

它是一个阵列式所以Ctrl键移输入。

数组公式不喜欢AND/OR函数。必须为每个期望的检查链接IF功能。

以这种方式使用IF语句时,不需要false选项。

+1

您的设施使用数组公式留下深刻的印象。 –

+0

@JohnColeman谢谢,确实很赞。 :) –

+0

感谢数组IF结构按照您所说的工作,但您给出的公式不能像文本值那样使用TRUE/FALSE。但是,如果我在力公式中放置一个“ - ”(双重一元),将FALSE返回0,TRUE返回1,这可以根据我的答案使用。感谢您指点我正确的方向 - 我完全卡住 – SteelyDanFan

0

@ScottCraner在我之前到达了那里,但是您也可以在“TRUE/FALSE”列的前面加上“ - ”来强制它为一个数值(1代表真,0代表假)

=MAX(IF(H1:H1023<=B16,IF(--E1:E1023=1,H1:H1023))) 

但是@ScottCraner指出,你可以保持原有范围,所以他的答案应该是不复杂的。