【发布时间】:2014-09-11 21:33:10
【问题描述】:
我有一张表格,其中的列是一年中的月份,而行是各种指标。每个月,我们都会在右侧添加另一列。
我需要一些东西,我可以给一个 ROW,它总是会返回最正确的值。也就是说,每当我们为新月份添加一列时,它就会自动更新。
【问题讨论】:
标签: google-sheets
我有一张表格,其中的列是一年中的月份,而行是各种指标。每个月,我们都会在右侧添加另一列。
我需要一些东西,我可以给一个 ROW,它总是会返回最正确的值。也就是说,每当我们为新月份添加一列时,它就会自动更新。
【问题讨论】:
标签: google-sheets
有几种方法,但只有一种方法(考虑本示例中的第 2 行):
=FILTER(2:2,COLUMN(2:2)=MAX(FILTER(COLUMN(2:2),LEN(2:2))))
【讨论】:
我很高兴找到@AdamL 的答案,它确实让我很开心,但我后来找到了一种更简单的方法,可以很好地用于我的数据样本,那就是使用 LOOKUP 函数。
LOOKUP 函数将在给定范围内查找某个值,但如果您向它传递一个巨大的值,即超出您的数据范围的值,则默认情况下它会返回最后一个最右边的值。
答案很简单,只需将范围(或行,如果这是您需要的)传递给它,并传递一个巨大的值(许多人使用 Excel 可以处理的最大数字来执行此操作,但 Google 表格不是 Excel,并且因为我不知道 Google 表格可以处理的最大数量是多少,所以我只会在我的数据集之外给它一个值)。假设您需要查找整个第 2 行:
=LOOKUP(999999999,2:2)
就是这样。
如果没有任何数据,这个函数会抛出一个错误,所以如果你(像我一样)只需要在它存在的情况下获取那个特定的值,你可以将它与一个简单的 IF 函数结合起来:
=IF(ISERROR(LOOKUP(999999999,2:2)),"EMPTY",LOOKUP(999999999,2:2))
如果 LOOKUP 函数返回错误,您可以将字符串“EMPTY”替换为您想要的任何值或函数。
我希望这个更简单的方法能有所帮助,并再次感谢 @AdamL 的原始回答。
【讨论】:
为未来的读者添加这个。我多年前找到的获得最右边值的公式是:
=index(2:2,1,COUNT(2:2))
但是,对于包含数据的单元格中的每个空白单元格,返回值是倒数第 N 个值(第 2 行中的 2 个空白单元格,公式将返回右侧倒数第三个值,而不是最右侧的值)。它似乎有效,但并非在所有情况下都是准确的。
因此,我不推荐这个公式,因为如果在数据中最右边之前有一个空单元格,你就不能依赖它。
【讨论】: