我有两个excel WORKBOOK(WB)
在excel WB 1中,我有学生ID和顾问名称列。在excel WB 2中,如果顾问名称为“John”,则我将ID与WB 1 ID匹配,以在WB2的列中显示“TRUE”。
你能告诉我有什么公式可以尝试并解释公式的组成部分吗? aTTACHED是数据的屏幕截图。请注意它在不同的EXCEL工作簿中。
我已经完成了以下精细的配方
= IF(ISNUMBER(比赛(C7:C17,'[wORKBOOK1 NAME] SHEET1'!$ A $ 2:$ A $ 13,0)),“True”,“False”)
但是,我还需要添加顾问=约翰然后显示真实的标准
请帮助如何添加该部分。
采用你提供的公式,我将指导你完成这项工作的微小改动:
=IF(ISNUMBER(MATCH(C7:C17&"John",'[wORKBOOK1 NAME]SHEET1'!$A$2:$A$13&'[wORKBOOK1 NAME]SHEET1'!$B$2:$B$13,0)),"True","False")
这当然是假设Forenames在$B$2:$B$13
...
这样做只是形成一个ID的字符串值,并将Forname粘贴在它的背面。 MATCH将引用它根据自身内部标准创建的值数组 - 带有Forename的ID。
匹配公式将以相同的方式工作,返回一个整数,表示找到匹配时数组中的索引位置。
我将指出该公式不接受第一个参数的数组,因此目前只搜索第一个单元格...您将需要更新公式,并可能将其作为检查每个单独ID的列:
=IF(ISNUMBER(MATCH(C7&"John",'[wORKBOOK1 NAME]SHEET1'!$A$2:$A$13&'[wORKBOOK1 NAME]SHEET1'!$B$2:$B$13,0)),"True","False")
如果你只想把它作为一个公式,它会变得有点复杂,因为你必须使用if语句形成一个数组并对该数组进行求值:
=IF(ISNUMBER(MATCH(1,IF(C7:C17&"John"='[wORKBOOK1 NAME]SHEET1'!$A$2:$A$13&'[wORKBOOK1 NAME]SHEET1'!$B$2:$B$13,1,0),0)),"True","False")
这必须作为数组公式输入(当仍然在公式栏中按Ctrl + Shift + Enter)
if语句将检查匹配并构建一个新的二进制数组(1表示匹配,0表示不匹配),然后MATCH公式只是通过搜索1来检查是否在该新数组中找到匹配项。