我可以使用vlookup或match / index查找左侧的数据,而不是查找值吗?

时间:2018-06-07 12:19:10

标签: excel

enter image description here

这是我的数据。 我想知道我是否可以查看所有韩国股票。所以输入值应该是" SOUTH KOREA"结果表/数组应如下所示: enter image description here

实际上,我无法使用VLOOKUP,因为1)查找值(国家/地区名称)位于右栏,2)它将仅返回第一个值(STOCK A)。我需要返回所有值(STOCK A,STOCK B,STOCK E和STOCK F)。我真的很感激帮助!

2 个答案:

答案 0 :(得分:1)

我的意思是使用内置过滤器功能似乎更合乎逻辑,但如果你绝对坚持使用公式/代码,那么:

只需使用这个简单的程序

Private Sub sort_wares(From As String, toColumn As Integer)

    Dim ws As Worksheet: Set ws = Sheets("Sheet1")
    Dim tbl As ListObject: Set tbl = ws.ListObjects("Table1")
    Dim index As Integer
    index = 2

    For Each Rng In tbl.ListColumns(2).DataBodyRange
        If Trim(LCase(Rng)) = Trim(LCase(From)) Then

            ws.Cells(index, toColumn + 1) = Rng
            ws.Cells(index, toColumn) = Rng.Offset(0, -1)

            index = index + 1
        End If

    Next Rng
End Sub

您可以轻松调用该过程,例如,如果我们从以下数据中查找津巴布韦的所有商品并将其打印到第5列(E),我们将执行以下操作

Call sort_wares("Zimbabwe", 5)

enter image description here

答案 1 :(得分:0)

您可以使用以下功能。请注意,它是需要通过同时按 CTRL + SHIFT + ENTER 提交的数组公式。如果正确完成,Excel将使用{}包装公式!

=IFERROR(INDEX($A$1:$A$1000,SMALL(IF($B$1:$B$1000="SOUTH KOREA",ROW($B$1:$B$1000)),ROWS($A$1:A1))),"")

您可以用单元格引用替换"SOUTH KOREA"

根据需要调整范围以适应和复制。