Excel 解析包含逗号分隔列表的单元格并使用每个值作为索引

Excel 解析包含逗号分隔列表的单元格并使用每个值作为索引

Excel Sheet1,ColumnA 是

1) 3, 2, 4
2) 1

这些数字指的是 Sheet2 中的行号,ColumnB,其中包含标识符

1) foo
2) bar
3) eggs
4) sausage

我最终应该得到 Sheet 1 中的一列,其中包含

1) eggs, bar, sausage
2) foo

我很确定我可以用 Python 脚本来做这件事,但是我更喜欢用 Excel 来做。不幸的是,我对 VBA 几乎一无所知。

文本到列不行:您无法定位到新工作表,但 Sheet1ColumnA 中的单元格可能包含任意数量的项目。

编辑:VLOOKUP 在这里不起作用,因为它按单元格查找内容。这里我想按单元格查找参考。如果我能让 INDEX 迭代单个单元格中多个逗号分隔的值,那么 INDEX 就可以了。我需要先解析单元格中的值,然后使用某种 INDEX 来查找每个值的对应查找值。

答案1

这个 VBA 代码可以达到这个目的:

Public Function mysearch(value As String)
    Dim myrows() As String
    myrows = Split(value, ",")
    result = ""
    For i = LBound(myrows) To UBound(myrows)
        a = ThisWorkbook.Worksheets(2).Cells(myrows(i), 2) 'The first 2 is the number of sheet and the last 2 is the column.
        result = result & a & ","
    Next i
    result = Left(result, Len(result) - 1)
    mysearch = result
End Function

ALT使用+转到宏/VBA F11。在 ThisWorkbook 下插入一个模块并将代码粘贴到右侧。

如果您的参考数据在 Sheet1 的 A 列中,则将其放入单元格 B1 中=mysearch(A1),如果数据在 Sheet2 的 B 列中,您将得到结果。

相关内容