【问题标题】:How can I find in Excel the last column where the value is different than in the prior column?如何在 Excel 中找到值与前一列不同的最后一列?
【发布时间】:2021-03-12 20:19:25
【问题描述】:

我有很多行的测量值从左到右进行,最右边的测量值是最近的测量值。通常这些值会在某个时候变为零,并一直保持为零。

我正在尝试查找发生更改的最后一列。我尝试了很多,但无法弄清楚。在第一个示例(第 2 行)中,这将是第 V 列(=标题为 18 的列),其中值为 -1.60,并且没有其他可用值。在第二个示例(第 3 行)中,这将是 P 列(标题 12),依此类推。为了找到这个最后更改的列,我有三个步骤(A、B、C 列)和一个检查(D 列),以查看之后是否确实没有更多的非零值。这在许多情况下都很好用,但如果有一个零值,然后是非零值,直到最后都为零(第 6 行和第 7 行),它就不起作用。因为在我的情况下有很多列(最多 270),所以它应该是一个通用公式。

我很想附上示例 Excel,但我认为这在此处是不可能的。但是,我确实将数据部分(E1:W7)作为 csv 粘贴到此处example data as csv,希望没问题。这里是第 7 行和 A 到 D 列的四个公式:

=COUNT(E7:W7)
=INDEX($E7:$W7,0,$A7)
=MATCH($B7,$E7:$W7,0)
=SUM(INDEX($E7:$W7,0,$C7+1):W7)

【问题讨论】:

    标签: excel


    【解决方案1】:

    如果你需要最后一个值改变的位置(或对应的列标题),你可以使用Aggregate:

    =AGGREGATE(14,6,D$1:U$1/((D2:U2<>"")*(C2:T2<>D2:U2)),1)
    

    或者如果你有 Excel 365,你可以使用过滤器:

    =MAX(FILTER(D$1:U$1,(D2:U2<>"")*(D2:U2<>C2:T2)))
    

    然后你可以像以前一样使用Index来查找值:

    =INDEX(C2:T2,A2)
    

    或使用@Ron Rosenfield 的公式。

    【讨论】:

      【解决方案2】:

      试试:

      =LOOKUP(2,1/((B4:Z4&lt;&gt;C4:AA4)*NOT(ISBLANK(C4:AA4))),C4:AA4)

      如果我理解你所做的事情的逻辑,这个公式应该返回最后的变化。

      如果没有给出预期的结果,请回复失败行的示例以及您的预期。

      请注意,使用了两个水平引用,一个与另一个偏移一列。

      【讨论】:

        猜你喜欢
        • 2018-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-08
        • 2018-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多