用公式来判断一系列数字的值是否在增加?

用公式来判断一系列数字的值是否在增加?

我有一张包含数千组数字的电子表格。也就是说,有十列,每列都有一个数字 - 这些数字有数千行。

我想要做的是检查每行上的数字是否在增加。例如,假设这是第一行(每个数字都是一个单独的列):

13. 17. 25. 37. 39. 40. 53. 61. 68. 71

如您所见,数字都在增加。现在让我们想象这是第二行:

13   5.  3. 18. 34. 17. 49. 83. 63. 71 

在这种情况下,起始数字和结束数字与第一组数字相同,但所采用的路径却截然不同。

我想要一个公式来评估增长的持续性。

有任何想法吗?

答案1

=IFERROR(IFS(B6<A6,FALSE,C6<B6,FALSE,D6<C6,FALSE,E6<D6,FALSE,F6<E6,FALSE,G6<F6,FALSE,H6<G6,FALSE,I6<H6,FALSE,J6<I6,FALSE),TRUE)

我相信那是最简单的方法。

IFS 检查每个数字与前一个数字,如果它低于前一个数字,它将返回 FALSE。

如果所有数字都大于前一个数字,那么 IFS 将不会产生输出,从而导致 NA 错误。

ISERROR 会将 NA 错误转换为 TRUE,这意味着数字都在增加。

要获取序列中有多少个数字大于前一个数字:

=COUNTIF(B11,">" & A11)+COUNTIF(C11,">" & B11)+COUNTIF(D11,">" & C11)+COUNTIF(E11,">" & D11)+COUNTIF(F11,">" & E11)+COUNTIF(G11,">" & F11)+COUNTIF(H11,">" & G11)+COUNTIF(I11,">" & H11)+COUNTIF(J11,">" & I11)

每次计数时,都会将当前数字与前一个数字进行比较,并且只有当数字较大时才会计数,然后将所有计数相加。

答案2

您可以使用数组公式来实现这一点:

数组公式

假设您的数据在 中A1:J1,然后在单元格中输入以下公式=AND(B1:J1>A1:I1)并按Ctrl+ Shift+Enter创建数组公式 - 请注意,excel 会{}自动将公式换行(您无法手动换行!)。在 Google 表格中,您可以使用函数ArrayFormula内部AND而不是 excel 快捷方式:AND(ArrayFormula(B1:J1>A1:I1))

这将对 进行逐元素计算>,然后检查它们是否全部为真。请注意,两个范围相差一个单元格,但长度相同,因此将对B1A1进行比较,C1然后B1进行比较,依此类推。然后将结果数组传递给 以AND检查它们是否全部为真。

一旦为第一行插入了数组公式,如果有多行,则只需将每行的公式向下拖动即可。


或者,如果出于某种原因您不想使用数组,则可以通过在数字列表下方或旁边(或任何地方)添加另一个单元格区域来实现此目的。在这个额外的单元格区域中,您可以对每个单元格进行比较。

比较公式

数据从 开始A1,然后在单元格 中B2添加公式(B1 > A1),然后将公式拖动到与数据宽度匹配的位置(公式将自动更新引用)。最后,您只需检查所有这些单元格是否为真,这可以使用 来完成AND(B2:J2)

答案3

由于您标记了 google-spreadsheets,您还可以使用一个ArrayFormula公式来简化这一过程:

=AND(ARRAYFORMULA(B1:J1>A1:I1))

如果行数发生变化,您可以相应地调整J1I1

如果右侧的所有列都是空白的,您可以执行=AND(ARRAYFORMULA((B1:Z1>A1:Y1)+(ISBLANK(B1:Z1))))此操作,只要后面的列都是空白的,它将自动对最多 26 列进行操作。

答案4

如果你有以下问题,这些答案将会有用动态数组公式在您的 Excel 版本中可用。


新的、更简单的答案:

您可以使用动态数组公式来检查每个元素是否严格小于另一个数组中的元素。

=AND((A1:I1) < (B1:J1))

这很简单,基本上就是说,是A1 < B1等等B1 < C1,直到数组的末尾。

诀窍在于我们偏移两个列表,以便将每个项目与原始数组中的下一个值进行比较。

因此,我们进行比较A1:I1-B1:J1第一个数组是从第一项到倒数第二项,第二个数组是从第二项到倒数第二项。


原始答案:

如果允许列表按>=顺序排列(而不是严格排列>) - 即 if1, 2, 3, 3, 4也是有效的。

您可以对值进行排序,然后将排序后的值与原始值进行比较。

如果原始值按升序排列,则排序后的列表将等于原始列表。

数组排序示例

这将按列排序,比较每个值,然后将AND()列表结果进行比较:

=AND(SORT(A1:J1,1,1,TRUE)=A1:J1)

如果您正在比较单列数据,那么它会稍微简单一些:

=AND(SORT(A1:A10)=A1:A10)

相关内容