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,即可获得满足条件的全部数据,如下所示。
最新推荐
-
win7如何设置局域网工作机组 win7局域网共享设置工作组
win7如何设置局域网工作机组?win7是一个很经典的电脑操作系统,至今还有大量用户都在使用,在使用过程中 […]
-
win7如何添加自带游戏 win7自带游戏怎么恢复
win7如何添加自带游戏?在win7系统中,自带了很多经典的系统游戏,但是有的用户找不到这些小游戏,那要怎 […]
-
win11用户账户控制怎么取消 win11关闭uac方法
win11用户账户控制怎么取消?在win11系统中,用户帐户控制 (UAC) 可以防止对 Windows […]
-
win10怎么查看网口是百兆千兆还是千兆 电脑网口是百兆还是千兆
win10怎么查看网口是百兆千兆还是千兆?电脑的网口速率,影响着电脑上传下载的速度,但是很多用户都不清楚自 […]
-
系统edge浏览器按f12打不开开发者工具怎么办 edge打不开开发者模式
系统edge浏览器按f12打不开开发者工具怎么办?edge浏览器是windows系统自带的浏览器,在使用E […]
-
Win11文件夹无法取消只读怎么办 文件夹无法取消只读属性
Win11文件夹无法取消只读怎么办?在最新的win11系统中,很多用户都发现自己在进行文件夹权限设置的时候 […]
热门文章
win7如何设置局域网工作机组 win7局域网共享设置工作组
2win7如何添加自带游戏 win7自带游戏怎么恢复
3win11用户账户控制怎么取消 win11关闭uac方法
4win10怎么查看网口是百兆千兆还是千兆 电脑网口是百兆还是千兆
5系统edge浏览器按f12打不开开发者工具怎么办 edge打不开开发者模式
6Win11文件夹无法取消只读怎么办 文件夹无法取消只读属性
7win11下载软件安装不了怎么办 win11安装软件被阻止弹出提示
8yuzu模拟器pc版怎么安装 yuzu模拟器电脑安装教程
9win10玩cf两边有黑边如何改 win10玩cf全屏显示不全
10yuzu模拟器怎么添加游戏 yuzu模拟器添加游戏详细步骤
随机推荐
专题工具排名 更多+