ROW与ROWS函数,生成连续的整数
有时候,我们希望公式中有一部分能够在该公式向下复制到连续的行时,生成一系列连续的整数。
一个经典的示例是使用INDEX/SMALL组合的公式,例如下面的公式1:
=INDEX($B$1:$B$10,SMALL(IF($A$1:$A$10=”A”,ROW($A$1:$A$10)-MIN(ROW($A$1:$A$10))+1),1))
查找单元格区域A1:A10中数据为“A”的第一个单元格,并提取单元格B1:B10中对应行的数据,如下所示。

实际上,还可以使用一个更简单一点的公式2:
=INDEX($B$1:$B$10,SMALL(IF($A$1:$A$10=”A”,ROW($A$1:$A$10)),1))
然而,我觉得开头提到的那个长一点的公式1更好一些,因为如果单元格区域不是从A1开始的话,那个公式1更灵活。
在公式中,末尾的1代表SMALL函数中的参数k,即第k小的值,上例中我们取出的是找到的第1个值。在中我们可以看到,列A中还有几个单元格中的数据是“A”,如果我们要全部获取这些值,则需要末尾的参数k能够变成2、3,等等。
可以使用ROW函数:ROW()或者ROW(A1),如下公式3:
=INDEX($B$1:$B$10,SMALL(IF($A$1:$A$10=”A”,ROW($A$1:$A$10)-MIN(ROW($A$1:$A$10))+1),ROW()))
将公式向下拖放至单元格D3,即可获得该示例中所有的结果,如下所示。

然而,这样的方式存在两个缺点:
1. 其值取决于最开始放置公式的那个单元格。
2. 如果在所涉及到的单元格区域中插入或删除行,那么可能得到错误的结果。
其实,解决这样的问题的最好方法是使用ROWS函数:
ROWS($1:1)
或者:
ROWS(A$1:A1)
将会提供连续的整数且没有前面提到的缺点。
这样,可以使用下面的公式4来代替上文中的公式1:
=INDEX($B$1:$B$10,SMALL(IF($A$1:$A$10=”A”,ROW($A$1:$A$10)-MIN(ROW($A$1:$A$10))+1),ROWS($1:1)))
向下拖至单元格D3,即可获得满足条件的全部数据,如下所示。

最新推荐
- 
                                
                                    
excel怎么把一列数据拆分成几列 excel一列内容拆分成很多列
           excel怎么把一列数据拆分成几列?在使用excel表格软件的过程中,用户可以通过使用excel强大的功能 […]
 - 
                                
                                    
win7已达到计算机的连接数最大值怎么办 win7连接数达到最大值
           win7已达到计算机的连接数最大值怎么办?很多还在使用win7系统的用户都遇到过在打开计算机进行连接的时候 […]
 - 
                                
                                    
window10插网线为什么识别不了 win10网线插着却显示无法识别网络
           window10插网线为什么识别不了?很多用户在使用win10的过程中,都遇到过明明自己网线插着,但是网络 […]
 - 
                                
                                    
win11每次打开软件都弹出是否允许怎么办 win11每次打开软件都要确认
           win11每次打开软件都弹出是否允许怎么办?在win11系统中,微软提高了安全性,在默认的功能中,每次用户 […]
 - 
                                
                                    
win11打开文件安全警告怎么去掉 下载文件跳出文件安全警告
           win11打开文件安全警告怎么去掉?很多刚开始使用win11系统的用户发现,在安装后下载文件,都会弹出警告 […]
 - 
                                
                                    
nvidia控制面板拒绝访问怎么办 nvidia控制面板拒绝访问无法应用选定的设置win10
           nvidia控制面板拒绝访问怎么办?在使用独显的过程中,用户可以通过显卡的的程序来进行图形的调整,比如英伟 […]
 
热门文章
excel怎么把一列数据拆分成几列 excel一列内容拆分成很多列
2win7已达到计算机的连接数最大值怎么办 win7连接数达到最大值
3window10插网线为什么识别不了 win10网线插着却显示无法识别网络
4win11每次打开软件都弹出是否允许怎么办 win11每次打开软件都要确认
5win11打开文件安全警告怎么去掉 下载文件跳出文件安全警告
6nvidia控制面板拒绝访问怎么办 nvidia控制面板拒绝访问无法应用选定的设置win10
7win11c盘拒绝访问怎么恢复权限 win11双击C盘提示拒绝访问
8罗技驱动设置开机启动教程分享
9win7设置电脑还原点怎么设置 win7设置系统还原点
10win10硬盘拒绝访问怎么解决 win10磁盘拒绝访问
随机推荐
专题工具排名 更多+

  
									
                                
  
									
                                
  
									
                                
  
									
                                
闽公网安备 35052402000376号