【问题标题】:excel index function implementation needed需要excel索引函数实现
【发布时间】:2017-04-27 03:56:11
【问题描述】:

在下面的公式中,

我需要搜索第一张表中的每一行、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,"")

【问题讨论】:

  • =INDEX(Sheet2!$B:$B, MATCH(criteria, Sheet2!$B:$B, 0)) 其中条件是您尝试匹配的值。
  • 让我感到困惑的是,我必须匹配工作表 1 中的第 2 行,以及工作表 2 中的另一行,并且标准是 E2=B 列中的值和 C2 中的值 - 列中相应行的值D、我应该如何制作上面的公式才能得到我想要的值?
  • 你可以通过定义两个查找值来匹配上面的两个值,例如{=MATCH(Sheet1!$E2&Sheet1!$C2,Sheet2!$B:$B&Sheet2!$D:$D, 0)}只记得输入CTRL+SHFT+ENTER
  • =X2&"|" & IF(AND(Sheet1!E2=Sheet2!B2,Sheet1!C2=Sheet2!D2),Sheet2!Z2 & "|" & Sheet2!Y2,"") 满足条件 AND Sheet1!E2=Sheet2!B2, Sheet1!C2=Sheet2!D2,我需要从 Z 列和 Y 列中提取值,仍然困惑我应该如何将您的建议与我的公式结合起来......
  • 我也是,放一些样本数据。在您上面的评论中,它说IF A = BIF A = B,为什么要检查两次相同的东西?您需要阅读下面鲍里斯的回答,然后搜索 INDEX MATCH Multiple Values。

标签: excel excel-formula


【解决方案1】:

希望这能帮助你掌握INDEXMATCH背后的逻辑:

INDEX(array, row_num, [column_num]) - 从单元格返回值。

  • 数组 - 您希望从中得到结果的单元格范围。
  • 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]) - 返回第一个匹配的行/列。

注意:返回的行号/列号是相对于所选范围的。

  • lookup_value - 这是您要查找的数字或文本,可以是值或单元格引用。
  • lookup_array - 要在其中搜索值的单元格范围。
  • ma​​tch_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) 将在A 列中找到Cat,并从B 列的同一行返回值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 2021-03-24
    相关资源
    最近更新 更多