如何在一个Excel数组中测试元素存在于另一个

时间:2017-02-22 15:43:10

标签: excel excel-formula

我有一个时间序列数据电子表格,其中包含一系列标记已发生某些事件的列。

像这样:

     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。

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)

这甚至可以告诉你每行有多少这些值。