我想在同一列中搜尋 2 個不同的值。如果匹配,我希望同一列中的 2 個值的標題顯示為結果。
所有彩色線條都是標準佈局,不會改變。
第 3、4、8 和 9 行是我手動編輯的行。綠色行是標準。Value A-1
意味著我需要找到哪一列有Value A
和Value 1
。
正如您所看到的,Value A
可以在多個列中找到,但只有 1 個與「值 1」組合。這些可以在“塊 1”-“標頭 1”中找到。這表示訊息「Block 1」和「Header 1」將出現在綠線「Value A-1」下方。我想要這兩個值(Block 1
並Header 1
出現在我在下圖中播種的單元格中)。綠行下的所有內容都需要自動填充,我剛剛輸入了一些值來顯示預期結果。
如果同一列中出現 2 個值,則顯示標題:
答案1
如果只能有一個匹配對,並假設佈局如上所示,則可以使用以下公式:
A14: =IF(OR((FirstValue=$A$3:$E$3)*(LastValue=$A$4:$E$4)),"Block 1", IF(OR((FirstValue=$A$8:$E$8)*(LastValue=$A$9:$E$9)),"Block 2",""))
A15: =IFERROR(LOOKUP(2,1/(((FirstValue=$A$3:$E$3)*(LastValue=$A$4:$E$4)+(FirstValue=$A$8:$E$8)*(LastValue=$A$9:$E$9))),$A$2:$E$2),"")
A14 中的公式是陣列類型公式,需要按住ctrl+ 的shift同時點選來輸入enter。 Excel 會{...}在公式周圍放置大括號 (。
選擇A14:A15
並向右填充E14:E15
FirstValue 和 LastValue 是如下建立的命名公式:
選取 A 列中的某些儲存格後,公式 ► 定義名稱
FirstValue *Refers to* =LEFT(Sheet2!A$13,FIND("-",Sheet2!A$13)-1)
LastValue *Refers to* ="Value " & MID(Sheet2!A$13,FIND("-",Sheet2!A$13)+1,99)
(您不必使用命名公式;您可以在我提供的公式中替換上述內容,但命名公式在這裡似乎更方便)。
如果在區塊 1 和區塊 2 中存在重複匹配,則結果將出乎意料。但公式可以修改(儘管 VBA 例程會更簡單)
FirstValue
並LastValue
傳回第 13 行中的各個值,並重新設計為與區塊中儲存的格式相同。
查看LOOKUP
函數的協助以了解其工作原理。也可以使用選項卡Evaluate
上的按鈕Formulas
來了解公式的工作原理。