Excel-最小值和If语句-日期错误

时间:2018-07-03 14:17:36

标签: excel

我正在尝试编写一个公式来检查状态和名称是否正在进行,并且乔博客(在此示例中)一旦找到匹配项,将识别出所提出票证的最早日期。

我的公式当前包括:

=MIN(IF('Sheet2'!AA:AA="ONGOING",IF('Sheet2'!Q:Q="Joe Bloggs",'Sheet2'!B18:B49))) 

我也尝试过:

=IF((AND(sheet2!$AA:$AA="ongoing", 'Sheet2'!$Q:$Q="Joe Bloggs")), MIN('Sheet2'!B18:B49),"No")

在B列中包含日期。 Q包含名称,AA包含状态。

在此运行的时刻,我得到的结果是“ 00/01/1990”。 我进行了一些检查以查找错误,并且似乎在目标名称的周围,因为尝试第二个公式时,输出为“ no”。这个名字肯定在Q列中,而且我还完成了其他公式,包括效果很好的Countifs。

我做了很多搜索,以查找嵌套的ifs和min语句,使它们不高兴,不胜感激任何建议/技巧。对某些人来说,这可能是一个简单的错误。

3 个答案:

答案 0 :(得分:2)

尝试将其输入为数组公式

=MIN(IF(sheet2!AA:AA="ongoing",IF(sheet2!q:q="Joe Bloggs",sheet2!B:B)))

仅供参考,我找到了解决方法here
您将必须对结果应用日期格式。

答案 1 :(得分:0)

您的第一个公式在我的数据上效果很好(如下所示)。如果仅使用ENTER关闭该公式,则得到的结果为“ 37128”,如果用CTRL + SHIFT + ENTER关闭该公式,则得到的结果为“ 25/08/2001”。


编辑: 正如@FocusWiz在评论中所说,我的公式与您的公式之间的唯一主要区别(不同的列名称除外)是公式中的最后一个范围(B18: B49)的大小范围与其他两个(指的是整列)不同。

*这可以通过以下方式解决:对所有三个列引用(AA18:AA49,Q18:Q49,B18:B49)使用相同的行范围,或者对所有三个范围(AA:AA,Q :)引用整个列范围Q,B:B)。


这是我正在谈论的公式:

=MIN(IF('Sheet2'!AA:AA="ONGOING",IF('Sheet2'!Q:Q="Joe Bloggs",'Sheet2'!B18:B49))) 

这是我的工作簿F7中的公式:

=MIN(IF(B:B="ONGOING",IF(A:A="Joe Bloggs",C:C)))

如您在公式编辑器中看到的那样,当公式作为数组公式关闭时,在公式周围会出现弯曲的括号“ {}”。

Joe Bloggs

如果这对您不起作用,请发布一些具有数据类型的示例数据,以便我们找出导致查找值丢失数据的原因。

答案 2 :(得分:0)

虽然我喜欢Patrick所提供的技术(我经常忘记了公式的“ else”部分,并在单元格中将“ false”作为值,但从未想过该用法……谢谢!) ,我认为这个问题突出了我们都可以使用数组公式的问题。如girlvsdata所示,您的原始公式是:

=MIN(IF(Sheet2!AA:AA="ONGOING",IF(Sheet2!Q:Q="Joe Bloggs",Sheet2!B:B)))

(上面进行了修改,对B列更通用)也可以作为数组公式输入。

可能发生的情况是,该公式以某种方式被编辑并且没有作为数组公式重新输入。

虽然我不喜欢数组公式,但我还是尽量避免使用它们,因为我的手指很粗,在修改其他单元格时经常会因不小心按错键而使它们混乱。

这里是不使用数组公式的替代方法:

=INDEX(LARGE((Sheet2!Q:Q&Sheet2!AA:AA="Joe bloggs"&"ongoing")*(Sheet2!B:B),COUNTIFS(Sheet2!Q:Q,"Joe Bloggs",Sheet2!AA:AA,"ongoing")),1)

它的作用基本上是为每个具有“ joe bloggs”和“进行中”的行创建一个候选日期值,该值等于所有此类行的B列中的日期。所有其他行的候选日期值为零。 LARGE函数使用COUNTIFS函数对n个有效候选者进行计数,并采用第n个最大的候选者,从而获得最小的非零日期。