You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets中提取每行最右侧最后值?需数组公式与脚本方案

提取每行最右侧的有效价格:数组公式与Apps Script解决方案

一、数组公式解决方案

直接使用以下数组公式,无需逐行拖拽,可一次性返回所有行的最后有效价格:

=ARRAYFORMULA(LOOKUP(2,1/(ISNUMBER(F2:J5)),F2:J5))

公式逻辑说明:

  • ISNUMBER(F2:J5):判断每个单元格是否为有效数字价格,返回布尔值数组
  • 1/(ISNUMBER(...)):将有效价格对应的布尔值转为1,无效内容转为#DIV/0!错误值
  • LOOKUP(2,1/(...),F2:J5):LOOKUP会忽略错误值,查找大于所有1的2时,会定位到每行最后一个有效1对应的原始价格,最终返回整列结果

如果需要更直观的写法,也可以用BYROW结合XLOOKUP实现:

=BYROW(F2:J5, LAMBDA(row, XLOOKUP(TRUE, ISNUMBER(row), row, , , -1)))

该写法通过BYROW遍历每一行,XLOOKUP以从右往左的方向(-1参数)查找第一个数字值并返回。

二、Apps Script解决方案

若数组公式存在兼容性问题,可通过自定义函数实现:

  1. 打开Google Sheets,点击「扩展程序」→「Apps Script」
  2. 粘贴以下代码并保存项目:
function getLastPrice(inputRange) {
  const result = [];
  inputRange.forEach(row => {
    let lastValidPrice = '';
    // 从行的末尾向左遍历,查找第一个有效数字价格
    for (let i = row.length - 1; i >= 0; i--) {
      const cellValue = row[i];
      if (typeof cellValue === 'number' && !isNaN(cellValue)) {
        lastValidPrice = cellValue;
        break;
      }
    }
    result.push([lastValidPrice]);
  });
  return result;
}
  1. 返回表格,在目标单元格输入:
=getLastPrice(F2:J5)

即可自动提取每行最右侧的有效价格,支持动态更新范围。

内容的提问来源于stack exchange,提问作者Denis Sivzov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 06:30:08