2017-02-22 17 views
1

У меня есть таблица данных временных рядов с рядом столбцов, которые отмечают наличие определенных событий, которые имели место.Как проверить элемент в одном массиве Excel присутствует в другом

Как так:

 A   B  C  D 
1 Date  Event1 Event2 Event3 
2 24/10/2016 T  NULL NULL 
3 31/10/2016 S  NULL NULL 
4 06/10/2016 NULL NULL NULL 
5 20/10/2016 V  NULL NULL 
6 20/10/2016 T  S  V 
7 01/12/2016 T  NULL NULL 
8 01/12/2016 S  T  NULL 
9 29/11/2016 NULL NULL NULL 
10 10/10/2016 T  NULL NULL 

Я тогда получил справочную таблицу с колонкой событий:

A 
1 T 
2 S 
3 V 

То, что я хотел бы сделать, это создать новый столбец в временные ряды, чтобы отметить одно значение, например 1, если произошло хотя бы одно, но, возможно, и больше событий в поиске.

Какой эффективный способ сделать это?

UPDATE:

Проблема является более сложной, что может быть не NULL типы событий, которые не появляются в моем взгляде вверх список и для которых я не хотел бы вызвать флаг.

Например, если у меня было:

9 29/11/2016 G  NULL NULL 

Я хотел бы флаг 0, но

10 10/10/2016 G  T  NULL 

Я хотел бы флаг 1.

+0

Могут ли данные временных рядов содержать события не в таблице поиска? И ваш желаемый результат равен 1, если какое-либо событие произошло, и 0, если событие не произошло? –

+0

Я обновил вопрос, чтобы уточнить, что могут быть типы событий, отличных от NULL, которые я бы не хотел запускать. Желаемый результат равен 1, если произошло какое-либо событие в поиске, и 0, если этого не произошло.Более того, я бы не хотел, чтобы это было вызвано, если событие, не указанное в списке, произошло. – elksie5000

ответ

1

Я понимаю, что это достаточно чтобы проверить, имеет ли столбец Event1 одно из значений в вашей таблице поиска.

Для простоты я буду подразумевать, что обе таблицы находятся в разных листах.

Следовательно, все, что вам нужно сделать, это применить формулу VLOOKUP для вновь созданного столбца на первом листе (просто назовите это «Флаг»).

Формула для первой ячейки (Е2) должен быть:

=VLOOKUP(B2, Sheet2!A:A, 1, false) 

Просто перетащите ту же формулу для остальных строк или дважды щелкните на нижнем правом углу этой ячейки, и вы должны быть хорошо пойти.

Это также покажет вам, что такое первое событие на эту дату. Если вам требуется только бит (1/0), вы можете заключить формулу в простой IF.

Надеюсь, это поможет!

EDIT:

После новой информации, решение не изменится:

=IF(IsNA(VLOOKUP(B2, Sheet2!A:A, 1, false)), 0, 1) + IF(IsNA(VLOOKUP(C2, Sheet2!A:A, 1, false)), 0, 1) + IF(IsNA(VLOOKUP(D2, Sheet2!A:A, 1, false)), 0, 1) 

Это даже сказать, сколько из этих значений каждая строка имеет.

+0

Я явно не совсем сформулировал проблему полностью. Иногда будут появляться события в временном ряду, которые не являются нулевыми, но которые я не хочу запускать флаг. Иногда бывает событие Event1, для которого я не хочу отмечать, но в слоте Event2 есть один. Имеет ли это смысл? – elksie5000

+0

Он делает, да - я придумываю решение –

+1

Отредактировано, должно работать. –

Смежные вопросы