0

我正在尝试从一列中查找一个值,如果找到,则将第二列中的相应单元格复制到新单元格。

B 列是名称列表 M 列是另一个名称列表,也可以在 B 列中找到,并且该列表在 L 列中具有与其关联的 ID #。

我想做的是以下内容;如果在 M 列中找到 B2 中的值,则将 L 中的相邻单元格复制到所查找名称旁边的 A 列。

关于 M 列中名称的一个注释,它们有点偏离,但可以通过在 B 列的单元格中抓取 X 个字符来匹配。

到目前为止,我想出了以下内容:

 =INDEX($L$1:$L$130,SMALL(IF(ISNUMBER(SEARCH(LEFT($B2,10),$M$1:$M$130)),MATCH(ROW($M$1:$M$130),ROW($M$1:$M$130))),ROW(A1)))

想法或建议..如果有更好的方式我游戏。我发现上面搜索谷歌并在昨天工作。我不确定我是否完全理解最后的 ROW(A1)

谢谢。

4

2 回答 2

1

最简单的解决方案是将列 L 移动或复制到列 M 的右侧并进行简单的查找。例如,如果您将 L 列复制到 N 列,则单元格 A2 中的公式将是:

=IFERROR(VLOOKUP(LEFT(B2,10),$M$1:$N130,2,0),"-")

如果您需要将帮助列进一步向右移动,您只需扩大查找范围以包含该列,并调整索引号(此处为 2)以返回该列。

如果您不能或不想将 L 列移动或将其复制到 N 列的右侧,则此公式将起作用:

=IFERROR(INDEX($L$1:$L$130,MATCH(LEFT(B2,10),$M$1:$M$130,0)),"-")

您会看到我已将两个公式都包装在 IFERROR 中以处理不匹配项。

正如 BarryHoudini 在他的评论中指出的那样,如果单元格 B2 中的值与单元格 M1:M130 中的完整值不匹配,即如果这些单元格中的值在前 10 个之后有其他字符,则 LEFT(B2,10)上述公式中应改为 LEFT(B2,10)&"*"。

于 2013-01-23T19:14:48.913 回答
1

这应该做的工作:

=INDEX($L:$L,MATCH(左($B2,10),$M:$M,0))
于 2013-01-23T19:15:03.563 回答