如何在 Excel 表之间映射详细信息?

如何在 Excel 表之间映射详细信息?

我有一张 Excel 工作表,其中包含两张表和两列,每张表包含以下输入:

表 1 数据:

column1                                         column2
-------                                         -------

/a/b/c/d/good_1_test.mp        
/d/e/f/g/test_2_xyz_pqr.pset
/a/b/g/d/good_1_test2.mp  
/d/e/f/g/test_2_xyz_pqr.pset

表 2 数据:

  column1                                         column2
  -------                                         -------
  good_1                                           orange
  test_2                                           apple

我希望 Sheet 1 的输出如下所示:

column1                                     column2
-------                                     -------
/a/b/c/d/good_1_test.mp                     orange
/d/e/f/g/test_2_xyz_pqr.pset                apple
/a/b/g/d/good_1_test2.mp                    orange
/d/e/h/g/test_2_xyz_pqr.pset                apple

答案1

以下适用于任何路径长度,即不仅包括/a/b/c/d/test_2_xyz_pqr.pset,还包括/pump/up/the/jam/pump/it/up/test_2_xyz_pqr.pset。它提取最后一个 之后的第一个 6 个字符的字符串/,并在 Sheet 2 表中查找它。

将其粘贴到单元格中B1并向下拖动:

=VLOOKUP(MID(A1,FIND(CHAR(1),SUBSTITUTE(A1,"/",CHAR(1),LEN(A1)
    -LEN(SUBSTITUTE(A1,"/",""))))+1,6), Sheet2!A:B, 2, FALSE)

假设您的“工作表 1 的第 1 列”数据从 开始A1,而您的“工作表 2”数据位于 A 列和 B 列(最好这些列中没有其他任何内容)。

test_4此外,它假设查找表中只有 6 个字符的字符串(例如)。如果您想考虑不同长度的字符串,那么答案将更加复杂。

答案2

对于您所描述的具体情况,请在第 2 列中尝试此操作并向下拖动(确保根据需要更改单元格或列):

=VLOOKUP(MID$($A2,10,6), Sheet2!A:B, 2, False)

答案3

如果您可以使用用户定义函数。这是从以下函数改编而来的:超级用户 作者:@Hidden Koala

   Option Compare Text
   Public Function RETURNTEXT(src As Range, crt As Range, col as Integer) As String
   s = Trim(src.Value)
   For Each c In crt
    If InStr(1, s, Trim(c.Value)) Then newstr = WorksheetFunction.VLookup(Trim(c.Value), crt, col, False)
    Next c
    RETURNTEXT = newstr
    End Function

定义要查找和返回的字符串的范围在此示例中为 Sheet2!$A$1:$B$2

...添加了一个要返回的列,使其更加通用,类似于 vlookup 函数

然后输入的函数为 =RETURNTEXT(A3,Sheet2!$A$1:$B$2,2)

相关内容