工作中碰到了几个和Excel判断统计相关的问题,通过Excel提供的函数,基本都能解决,还是非常强悍。Excel中函数很多,但无需了解所有,需要用的场景,针对性学习,逐步积累知识库,这就可以了。
问题1:怎么用excel的vslookup判断一个sheet中某个单元格的内容是否出现在另外一个sheet某列中?
需求是:使用VLOOKUP函数结合IFERROR和IF函数来检查Sheet1中的某个单元格值是否存在于Sheet2的某列中,并在该行的临近单元格中写上"是"或"否"。
假设Sheet1中需要检查的单元格是A2,A2的临近单元格中(例如B2),输入以下公式,
=IF(IFERROR(VLOOKUP(A2,Sheet2!$A$1:$A$100,1,FALSE),0)=0,"否","是")
其中,
VLOOKUP(A2,Sheet2!A1:A1000,1,FALSE):查找A2的值在Sheet2的A1到A1000范围内,返回对应的值。如果不存在,返回错误值。
IFERROR(...,0):捕获VLOOKUP可能返回的错误值(如#N/A),并将其替换为0。
IF(...=0,"否","是"):如果VLOOKUP返回0(即查找值不存在),则显示“否”;否则,显示“是”。
注意事项:
(1)如果Sheet2的名称中包含空格,则需要将工作表的名称用单引号括住,
VLOOKUP(A2,'Sheet 2'!$A$1:$A$1000,1,FALSE)
(2)数据范围:确保Sheet2中的数据范围(如A1:A1000)覆盖了所有需要查找的值。如果数据范围可能变化,可以使用动态命名范围或绝对引用。
(3)精确匹配:VLOOKUP的第四个参数设置为FALSE,确保进行精确匹配。如果需要近似匹配,可以设置为TRUE,但通常建议使用精确匹配以避免误判。
(4)错误处理:IFERROR函数用于捕获VLOOKUP可能返回的错误值,确保公式在查找值不存在时返回"否"。
问题2:excel中A1值是"否",B1值是"否",设置C1值是"两个都是否",否则C1值是"至少一个是"。
如下公式可以解决这个问题,
=IF(AND(A1="否", B1="否"), "两个都否", "至少一个是")
其中,
AND(A1="否", B1="否"):检查A1和B1是否都等于"否"。
IF(逻辑测试, 值为真, 值为假):如果逻辑测试为真,返回"两个都否";否则,返回"至少一个是"。
问题3:excle中一个sheet单元格的值,和另外一个sheet单元格的值比较,相同写"是"。
通过如下公式可以解决这个问题,
=IF(Sheet1!A1=Sheet2!A1, "是", "否")
其中,
Sheet1!A1:引用Sheet1中A1单元格的值。
Sheet2!A1:引用Sheet2中A1单元格的值。
IF(Sheet1!A1=Sheet2!A1, "是", "否"):如果Sheet1的A1值等于Sheet2的A1值,返回"是";否则,返回"否"。
问题4:excel中sheet1的A1的值如果和sheet2的A1的值相同,则将shee1的B1的值,登记到sheet2的B1。
通过如下公式可以解决此问题,
=IF(Sheet1!A1=Sheet2!A1, Sheet1!B1, "")
其中,
Sheet1!A1:引用Sheet1中A1单元格的值。
Sheet2!A1:引用Sheet2中A1单元格的值。
IF(条件, [若为真], [若为假]):如果条件满足(即Sheet1的A1等于Sheet2的A1),则返回Sheet1的B1值;否则,返回空字符串。
问题5:sheet2的D1列的值如果出现在sheet1的A列某行,则需返回sheet1对应行的B列值。
通过如下公式可以解决这个问题,
=IFERROR(VLOOKUP(D1, Sheet1!A:B, 2, FALSE), "")
其中,
VLOOKUP(D1, Sheet1!A:B, 2, FALSE):在Sheet1的A列中查找D1的值,找到后返回B列对应的值。
IFERROR(..., ""):如果VLOOKUP未找到匹配值,返回空字符串。
还可以通过INDEX和MATCH函数的组合,
=IFERROR(INDEX(Sheet1!B:B, MATCH(D1, Sheet1!A:A, 0)), "")
其中,
MATCH(D1, Sheet1!A:A, 0):在Sheet1的A列中查找D1的值,返回其相对位置。
INDEX(Sheet1!B:B, MATCH(...)):根据MATCH返回的位置,返回B列对应的值。
IFERROR(..., ""):处理未找到值的情况,返回空字符串。