簡體   English   中英

Excel Match,索引VLOOKUP多個條件

[英]Excel Match, Index VLOOKUP Multiple Criteria

我正在嘗試填充一個單元格,並且僅顯示不存在的值。 如果存在,則顯示另一個值。

...但是我無法理解如何做到這一點。

我目前在E列的單元格上放置了以下公式

=INDEX(config!H2:H20,
MATCH(1,
(F4=config!F2:F20)*(VLOOKUP(D4,config!C2:D20,2,FALSE)=config!G2:G20),0))

正如您在此處看到的,這符合其他一些條件。 但是,您還可以看到值7被顯示兩次。 我希望它不顯示任何使用中的值。

在此處輸入圖片說明 因此,然后我在配置表中添加了一個額外的列,稱為“ Room In Use”,其中數據來自……該列中有一些公式可以檢查值是否正在使用中

=NOT(ISERROR(MATCH(H2,Sheet1!E2:E41,0)))

您可以在這里看到實際效果: 在此處輸入圖片說明

所以,回到我的sheet1,我認為這個公式需要另外一個條件說如果使用中的房間 == FALSE,那么

=INDEX(config!H2:H20,
MATCH(1,
(F4=config!F2:F20)*(VLOOKUP(D4,config!C2:D20,2,FALSE)=config!G2:G20),0))

否則,如果所有房間都為真,則顯示“無空房”

我嘗試使用:

{=INDEX(config!H2:H20,MATCH(1,(F5=config!F2:F20)*("FALSE"=config!J2:J20)*(VLOOKUP(D5,config!C2:D20,2,FALSE)=config!G2:G20),0)) }

但無濟於事...

在excel公式中這是否有可能,還是我需要使用VBA?

我在此處附加了我的Excel文檔: https : //www.dropbox.com/s/crmbbp8esdvnv29/Book1.xlsm?dl=0

要實現第一,第二,第三等匹配,您需要切換到SMALL(IF(...或AGGREGATE,以將匹配的行號返回給INDEX,其中k參數由已使用的累進COUNTIF或COUNTIFS提供本地工作表上的值。

雖然最終可能會出現n個過於復雜的單個公式,但您可以使用雙重查詢匹配列D到config!C:C以返回config!D:D中的值,可以使用“ helper”列來簡化條件計數。

將此公式放入M2(可選使用自定義數字格式;;; ),然后向下拖動到M2:M20。

=VLOOKUP(D2, config!C:D, 2, FALSE)&F2

現在E2:E20中的公式是

=INDEX(config!H:H,
       AGGREGATE(15, 7, ROW($2:$20)/((config!F$2:F$20=F2)*(config!G$2:G$20=VLOOKUP(D2, config!C:D, 2, FALSE))), 
       COUNTIF(M$2:M2, VLOOKUP(D2, config!C:D, 2, FALSE)&F2)))

收到E16錯誤不會感到驚訝。 修復D16中的錯字后,此問題將得到糾正。 其他所有#NUM個! 當您用盡了可能的匹配值時,就會發生錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM