vlookup对文本的搜索,通常只用来查找唯一值。你这个要求用VLOOKUP根本实现不了。
用数组公式可以实现,不过公式相对比较复杂一些。
当然, 写VBA做一个循环可能更好一些。计算更准确,也更容易达到你的要求。
如果你确认一个组里边只有两个人,那么完全可以使用排序的方式把数值给拿过来直接用。
因为数组公式比较复杂,所以需要你的原表,看看你的原表的具体规律之后才能帮你写, 而且我不会免费给你写的,VBA我也可以写, 但是也不免费,需要请私信。这么做主要因为需要消耗较多的精力。下边把思路给你大概说一下。
写一个数组公式,将等于你前边组别的列行号给提取出来,将其他列号变为0即可,也可以变成表格的最大行好值。对应行号的提取方法是,只要等于你的要查询的条件,则直接乘以行号,不符合的乘以零。这个连函数都不用就可以完成。形成数组之后,用LARGE或者SMALL函数(取决于你将不符合条件的行号如何处理)将符合条件的前两位(或者前N位)给提取出来,分别放到你要求的位置(例如你图中表示的E列)。
看起来公式的思路并不复杂,但是写起来也会费不少劲。另外,如果要帮你做公式,最好有原表,而不是你用自己的想法构造一个虚拟表。因为有原表里边的数据,才能准确把握你的具体数据的规律和准确要求,才能写出更准确的公式。之前接到过好几次提问,他们提问所列出的表, 和实际发过来的表完全不是一回事 。按照他们提问中所列的表,写出的公式一点问题也没有的,到他们真实要求的表里,根本无法完成他们的要求,有的甚至是错误的。
至于VBA的循环,这个更不用我说了。直接循环查找即可。
温馨提示:答案为网友推荐,仅供参考