0
假设我有两列col1
和col2
(它们都是范围对象,例如,set col1 = range("A1:A100")
set col2 = range("C1:C100")
)其中col1
是随着行号增加其值为1,2,3,...,100的ID列。使用k_val = WorksheetFunction.Small(col2, k)
很容易在col2
中找到第k个最小数字。现在我想在col1
中找到与col2
中第k个最小值相对应的匹配ID。我该怎么办?如何使用Excel VBA找到第k个最小元素的匹配ID?
我知道vlookup
能够解决这个问题,但有一个缺陷:如果col2
有两个或更多的值等于k_val
,我可能不会得到正确的ID。另外,我并不想根据col2
对两列进行排序,原因是我不想更改原始表格(您可能会说我可以先将原始表格复制到另一个表格中,但无论如何... ),那么我有没有其他办法可以明智地解决这个问题?
不知道你如何指望处理决定正确的ID的问题,当有两个或更多k_vals一样,很难推荐任何东西。 –
同意@RonRosenfeld。除此之外,这只是另一个'与VLOOKUP'问题返回多个匹配。唯一的问题是确定**哪个匹配的行返回,并且您已经决定这不足以包含在您的问题的叙述中。 – Jeeped
*“但有一个缺陷:如果col2有两个或更多的值......”* :(如上面的评论),直到现在的缺陷是在*规范*中你想要如何处理这种情况。 –