【问题标题】:Count number of times values increase in range - Google Sheets计数值在范围内增加的次数 - Google 表格
【发布时间】:2020-12-24 08:04:40
【问题描述】:

你好吗?我只是不确定在这里做什么,但我肯定可以使用您的帮助!

我在一个行范围内有一系列值,如下所示:

1000 2000 1500 2100 3200

我需要找出一个 google 表格公式,将其放入该行的第 6 个单元格中,该公式计算任何单元格的值大于其左侧的次数。在这个例子中,我的结果应该是3

有什么办法可以做到吗?在 Excel 或 Google 表格中,学习任何一个都很好。

谢谢

【问题讨论】:

    标签: google-sheets range


    【解决方案1】:

    你也可以试试下面的公式

    =COUNTIF(QUERY({{"";TRANSPOSE(B2:F2)},{TRANSPOSE(B2:F2);""}}, 
                   "select Col1-Col2 offset 1 label Col1-Col2 ''",0), "<0")
    

    【讨论】:

    • 这绝对完美,非常感谢!
    • 嘿@marikamitsos,你能告诉我如何计算逆向吗?也就是说,从左到右计算值在该范围内减少了多少次?
    • 嘿@CrystalThomas。这么晚才回复很抱歉。 “计算值在该范围内减少了多少次,从左到右”只需将&lt;0更改为&gt;0
    【解决方案2】:

    假设您在 A2:E 中有数据,请将以下内容放在 F2 中:

    =ArrayFormula(IF(A2:A="",,MMULT(IF(B2:E&gt;A2:D,1,0),SEQUENCE(4,1,1,0))))

    由于只有四列可能大于其他列 (B:E),因此您可以这样构造它。 MMULT 很难解释,但它本质上是将一个矩阵(范围)每一行中的所有内容乘以另一个范围中的所有内容,然后将它们相加。 SEQUENCE 只是形成一个由四个 1 组成的列,然后将第一个范围的每一行中的所有内容相乘然后相加。由于任何乘以 1 都是原始数字,因此这仅用于逐行添加。

    此公式将处理与 A2:E 中的数据一样多的行。

    【讨论】:

    • @Crystal,我看到您在页面的其他地方询问过公式是否适用于数据填充“不同长度”的行。我的会进行简单的修改。但在示例电子表格上向您展示最有效。按照其他人的要求,请共享指向此类工作表的链接,并确保将链接的共享权限设置为“任何人 > 编辑”。例如,在其中包含 10 行数据,这些数据与实际工作表中出现的数据范围相同,并且长度不同,反映了实际数据的长度。
    【解决方案3】:

    在第 2 行的第 7 列尝试:

    =ARRAYFORMULA(MMULT(IF(A2:E4<B2:F4, 1, 0), {1;1;1;1;1}^0))
    

    【讨论】:

    • 是的,我的想法也是如此。但是,您不需要那个额外的列,因为唯一可能更大的列是 B:E。 (见我新添加的回复。)
    • 从A开始不会失败;它被设计为从 A 开始。我只处理 E,而不是 F。再看一遍(或者更好的是,将我的解决方案弹出到 A2:E 中的数字表中。我的公式是将 B2:E 与 A2:D 进行比较,所以比较 A2:E。
    • @ErikTyler 是的,确实如此
    • 非常感谢大家,非常感谢您的反馈。这是挑战:并非每一行的长度都相同。虽然我在上面找到了另一个解决方案,但它仍然很好学习 - 这仍然有效吗?
    • @CrystalThomas 你能分享一份你的工作表吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-15
    • 2019-12-21
    • 1970-01-01
    • 2017-05-21
    • 2017-12-06
    相关资源
    最近更新 更多