我想在两个不同的excel工作簿中匹配两列的数据

问题描述 投票:-1回答:2

我有两个excel WORKBOOK(WB)

在excel WB 1中,我有学生ID和顾问名称列。在excel WB 2中,如果顾问名称为“John”,则我将ID与WB 1 ID匹配,以在WB2的列中显示“TRUE”。

你能告诉我有什么公式可以尝试并解释公式的组成部分吗? aTTACHED是数据的屏幕截图。请注意它在不同的EXCEL工作簿中。

excel vba excel-vba excel-formula vlookup
2个回答
0
投票

我已经完成了以下精细的配方

= IF(ISNUMBER(比赛(C7:C17,'[wORKBOOK1 NAME] SHEET1'!$ A $ 2:$ A $ 13,0)),“True”,“False”)

但是,我还需要添加顾问=约翰然后显示真实的标准

请帮助如何添加该部分。


0
投票

采用你提供的公式,我将指导你完成这项工作的微小改动:

=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来检查是否在该新数组中找到匹配项。

© www.soinside.com 2019 - 2024. All rights reserved.