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和任何其他任意字段 - 并且如果在死亡表的单行中找到正在评估的行中的每个值,那么它会输出真或假(或其他一些有用的值。)所以字符表应该是这样的:

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,但是如果您认为基于 Excel 的解决方案也可以在 Calc 中使用,那么它们也是可以接受的。

4

2 回答 2

1

一次性回答原始问题的建议是数组公式

=NOT(ISERROR(匹配(连接(A2,B2,C2),连接(A$11:A$14,B$11:B$14,C$11:C$14),0)))

这将连接字符表中每个名称的三个部分,并在通过连接死亡表中每个名称的三个部分形成的数组中查找它。

于 2014-09-02T20:28:59.250 回答
0

This took some serious thinking, so I hope this is the answer you're looking for.

What the solution is in essence:

A series of nested IF statements, which have COUNTIF statements inside them, it basically checks if the for each column it can find that name in the second table. If it does, it will check the next column, etc. The logical test is if each column has a COUNTIF value greater than 0, then we know that character is dead.

Here is the formula, it assumes the tables are on top of each other in the same worksheet

=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)

I hope it helps.

于 2014-09-01T20:42:00.853 回答