在以下公式中,
我需要搜索第一张中的每一行, sheet2 中的所有行,列 B 和 D ,并从那里获取相应的值:
=X2&"|" & IF(AND(Sheet1!E2=Sheet2!B2,Sheet1!C2=Sheet2!D2),Sheet2!Z2 & "|" & Sheet2!Y2,"")
=X2&"|" & IF(AND(Sheet1!E2=Sheet2!B:B,Sheet1!C2=Sheet2!D:D),Sheet2!Z#INDEX_of_lineWHICHMATCHESCRITERIA & "|" & Sheet2!Y#INDEX_of_lineWHICHMATCHESCRITERIA,"")
我还没有想到如何正确使用INDEX
函数来实现这一点,并结合上面的公式
我详细说明了这个任务: 我有一个excel文件。需要完成的任务如下:对于每一行(实际上对于每个id,存储在A列中 - 存在于表1中),以下条件为真:
列E(存在于表1中)=列B(存在于表2中)和列C(存在于表1中)=列D(存在于表2中),
我必须将列Z(存在于表2中)和列Y(存在于表2中)中的数据插入到列X(存在于表1中)。
如果列X中已包含数据,则所有新插入的数据必须具有|作为分隔符,应插入现有值的前面。
如果列Z或Y中不存在任何数据,则不会向列X插入任何内容。
我尝试过没有成功,使用索引匹配,但没有运气,我认为需要更复杂的东西。我怎么能用excel公式做到这一点?如何改变以下公式,以获得满足条件的行? = X2&安培; “|” &安培; IF(AND(Sheet1!E2 = Sheet2!B2,Sheet1!C2 = Sheet2!D2),Sheet2!Z2&“|”& Sheet2!Y2,“”)
= X2&安培; “|” &安培; IF(AND(Sheet1!E2 = Sheet2!B:B,Sheet1!C2 = Sheet2!D:D),Sheet2!Z#lineWHICHMATCHESCRITERIA&“|”& Sheet2!Y#lineWHICHMATCHESCRITERIA,“”)
答案 0 :(得分:1)
希望这可以帮助您掌握INDEX
和MATCH
背后的逻辑:
INDEX(array, row_num, [column_num])
- 从单元格返回值。
注意:行/列号与选定范围有关。
示例:
INDEX(A1:A5,3)
将从A3 INDEX(A5:A10,3)
将从A8 INDEX(A1:G1,3)
将从C1返回值 MATCH(lookup_value, lookup_array, [match_type])
- 返回第一场比赛的行/列。
注意:返回的行/列号与选定范围有关。
示例:
MATCH("Cat",A1:A5,0)
将返回值为“Cat”的单元格的行号现在,如果将这两者结合起来,它将如下所示:
INDEX (column to return a value from, (MATCH (lookup value, column to search from, 0))
示例:
INDEX(B1:B5,MATCH("Cat",A1:A5,0)
会在Cat
列中找到A
,并从列B
的同一行返回值。