【问题标题】:Google Spreadsheet Formula to get last value in a row谷歌电子表格公式连续获取最后一个值
【发布时间】:2011-08-08 12:31:02
【问题描述】:

我想知道是否有人可以帮助我解决我希望的简单公式。

我有一个简单的 Product 电子表格,其中有一列是产品名称,例如

产品A

产品 B

产品C

产品D

现在每一行都有一些数值

例如

产品

产品 A 5.0 2.5

产品 B 6.0

产品 C 2.0 4.0 5.0

产品 D 3.0

产品 E 6.0 2.0 1.6 2.9

现在我想要的是在产品旁边有一个列的公式,它向我显示产品的最后输入值的值,例如 上面示例中的值会给我

产品 A 2.5

产品 B 6.0

产品 C 5.0

产品 D 3.0

产品 E 2.9

在 Excel 中,我会使用 INDEX 和 MATCH 执行此操作,但是我无法在 Google 电子表格中使用它。

欢迎提出任何想法。

这是我希望它看起来像的屏幕截图。 http://i.imgur.com/jqcNW.png

在此先感谢

【问题讨论】:

  • 我成功了 :) =index(B2:G2;1;counta(B2:G2))
  • DarkUFO:您应该将其作为答案发布并接受它,以便在搜索中回答问题。

标签: google-sheets


【解决方案1】:

对我来说,这个效果更好,主要是因为它适用于同一行中的任何其他公式:

=LOOKUP(9999999999; (B2:G2))

【讨论】:

  • 这也适用于列... =LOOKUP(9999999999, (E2:E57))
【解决方案2】:

我成功了:)

公式

=index(B2:G2;1;counta(B2:G2))

【讨论】:

  • 如果列中的所有单元格都没有值,这将不起作用
  • 不应该是B2:2,也不是B2:G2
  • 为了澄清@mvinayakam 提出的观点,如果有一个空列的值更靠右,它将不起作用。
【解决方案3】:

一旦我有足够高的声誉,我会更新@mik 的答案。

作为比@mik 更通用的答案,您可以使用一个随数据位置滑动的公式:

=index(B2:G2, 0, max(ARRAYFORMULA(column(B2:G2)*(B2:G2<>""))) - column(B2) + 1)

【讨论】:

    【解决方案4】:

    我使用了与@DannyhelMont 类似的解决方案,但我对其进行了调整以处理字符串。我必须用值填充范围中的第一列以避免出错。

    z's 的字符串按字母顺序比其他所有可能的字符串出现得晚。 hlookup 函数返回小于或等于搜索值的最后一个值。 (如果你在做数字,请使用 9999999999 而不是 z。)

    =HLOOKUP("zzzzzzzzzz",B2:G2,1,true)
    

    这比@DarkUFO 给出的索引/计数解决方案有优势,因为它不依赖于具有值的单元格的数量。如果范围内的任何单元格为空,则 counta 返回一个小于最后一个单元格偏移量的数字。 hlookup 解决方案可以有空单元格。如果所有单元格都为空,则会出现错误。

    【讨论】:

      【解决方案5】:

      如果你可以同时拥有数字和字符串,或者不知道一个大于任何可能的数字或字符串的值,你可以这样做:

      =index(B2:G2,1,max(arrayformula(column(B2:G2)*(B2:G2<>"")-1)))
      

      【讨论】:

        【解决方案6】:

        这将返回名为RangeName 的范围的第一列和最后一行的值:

        =INDEX(RangeName, ROWS(RangeName), 1)
        

        RangeName 是您正在查看的名称或范围。 ROWS 返回该范围内的行数。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-08-05
          • 2020-11-29
          • 2023-03-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多