这是我的数据。 我想知道我是否可以查看所有韩国股票。所以输入值应该是" SOUTH KOREA"结果表/数组应如下所示:
实际上,我无法使用VLOOKUP,因为1)查找值(国家/地区名称)位于右栏,2)它将仅返回第一个值(STOCK A)。我需要返回所有值(STOCK A,STOCK B,STOCK E和STOCK F)。我真的很感激帮助!
答案 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)
答案 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"
。
根据需要调整范围以适应和复制。