簡體   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