我有一个时间序列数据电子表格,其中包含一系列标记已发生某些事件的列。
像这样:
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,如果查找中发生了至少一个但可能更多的事件。
这样做的有效方法是什么?
更新:
问题更复杂,可能有非NULL事件类型没有出现在我的查找列表中,我不想触发该标志。
例如,如果我有:
9 29/11/2016 G NULL NULL
我想要标记0,但是
10 10/10/2016 G T NULL
我想要标记1。
答案 0 :(得分:1)
我的理解是,检查Event1列是否包含查找表中的一个值就足够了。
为简单起见,我将暗示两张表都在不同的表格中。
因此,您需要做的就是在第一张表格中的新创建的列上应用VLOOKUP公式(让我们简单地称之为"标记")。
第一个细胞(E2)的公式应为:
=VLOOKUP(B2, Sheet2!A:A, 1, false)
只需将相同的公式拖到剩余的行中,或者双击此单元格的右下角,您就应该好了。
这也将显示该日期的第一个事件是什么。如果您只想要一个位值(1/0),则可以将公式包含在一个简单的IF中。
希望这有帮助!
编辑:
在新信息发布后,解决方案并未发生太大变化:
=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)
这甚至可以告诉你每行有多少这些值。