【发布时间】:2021-04-15 15:33:31
【问题描述】:
需要找到字母数字之间的前 2 个最大值。数据如下所示 "2FB","4CB","0FW","4CW"
这里的输出会是:4CB,4CW。
字母总是一样的。只有数字会改变。上面的数据是一个函数的输出,我将它存储在 4 个字符串变量中。
非常感谢任何帮助。
之前我将输出保存在每个 excel 行中,并使用下面的 vba 代码来检索最大值。但它没有按预期工作,因为我现在需要前 2 个值
Evaluate("IF(MAX(COUNTIF(" & rng.Address & "," & rng.Address & "))>2,INDEX(" & rng.Address & ",MATCH(MAX(COUNTIF(" & rng.Address & "," & rng.Address & ")),COUNTIF(" & rng.Address & "," & rng.Address & "),0)),0)")
【问题讨论】:
-
之前我已经将输出保存在每个 excel 行中,并使用下面的 vba 代码来检索最大值.. 但它没有按预期工作,因为我现在需要前 2 个值 Evaluate("IF (MAX(COUNTIF(" & rng.Address & "," & rng.Address & "))>2,INDEX(" & rng.Address & ",MATCH(MAX(COUNTIF(" & rng.Address & ", & rng.Address & ")),COUNTIF(" & rng.Address & "," & rng.Address & "),0)),0)")
-
在 rng 中我存储了 2,4,0,4 的值。它有时也会得到 0 作为输出.. 因为我是 vba 的新手,所以需要检查任何其他替代方案
-
“最大值”是什么意思?字母在“最大”部分中扮演什么角色?你的意思是“4A”>“4B”(考虑字母顺序?)还是它们被认为是相同的(只检查数字部分)?
-
是的,只有数字部分
-
yes only numeric part – bvsnkiran 1 hour ago:那么您的问题需要一种非常不同类型的方法。如果您的列表中有2FB,4CB,0FW,4CW,4AB,那么您想要4CB,4CW,4AB中的哪两个?在决定这两个时应遵循什么逻辑?