如何使用 Excel 匹配两列?

如何使用 Excel 匹配两列?

我有一张这样的桌子:

+----------+---+---+----+
|   date   | A | B | C  |
+----------+---+---+----+
| 3-Sep-18 | 3 | 7 | 11 |
| 4-Sep-18 | 4 | 8 | 12 |
| 5-Sep-18 | 5 | 9 | 13 |
+----------+---+---+----+

如何从上面的匹配列中获取值actdate并在同一张表上获取下表?

+-----+----------+-------+
| act |   date   | value |
+-----+----------+-------+
| A   | 5-Sep-18 |     5 |
| B   | 5-Sep-18 |     9 |
| C   | 5-Sep-18 |    13 |
+-----+----------+-------+

答案1

假设第一个表在Sheet1,所需输出在Sheet2

此外,在 上Sheet1,标题位于第一行。

这样,在 上Sheet2,标题也会在第一行,但最重要的是,第一列数据在 上Column A,第二列在 上Column B,因此您需要在 上输入以下公式Column C

=INDEX(Sheet1!A:D;MATCH(Sheet2!B2;Sheet1!A:A;0);MATCH(A2;Sheet1!1:1;0))

这里需要注意的是:

  • Sheet1!A:D应该从第一列到最后一列,只要有数据。如果你有信息,比如说,直到第 ZZ 列,那么它需要Sheet1!A:ZZ
  • 如果页眉不在工作表的第一行,则需要更改Sheet1!1:1为页眉所在的行。

以防万一,这是如何运作的?

首先,我们使用INDEX()公式。这允许我们选择一个范围,然后调用我们想要从该范围中获取哪一行/列的信息。

然后,我们使用MATCH()公式。它的第一个实例,检查 A 列并返回日期字段匹配的行。请记住:这只会匹配第一项。如果在不同的行中有多个相同的日期,它将不起作用。

我们使用第二个实例MATCH()来检查整行标题以返回 ACT 所在的列。同样,如果您有多个相同的 ACT,它只会返回第一个。

现在有了这个,我们就有了一个范围,然后我们有一个行号和一个列号,返回您想要的精确值。

相关内容