取得在其他工作表上找不到其值的行

取得在其他工作表上找不到其值的行

我正在嘗試執行以下操作。我有表1表2

在第三個工作表上,我需要取得工作表1 中的行,其中在工作表2 的FIM 中找不到工作表1 的儀器(例如,由於工作表1 的任何儀器都不在工作表2 的FIM 中,因此工作表3 將包含工作表 1) 的行。我怎樣才能做到這一點?謝謝

答案1

像這樣的查找函數VLOOKUP()可用於查找查找值並因此返回一些結果,或找不到它並因此返回#ERROR!顯然,這通常用於“積極”意義上,尋找某些結果,但也可以用於“消極”意義上,不尋找某種結果,而是尋找#ERROR! 。

然後還可以測試#ERROR 是否存在!與ISERROR()功能。有時IFERROR()可以使用,但許多情況不適合IFERROR()的機制,這就是其中之一。ISERROR()此處將使用更複雜的NOT().然後,如果未找到 INSTRUMENT,則IF()測試將成功,因為它正在尋找此類失敗。在這種情況下,TRUE 結果是尋找儲存格的值。如果測試失敗(INSTRUMENT 存在),則傳回「」。

下面的公式可以做到這一點:

=IF(ISERROR(VLOOKUP(A2:A9,$F$2:$F$5,1,FALSE)),A2:A9,"")

如果您有SPILL功能,則只有第一個儲存格需要公式。如果沒有,請將其貼到第一個單元格中並使用 {CSE} 執行建立數組的舊方法。

請注意,該公式將在整個輸出範圍內發現結果。要將它們分組,您需要對它們進行排序,將空的放在列表底部,這樣它們就不會影響列表的易用性,也不會影響其外觀,無論哪一個對您來說更重要。

然而,幾乎任何你使用的存在的東西,例如上面公式中的“”,甚至是一個更高的字符,例如UNICODE(160)一個空格,仍然會排序到列表的開頭。您可以採用多種方法,包括複製,然後貼上為值,然後排序,但要使用公式來完成,這樣您就不需要交互,您可以嘗試如下操作:

=SUBSTITUTE(SORT(IF(ISERROR(VLOOKUP(A2:A9,$F$2:$F$5,1,FALSE)),A2:A9,"ZZZZZZZZZZ")),"ZZZZZZZZZZ","")

您使用的字串應始終排序到列表的末尾。公式中使用“ZZZZZZZZZZ”。然後你SORT()將所有這些強製到最後,以及你想首先在頂部看到的那些。然後你SUBSTITUTE()用一個空白的字串,像是“”,所有這些“消失”......當然不是真的,但在外觀上。

(顯然,您需要在您選擇或調整的公式中使用真實的參考。)

相關內容