从 Excel 中的列中选择元素

从 Excel 中的列中选择元素

在 Excel 中,我有三列 A2:A100、B2:B50、C2:C50。我想做以下事情:

如果 An(n 是 2 到 100 之间的任意数字)在 B2:B50 中并且对于某个 m,Bm==An,则让 Dn=Cm。

我该怎么做?


[添加] 这里我假设 A2:A100 是不同学生姓名的一列,B2:B50 是学生姓名子集的一列,C2:C50 是 B2:B50 中学生考试成绩的列。

Bm==An 其中 m 表示学生的名字同时出现在 A 和 B 中。我想将相应的分数放在 Cm 到 Dn 中。

例如,如果学生 B2 出现在 A50 中,则将值 C2 放入 D50。如果学生 B5 出现在 A66 中,则将值 C5 放入 D66。

答案1

根据以上评论:

在 D2 中:=if(iserror(vlookup(A2, $B$2:$C$50, 2, false)), "", vlookup(A2, $B$2:$C$50, 2, false))

将该公式复制到 D100 就可以了。

它正在做什么:

最重要的部分是vlookup。它获取一个值 (A2) 并在多列范围 (B2:C50) 的第一列中查找它。如果它在范围内找到该值,则它会返回该多列范围的第二列 (2) 中的相应值。“False”的使用率高达 99%,因此暂时忽略它。

然后,该vlookup函数被包装在 if 语句中,以查看它是否出错。如果在范围 (B2:C50) 中找不到值 (A2),它将返回#N/A,因此该=IF(ISERROR(部分只是测试它是否是错误。如果是,则它不返回任何内容 (""),否则它返回 vlookup 的结果。

您也=IF(ISERROR(vlookup), "", vlookup)可以这样做=IF(COUNTIF($B$2:$B$50, A2)>0, "", Vlookup),其中 countif 函数会检查以确保在 B2:B50 中至少有一个学生姓名实例,然后才允许 vlookup 发挥其魔力。

相关内容