2013-04-29 55 views
1

在这之前我问过类似的问题,但事实证明,无论我使用的公式是什么,都没有给我正确的结果。所以我不得不重新提出这个问题,并使其更具体。一个Excel公式,找到最大值并检查多个条件

假设我有以下表格:

enter image description here

我希望有一个公式,让我有个变化大于零和“橙色”并非在“评论中提到的最新日期“专栏。只有1个百分比变化(列Pct1到Pct 5)需要> 0。所以该公式将输出11/20/2012,因为它具有大于0%的百分比变化,并且它不是橙色。

我尝试了匹配,偏移,最大但它没有给我正确的结果。我希望把它作为一个公式输入到VBA中,因为我总共需要20个excel文件,我需要宏来检查这些文件。请帮帮我!谢谢!!

+1

张贴之前请检查常见问题与指示http://stackoverflow.com/questions/how-to-ask和我个人的最爱:http://mattgemmell.com/2008/12/08/what-have你试过 – 2013-04-29 15:42:01

+0

我很抱歉,如果我不够具体。如果你不明白我的问题,请告诉我。谢谢 – Futochan 2013-04-29 16:02:25

+0

你的问题标题要求一个公式,但在你的问题,你要求VBA代码... – user2140261 2013-04-29 16:16:44

回答

6
{=MAX((B2:F6>0)*(ISERR(FIND("ORANGE",UPPER(G2:G6))))*(A2:A6))} 

用Ctrl + Shift + Enter输入,而不仅仅是Enter。不要输入花括号,如果您输入为数组公式,则Excel会插入它们。

第一部分根据百分比是否大于零返回TRUE和FALSE的矩阵。

第二部分根据FINDing“Orange”是否产生错误返回TRUE和FALSES。最后一节返回日期数组。

将数组/矩阵相乘时,TRUE为1,FALSE为0,最后得到一组所有条件为TRUE的日期数组。最后,MAX挑选最大的。

+0

完美!谢谢。最后一个问题:假设我想排除菠萝。我将公式修改为以下内容。但是,它没有给我正确的结果。我将Find(“orange”,upper(G2:G6))修改为Find(或(“Orange”,“Pineapple”),upper(G2:G6))。我做错了什么?谢谢 – Futochan 2013-04-29 18:15:18

+1

+ 1另一个很好的迪克! :) – 2013-04-29 18:32:44

+1

要排除“Orange”和“Pineapple”,尝试此版本= MAX((B2:F6> 0)* ISERR(SEARCH(“Orange”,G2:G6))* ISERR(SEARCH(“Pineapple”,G2 :G6))* A2:A6)' - 你可以添加更多相同的模式,但如果有多个值排除然后一个不同的方法可能会更好地工作 – 2013-04-29 19:06:36