
我们知道在excel中vlookup函数查找只能返回一行数据,使用if{1,0}的方法可以使该函数反向查找 。现在我们要巧妙利用数据的位置关系,使vlookup函数查找可以返回多行,具体方法如下。
首先在数据区域左侧列创建辅助列,并输入公式:=B2&COUNTIF($B$2:B2,B2).公式解析:COUNTIF函数为计数,用$B$2:B2创建一个伸缩区域,意思是计算在B2到B2区域内,B2的个数,当公式向下复制的时候,该公式的参数会自动改变,区域会变B2到B3,B4。。。以此类推。再用B2跟COUNTIF函数链接,目的是为了计算在这个区域内,B2出现的次数。
点击任意单元格创建数据有效性。方法如下:点击数据,数据验证,点击下拉三角,数据验证。允许条件选择序列,来源选择J2:J7区域。在此之前你可以先创建该区域数据。确定后,数据有效性便建立成功。
选择一个区域输入公式:
=IFERROR(VLOOKUP($F$1&ROW(1:1),$A$2:$D$14,COLUMN(B:B),0),"")
公式区域的大小跟你要返回的值的多少是有关系的,如果你的数据
较多,建议多选区域,以免数据因为没有公式不能显示。
公式解析:IFERROR函数是为了屏蔽因为查找不到而返回的错误值。vlookup函数的第一个参数$F$1&ROW(1:1)是为了生成数据个数,row(1:1)生成{1},向下复制公式变成row(2:2)生成{2},以此类推。COLUMN函数返回vlookup函数的第三参数,即返回区域的那一列,向右拖拉公式可以自动改变数据,无需手动改变。0表示精确查找。
具体效果看动画演示。如果对您有用请投票。该经验灵感来源于excelhome版主胡剑。
