在 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 发挥其魔力。