【问题标题】:INDEX MATCH on a cell that has data separated by a comma以逗号分隔数据的单元格上的索引匹配
【发布时间】:2019-09-26 10:22:18
【问题描述】:

我有一个 JIRA 数据转储。我正在尝试将 JIRA ID 与名称匹配 - 但是我需要匹配的单元格可以有多个 JIRA ID。

例如 - 我有一个带有 JIRA ID 的需求表的选项卡。

    ColA         ColB    
   JIRA-111      Req1
   JIRA-222      Req2 
   JIRA-333      Req3

然后我有一个来自 JIRA 的转储,其中包含许多相关问题,我想将上面的 ColA 与数据表相匹配,并将 ColB 名称拉到它旁边。问题是,单元格可以有多个 JIRA ID。

ColA                                 ColB
JIRA-111, JIRA-123, JIRA-456         (Want to return here Req1, that matches JIRA-111)
JIRA-222                             (Req2 would be returned)
JIRA-333, JIRA-678                   (want to return here Req3, that matches JIRA-333)

有没有一种方法可以运行 VLOOKUP 或 INDEX MATCH 来搜索具有多个 (,) 的单元格并在任何值与查找表匹配时返回一个值?

【问题讨论】:

  • 第一个 JIRA ID 总是您要搜索的那个吗?如果有超过 1 个 JIRA ID,它们是否有可能与不同的 Req 编号相关?
  • 没有要求将是一个 JIRA 独有的。不应该有多个要求。其他链接的 JIRA 将是缺陷。通常,需求将是第一个链接的 JIRA。
  • Jira ID 的长度和格式是否始终相同?
  • 随着数字的增长,它会从单数跳到双数,再到三数。前任。 JIRA-1、JIRA-11、JIRA-111。这个词将永远保持不变。数字会改变。

标签: excel excel-formula match vlookup


【解决方案1】:

使用相同的设置

工作表 1 A2:A4 包含逗号分隔的数据

工作表“JIRA ID”A2:A4 包含 JIRA ID 映射

表格 1 B2 中的公式:

=INDEX('JIRA ID'!B:B,MATCH(LEFT(A2,(IFERROR((SEARCH(",",A2)-1),len(a2)))),'JIRA ID'!A:A,0))

它假定您要查找的 JIRA ID 是逗号分隔列表中的第一个。如果情况并非总是如此,那么这对您不起作用

【讨论】:

  • 轰隆隆!这已经奏效了。你是对的,只有当我需要的 JIRA ID 是第一个时它才会起作用。在 99% 的情况下,它应该是。我现在就用这个​​。谢谢!
  • 我的公式并不多,LEN 是做什么的?
  • LEN(A2) 返回单元格 A2 中的字符数。在这种情况下,我们在单元格 A2 中取最左边的 x 位,其中 x 是第一个逗号之前的位置,或者如果没有逗号,则为单元格的总长度。然后将其结果用作查找值。
【解决方案2】:

您可以尝试下面的LOOKUP 公式。

设置

工作表 1 A2:A4 包含逗号分隔的数据

工作表“JIRA ID”A2:A4 包含 JIRA ID 映射

表格 1 B2 中的公式:

=LOOKUP(2^15,SEARCH('JIRA ID'!$A$2:$A$4&",",Sheet1!A2&",",1),'JIRA ID'!$B$2:$B$4)

根据 OP 的输入调整公式:(对于整列)"

=LOOKUP(2^15,1/(SEARCH('Test Reqs'!B:B&",",'Test Case Execution'!W89&",",1)*('Test Reqs'!B:B<>"")),'Test Reqs'!C:C)

注意:整个列范围会使公式计算变慢,因此会影响性能。

【讨论】:

  • 您好,谢谢!我刚刚尝试过这个(使其适合我的数据集),目前它只是返回数字 0。所以我正在理解公式,2^15 实现了什么?
  • @PaulHunt 我在发布之前已经测试了这个公式。你能解释一下你的数据布局和公式吗?
  • 这是我更改后的公式 =LOOKUP(2^15,SEARCH('Test Reqs'!B:B&",",'Test Case Execution'!W89&",",1) ,'Test Reqs'!C:C) Test Regs 是 JIRA ID 工作表。 B = 带有键的列。 C = 测试要求的名称。测试用例 ExecutionW89 是我正在查找的单元格。它有两个 JIRA ID,用逗号分隔
  • @PaulHunt 我现在明白了。 “Test Reqs”的范围必须准确,即“Test Reqs”!B1:B900 并且没有空格。但是,如果因此限制它具有挑战性,那么我看到您有一个可行的解决方案。另外,我正在发布一个适用于您的情况的调整。
猜你喜欢
  • 1970-01-01
  • 2011-03-18
  • 1970-01-01
  • 1970-01-01
  • 2015-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多