首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Excel-2010中使用** row ()**函数和** if ()**语句来返回行号如果值为*true*

如何在Excel-2010中使用** row ()**函数和** if ()**语句来返回行号如果值为*true*
EN

Stack Overflow用户
提问于 2019-07-01 06:28:57
回答 1查看 8.4K关注 0票数 0

如何在Excel-2010中使用 row ()函数和 if ()语句来返回行号(如果值为true )。如果有其他的方法,我可以做同样的工作,它也会受到赞赏。作业是:我有一个包含多行的单一列中的数据范围,条件是“如果数据的值大于50”,则必须在另一列中打印所有所需的数据,并将每个数据放在单独的行中。

如果这在row() If ()函数中是可行的,那么也可以邀请任何其他方法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-01 08:30:50

我不确定我是否把你的任务做对了,但我们试试吧。假设在单元格A2:A20中有一些随机数。您可以选择单元格C2:C20并输入多单元格数组公式,方法是在Windows上按Ctrl+Shift+Enter

代码语言:javascript
复制
=IFERROR(INDEX($A$2:$A$20,SMALL(IF($A$2:$A$20>50,ROW($A$2:$A$20),"-"),ROW()-ROW($C$1))-ROW($A$1)),"")

这将检查,如果这些数字高于50,并只打印相关的数字。范围,输入此公式的范围必须至少与“筛选”范围相等。

UPD:那么,它是如何工作的?

第1阶段-过滤:

代码语言:javascript
复制
$A$2:$A$20>50

在数组公式中,这段代码将根据>50项检查将您的值转换为True's和False的有序数组(这很重要)。

2级-值分离与定位

代码语言:javascript
复制
IF( [Stage 1] ,ROW($A$2:$A$20),"-")

这个基于True/False检查的IF语句返回元素或字符串值"-“的位置。位置关系到一张纸,而不是价值-它将是重要的以后。因此,现在我们处理通过我们的检查的元素的位置数组,以及所有其他元素的一些字符串值。

第3阶段-重新排序位置

代码语言:javascript
复制
SMALL( [Stage 2] ,ROW()-ROW($C$1))-ROW($A$1)

函数帮助我们重新排序我们从第三阶段得到的位置,所以我们把像{2,"-","-",5,"-",7}这样的有序数组转换成{2,5,7,"#NUM!","#NUM!","#NUM!"}。错误告诉我们,我们尝试使用字符串执行一些数字操作。这正是我们所需要的,把不相关的价值观分类出来。返回的值是ROW()-ROW($C$1),通过这个减法,我定义了数组从最小值到每一行返回的数目。最后一次减法-ROW($A$1)将工作表相关位置{2,5,7,"#NUM!","#NUM!","#NUM!"}转换为与表相关的位置{1,4,6,"#NUM!","#NUM!","#NUM!"}

第4阶段-返回初始值

代码语言:javascript
复制
INDEX($A$2:$A$20, [Stage 3] )

在我看来,这是最简单的部分。因此,我们有与表相关的位置的数组。现在,我们可以使用索引函数将其转换为实际值。我们告诉函数要查看哪些表以及返回哪些行值。所以我们在内存中的数组{1,4,6,"#NUM!","#NUM!","#NUM!"}变成了类似于这个{55,51,89,"#NUM!","#NUM!","#NUM!"}的东西。这已经是我们想要的结果。由于我们使用的是多单元格数组公式-所有值将在行之间传播。

阶段5 -审美

代码语言:javascript
复制
=IFERROR( [Stage 4] ,"")

只是让错误值不可见。这是一个可选的步骤,我只是喜欢当报告是光滑和闪亮的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56830899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档