Excel公式错误:IF(AND(A:A>=Sheet2!A:A,A:A<=Sheet2!B:B),VLOOKUP(...),"") 函数解析与修正
IF(AND(A:A>=Sheet2!A:A,A:A<=Sheet2!B:B),VLOOKUP(lookup_value, data1_range,col_index_num, [range_lookup]), '') 函数的错误在于它试图对整个列进行比较和查找。
修正方法:
- 使用ROW函数获取当前行号:
ROW() - 使用INDEX函数获取对应行的值:
INDEX(A:A,ROW()) - 将公式修改为:
IF(AND(INDEX(A:A,ROW())>=Sheet2!A:A,INDEX(A:A,ROW())<=Sheet2!B:B),VLOOKUP(lookup_value, data1_range,col_index_num, [range_lookup]), '')
示例:
假设在Sheet1中,A列存储要查找的值,Sheet2中,A列存储下限,B列存储上限。
要查找Sheet1中A列大于等于Sheet2中A列且小于等于Sheet2中B列的值,并返回对应数据范围中的第三列数据,可以使用以下公式:
=IF(AND(INDEX(A:A,ROW())>=Sheet2!A:A,INDEX(A:A,ROW())<=Sheet2!B:B),VLOOKUP(A1,Sheet2!A:C,3,FALSE),'')
解释:
INDEX(A:A,ROW())获取当前行A列的值。Sheet2!A:A获取Sheet2中A列的值。Sheet2!B:B获取Sheet2中B列的值。VLOOKUP(A1,Sheet2!A:C,3,FALSE)查找Sheet1中A1的值在Sheet2中A:C范围内的对应值,并返回第三列数据。FALSE表示精确匹配。''表示如果条件不满足,则返回空字符串。
注意:
- 此公式需要逐行复制,才能对所有数据进行比较和查找。
- 确保Sheet2中的数据范围包含要查找的所有数据。
- 如果数据范围包含重复值,则可能会返回多个结果。
希望以上内容能够帮助您解决问题。
原文地址: https://www.cveoy.top/t/topic/nKtv 著作权归作者所有。请勿转载和采集!