Excel 映射并创建一个新列

Excel mapping and create a new column

Excel 文件列:

A                  B                  C
2                  two                3
5                  five               8
3                  three              10
8                  eight              11
12                 one                15

我想在同一个文件中创建一个新列 D,如下所示:

A                  B                  C               D
2                  two                3               three
5                  five               8               eight
3                  three              10              
8                  eight              11
12                 one                15

我想映射 CA,如果匹配,D 取值 B

示例:C 中的值 3 存在于 A 中,因此 D 将采用相应的 Bthree

谢谢!

因此,基于 BigBen 关于使用 IFERROR 的额外建议,我相信您在第 D 栏中想要类似的内容:

=IFERROR(VLOOKUP(C1, A:B, 2, FALSE), "") ...然后将公式向下拖动到整个列 D

现在,这里有一些假设:

  1. 您的数据没有任何 header 行,数据从第 1 行开始,而不是第 2 行
  2. 您需要 empty/blank 没有完全匹配的值(这是 BigBen 的 IFERROR 建议)。您当前的问题布局似乎表明了这一点。否则,您将在 D 列的所有空白单元格中得到 #N/A

编辑:为了确认,我使用了您的数据(虽然我从第 2 行开始),下面是它的处理方式 -

如果有 DA 功能,您可以使用:

1) - 使用 FILTER:

排除空单元格

D1中的公式:

=FILTER(B1:B5,COUNTIF(C1:C5,A1:A5)>0)

2) - 使用 XLOOKUP:

包含空单元格

D1中的公式:

=XLOOKUP(C1:C5,A1:A5,B1:B5,"")

如果 无法访问 DA 功能,您可以使用:

1) - 使用 INDEXMATCHSMALL:

排除空单元格
=IFERROR(INDEX(B:B,SMALL(IFNA(MATCH(C:C,A:A,0),""),ROW(A1))),"")

Note 1 - This needs to be array entered through CtrlShiftEnter

Note 2 - Alternatively, one could use a non-array entered approach including AGGREGATE as per @basic: =IFERROR(INDEX(B:B,AGGREGATE(15,6,MATCH(C:C,A:A,0),ROW(A1))),"")

2) - 使用 VLOOKUP:

包含空单元格

请参考@Gravity给出的另一个答案


基本上,两种方法之间的区别可以形象化为: