Как ИСПОЛЬЗОВАТЬ на основе значений из нескольких столбцов

Моя первая таблица записывает персонажей из книжной серии «Песнь льда и пламени». Во второй таблице записаны персонажи, умершие в "Песни льда и пламени". В четвертом столбце моей первой таблицы я хочу проверить каждую строку, чтобы увидеть, есть ли соответствующая строка во второй таблице; в таком случае можно сказать, что этот персонаж умер. Вот и придуманы примерные данные, чтобы не портить серию:

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 таблицы символов я хочу проверить каждое значение этой строки - Title, Name, Surname и любые другие произвольные поля - и найти ли каждое из значений в оцениваемой строке в одной строке таблица смертей, то будет выведено истина или ложь (или какое-то другое полезное значение). Таким образом, таблица символов должна выглядеть так:

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   |
+---------+---------+-----------+---------+

Я знаю, что могу использовать ПОИСКПОЗ, чтобы найти любое одно значение в таблице смерти, но я не могу просто использовать три отдельные формулы ПОИСКПОЗ для каждого столбца, важно, чтобы совпадающие значения находились в одной строке. Как я могу написать формулу, которая будет выполнять этот поиск? Я использую LibreOffice Calc, но решения на основе Excel приемлемы, если вы думаете, что они будут работать и в Calc.


person Lou    schedule 01.09.2014    source источник


Ответы (2)


Предложением для ответа на исходный вопрос за один раз будет формула массива

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

Это объединяет три части каждого имени в таблице символов и ищет их в массиве, сформированном путем объединения трех частей каждого имени в таблице смертей.

person Tom Sharpe    schedule 02.09.2014
comment
Хорошо. Так же, как то, что предложил Zero, но без вспомогательных столбцов. Имеет смысл. - person Lou; 03.09.2014

Это потребовало серьезных размышлений, поэтому я надеюсь, что это именно тот ответ, который вы ищете.

В чем суть решения:

Серия вложенных операторов 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)

Я надеюсь, что это помогает.

person ZeroStack    schedule 01.09.2014
comment
Хорошо, это работает, когда все три столбца не равны нулю. Таким образом, это обеспечит правильный результат для Lady Experts Exchange, у которого есть титул, имя и фамилия, но не для Лео Кинга, где поле заголовка пустое. Можете ли вы придумать способ обойти это? В остальном это отличная идея :) - person Lou; 02.09.2014
comment
И если это было непонятно, Lady Experts Exchange выдает true, а Leo King - false, в то время как они оба должны вывести true. - person Lou; 02.09.2014
comment
Честно говоря, гораздо лучше объединить ячейки с помощью &&, тогда COUNTIF символ, который вы хотите проверить (чтобы вы объединяли в обеих таблицах), находится в мертвой таблице. Но вам нужно будет создать новый столбец для обеих таблиц, но он должен работать нормально. - person ZeroStack; 02.09.2014
comment
Хорошая точка зрения. Я должен был подумать об этом, учитывая, что я уже объединил ячейки ... - person Lou; 02.09.2014
comment
Я не знаю, я сейчас в поезде. Я попробую, когда вернусь домой, и доложу. - person Lou; 02.09.2014