2014-09-01 76 views
0

我的第一張表格記錄了「冰與火之歌」系列叢書中的角色。我的第二張表格記錄了在冰與火之歌中有死亡的人物。在我的第一個表的第四列中,我想測試每一行以查看第二個表上是否有匹配的行;如果是的話,那個角色可以說已經死了。下面是發明了樣本數據,以免破壞系列:如何根據多列值進行匹配

Characters table 
+---------+---------+-----------+---------+ 
| Title | Name | Surname | HasDied | 
+---------+---------+-----------+---------+ 
| Ser  | Jon | Skeet |   | 
| Lord | Jeff | Atwood |   | 
|   | Leo | King  |   | 
| Maester | Joel | Spolsky |   | 
| Lady | Experts | Exchange |   | 
+---------+---------+-----------+---------+ 

Death table 
+---------+---------+-----------+ 
| Title | Name | Surname | 
+---------+---------+-----------+ 
|   | Leo | King  | 
| Ser  | John | Doe  | 
| Lady | Experts | Exchange | 
+---------+---------+-----------+ 

在字符表的HasDied專欄中,我要檢查行的每個值 - TitleNameSurname,以及其他任何任意字段 - 如果被評估行中的每個值都在死表的單行中找到,那麼它將輸出true或false(或其他有用值)。所以字符表應如下所示:

Characters table 
+---------+---------+-----------+---------+ 
| Title | Name | Surname | HasDied | 
+---------+---------+-----------+---------+ 
| Ser  | Jon | Skeet | FALSE | 
| Lord | Jeff | Atwood | FALSE | 
|   | Leo | King  | TRUE | 
| Maester | Joel | Spolsky | FALSE | 
| Lady | Experts | Exchange | TRUE | 
+---------+---------+-----------+---------+ 

我知道我可以使用MATCH來查找任何一個值死亡表,但我不能只爲每列使用三個單獨的MATCH公式,重要的是匹配值在同一行上。我怎樣才能寫出一個能夠進行此搜索的公式?我使用的是LibreOffice Calc,但如果您認爲他們也可以在Calc中工作,那麼基於Excel的解決方案也是可以接受的。

回答

1

一種用於回答原來的問題一氣呵成將陣列式建議

= NOT(ISERROR(MATCH(CONCATENATE(A2,B2,C2),CONCATENATE(A $ 11:一種$ 14 B $ 11: B $ 14,C $ 11:C $ 14),0)))

這將字符表中每個名字的三個部分連接在一起,並在死亡表中連接每個名字的三個部分組成的數組中進行查找。

+0

好的。就像Zero建議的那樣,但沒有幫助者列。說得通。 – Lou 2014-09-02 21:21:38

0

這花了一些認真的思考,所以我希望這是你正在尋找的答案。

什麼解決的辦法是在本質:

一系列的嵌套的IF語句,這裏面有他們COUNTIF語句,它基本上檢查,如果爲每列能找到第二個表這個名字。如果是,它將檢查下一列等。邏輯測試是如果每列的COUNTIF值大於0,那麼我們知道該字符已經死亡。

這裏是公式,它假設表是對彼此的頂部在同一工作表

=IF(COUNTIF(A$11:A$14,A2)>0,IF(COUNTIF(B$11:B$14,B2)>0,IF(COUNTIF(C$11:C$14,C2)>0,TRUE,FALSE),FALSE),FALSE) 

我希望它能幫助。

+0

好吧,它適用於所有三列都非空。因此,它將爲「Lady Experts Exchange」提供正確的結果,其中包含名稱,姓氏和名稱,但不適用於標題欄爲空的「Leo King」。你能想辦法解決這個問題嗎?否則,這是一個好主意:) – Lou 2014-09-02 10:47:24

+0

如果不明確,「Lady Experts Exchange」會輸出真實信息,而「Leo King」會輸出錯誤信息,而它們都應該輸出正確信息。 – Lou 2014-09-02 11:11:12

+0

老實說,更好的解決方法是用&&連接單元格,然後COUNTIF要檢查的字符(這樣你在兩個表中連接)就在死表中。但是你必須爲這兩個表創建一個新列,但它應該可以正常工作。 – ZeroStack 2014-09-02 12:03:01