长期潜伏,第一次发帖,爱这里的人。我在这里写了一个复杂的INDEX公式,我真的很接近解决方案。
除了一个问题外,所有方法都有效:我在N(IF(1,ROW()))之后传递给INDEX的数组仍然有很多0。例如,它得到“ {0,0,0,0,22,23,24,0,0)”,因此INDEX传递了“ {54,54,54,54,87,91,78,54,54}” MIN功能。
因此,我的问题。我觉得我真的很接近答案,但是我被卡住了。如果我能以某种方式从数组中删除0,以便仅将“ {22,23,24}”传递给INDEX,那么一切都会在我的工作表中起作用。
感谢您的指导!你们这里有一些非常聪明的人,你们都教过我很多!
=IF($H$9="","",
MIN(INDEX($A$9:$Z$5000,
N(IF(1,ROW($A$1:$A$4991)*(M$3=$H$9:$H$5000)*($X$6=$A$9:$A$5000))),
MATCH($H4&CHAR(10)&CHAR(10)&CHAR(10)&$V$3&CHAR(10)&"(lbs)",$A$8:$Z$8,0))))
答案 0 :(得分:0)
使用MIN(IF())代替构建数组
=IF($H$9="","",MIN(IF((M$3=$H$9:$H$5000)*($X$6=$A$9:$A$5000)*(INDEX($A$9:$Z$5000,0,MATCH($H4&CHAR(10)&CHAR(10)&CHAR(10)&$V$3&CHAR(10)&"(lbs)",$A$8:$Z$8,0))<>0),INDEX($A$9:$Z$5000,0,MATCH($H4&CHAR(10)&CHAR(10)&CHAR(10)&$V$3&CHAR(10)&"(lbs)",$A$8:$Z$8,0)))))
这是一个数组公式,退出编辑模式时必须使用Ctrl-Shift-Enter而不是Enter进行确认。
使用Office 365更简单:
=IF($H$9="","",MINIFS(INDEX(A:Z,0,MATCH($H4&CHAR(10)&CHAR(10)&CHAR(10)&$V$3&CHAR(10)&"(lbs)",$8:$8,0)),INDEX(A:Z,0,MATCH($H4&CHAR(10)&CHAR(10)&CHAR(10)&$V$3&CHAR(10)&"(lbs)",$8:$8,0)),"<>0",$H:$H,$M$3,$A:$A,$X$6))