繁体   English   中英

Excel数组公式多个条件空字符串

[英]Excel Array Formula Multiple Conditions Empty String

我有专栏

  • B4(本表B栏)=部分#
  • 数据库A =日期
  • 数据库C = Part#
  • 数据库AA =文本注释

使用以下公式,我想查看具有最新日期非空的注释字段并返回该值。 如果返回错误,我只想返回一个空字符串:

     =IFERROR(INDEX(Database!AA$2:$AA$5000;MATCH(MAX(IF(""<>
Database!$AA$2:$AA$5000;IF(B4=Database!$C$2:$C$5000;Database!$A$2:$A$5000)))
&B4;Database!$A$2:$A$5000&Database!$C$2:$C$5000;0));"")

但问题是,如果我只检查最近的日期或非空单元格,则返回最新的行。 但是,如果我混合这两个条件,我会在整个电路板上找到空白单元格。

有人想知道如何将这两个条件与数组公式结合起来吗? (我知道,VBA会让我的生活变得更轻松,但我不能使用任何东西,只能自我更新公式)

这可以在没有CSE的情况下使用INDEXAGGREGATE¹函数完成,提供循环处理,就像SUMPRODUCT一样,无需作为数组公式输入。 与数组公式一样,应最小化处理的行数以避免计算延迟。

AGGREGATE首先用于根据零件编号和非空白注释查找最大日期; 一种伪MAXIF形式。 该值在第二个AGGREGATE中用于将行号返回到注释列的INDEX,该列也与部件号和非空注释匹配。

在C13中作为标准配方,

=INDEX(AA:AA, AGGREGATE(15, 6, ROW(A$1:INDEX(A:A, MATCH(1E+99,A:A )))/((C:C=B13)*(A:A=AGGREGATE(14, 6, A$1:INDEX(A:A, MATCH(1E+99,A:A ))/((C$1:INDEX(C:C, MATCH(1E+99,A:A ))=B13)*SIGN(LEN(AA$1:INDEX(AA:AA, MATCH(1E+99,A:A ))))), 1))*SIGN(LEN(AA$1:INDEX(AA:AA, MATCH(1E+99,A:A ))))), 1))

max_date_two_conditions


¹AGGREGATE功能是在Excel 2010中引入的。它在早期版本中不可用。

² 需要使用Ctrl + Shift + Enter↵最终确定数组公式。 如果输入正确,Excel将公式括在大括号中(例如{} )。 您不要自己键入大括号。 一旦正确进入第一个单元格,就可以像任何其他公式一样向下或向右填充或复制它们。 尝试并减少对更接近表示实际数据范围的范围的全列引用。 数组公式以对数方式计算计算周期,因此将参考范围缩小到最小值是一种好习惯。 有关更多信息,请参阅数组公式的准则和示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM