我有5列数据,我正在使用INDEX / MATCH函数根据第1,3和3列的精确标准匹配从第5列提取数据。因此,基本上用户选择3个不同的标准(来自下拉列表),如果所有三个匹配列1,3和3。 4恰好,然后结果来自第5列。 这是我正在使用的功能......
{=IFERROR(INDEX(F5:F500,MATCH(1,(E5:E500=Production!B4)*(G5:G500=Production!B8)*(H5:H500=Production!B6),0)),"")}
我遇到的问题取决于所选择的标准,可能有4到10个结果,所以我使用以下内容来提取下一个结果......
{=IFERROR(INDEX(F5:F500,MATCH(1,(E5:E500=Production!B4)*(G5:G500=Production!B8)*(H5:H500=Production!B6),0)+1),"")}
对于每一行我只在函数末尾添加了另一个数字(即“+2”“+ 3”,依此类推)以获得所需的结果。正如我上面提到的,一些标准会产生较少的结果,这就是我的问题所在......一旦我得到所有可用的结果(例如3个结果),下一行(“+ 3”)应该吐出一个错误,因为没有更多的结果完全匹配标准,但相反,函数只给我下一个匹配前两个条件而不是第三个条件的结果。如果这看起来令人困惑,我很抱歉,这有点难以解释,这可能就是为什么我在论坛中没有任何帮助的原因。
非常感谢任何建议。 (注意:我从上面的函数中删除了“$”,因此它们更容易阅读) 谢谢!
答案 0 :(得分:2)
所以在你的示例公式中,你会把它放在M2中:
=IFERROR(INDEX($F$5:$F$500,MATCH(1,($E$5:$E$500=Production!B4)*($G$5:$G$500=Production!B8)*($H$5:$H$500=Production!B6)*(COUNTIF($M$1:$M1,$F$5:$F$500)=0),0)),"")
按Ctrl-Shift-Enter,因为它是一个数组公式。然后复制下来。
请注意,由于我没有测试数据,因此未经测试。
我把$放回来,因为我的加法的相对/绝对是非常重要的。