【问题标题】:How to use **row()** function with **if()** statement in Excel-2010 to return the row number if value is *true*如果值为 *true*,如何在 Excel-2010 中使用 **row()** 函数和 **if()** 语句返回行号
【发布时间】:2019-07-01 06:28:57
【问题描述】:

如何在 Excel-2010 中使用 row() 函数和 if() 语句在值为 true 时返回行号。 如果有其他方法可以让我做同样的工作,我也会很感激。 工作是:我在具有多行的单列中有一系列数据,条件是“如果数据的值大于 50”,我必须在另一列中打印所有所需的数据,每个数据在单独的排。

如果使用 row()if() 函数可以做到这一点,那没关系,也邀请任何其他方法。

【问题讨论】:

  • 您能否提供所需的输出作为示例?
  • 对我来说听起来你不需要行功能。您能否展示一些示例数据和所需输出的屏幕截图?
  • 听起来像是过滤器的工作,然后复制/粘贴。
  • 'Aggregate()` 公式将满足您的目的。
  • 谢谢 Guyz,在 Roman Voronov 给出的公式的帮助下,问题已得到解决。我需要另一个帮助...问题是当我使用 多单元格数组公式 时,我必须选择最少数量的单元格,然后按 (Ctrl+Shift+Enter ),但这是一种手动方法。我可以通过任何方式使其自动化,即我编写公式,输出结果在列的每个单元格中连续发生。

标签: excel excel-formula row excel-2010


【解决方案1】:

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

=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 阶段 - 过滤:

$A$2:$A$20>50

在数组公式中,此代码将根据 >50 次检查将您的值转换为 TrueFalse 的有序(这很重要)数组。例如,如果您有一个值 {55,10,40,51,49,89} 的表,它们将变为 {True,False,False,True,False,True}

第 2 阶段 - 价值分离和定位

IF( [Stage 1] ,ROW($A$2:$A$20),"-")

IF 语句基于真/假检查,返回元素的位置或字符串值“-”。位置与工作表相关,而不是与值相关 - 稍后会很重要。所以,现在我们处理通过我们检查的元素的位置数组和所有其他元素的一些字符串值。

第 3 阶段 - 重新排列位置

SMALL( [Stage 2] ,ROW()-ROW($C$1))-ROW($A$1)

SMALL 函数帮助我们对从第 3 阶段获得的位置重新排序。因此我们将像 {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 阶段 - 返回初始值

INDEX($A$2:$A$20, [Stage 3] )

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

第 5 阶段 - 审美

=IFERROR( [Stage 4] ,"")

只是使错误值不可见。这是一个可选步骤,我喜欢报表流畅而有光泽。

【讨论】:

  • 它起作用了... :D 现在,如果你能向我解释一下,这些公式中的每一个都会一步一步地完成这个过程。这对我有帮助:)
  • @gori_1996 当然,我会尽快在原帖中添加注释。
  • @gori_1996 完成。请检查我的解释是否可以理解。如果有不清楚的地方,我准备添加更多内容。
  • 非常感谢 Roman Voronov 的帮助和解释。它确实帮助了我,但现在我被另一个困住了。问题是当我使用 Multiple Cell Array Formula 时,我必须选择最少数量的单元格,然后按 (Ctrl+Shift+Enter) 应用公式,但这是手动方法.我可以通过任何方式使其自动化,即我编写公式,输出结果在列的每个单元格中连续发生。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-10
  • 1970-01-01
  • 1970-01-01
  • 2015-01-02
  • 2019-08-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多