Excel 如何根据某一列最后一个非空值进行计算

举报
汪子熙 发表于 2024/06/30 23:19:18 2024/06/30
【摘要】 要在 Excel 中创建一个公式,使第三列的某个单元格显示第二列最后一个非空单元格的数值乘以 7,你可以采用一些 Excel 内置函数来实现。这个过程中,我们将会用到 LOOKUP, INDEX, MATCH 等函数。在这里,我将为你详细解释每一步的操作方法和原理,确保你可以顺利实现这个功能。 解决方案一:使用 LOOKUP 函数LOOKUP 函数在 Excel 中非常适合用来查找一列中的最...

要在 Excel 中创建一个公式,使第三列的某个单元格显示第二列最后一个非空单元格的数值乘以 7,你可以采用一些 Excel 内置函数来实现。这个过程中,我们将会用到 LOOKUP, INDEX, MATCH 等函数。在这里,我将为你详细解释每一步的操作方法和原理,确保你可以顺利实现这个功能。

解决方案一:使用 LOOKUP 函数

LOOKUP 函数在 Excel 中非常适合用来查找一列中的最后一个非空单元格。这个函数有两种形式:向量形式和数组形式。在此案例中,我们使用向量形式来查找第二列中最后一个非空单元格的值。

公式构建

在第三列的目标单元格中,输入以下公式:

=LOOKUP(2, 1 / (NOT(ISBLANK(B:B))), B:B) * 7

公式解析

  • ISBLANK(B:B):这个部分会检查第二列每个单元格是否为空,返回一个布尔值数组。
  • NOT(ISBLANK(B:B))NOT 函数将上述的布尔值数组取反,即非空单元格对应的结果为 TRUE
  • 1 / (NOT(ISBLANK(B:B))):这一步将真值转换为 1,假值因为除以 0 而转换为错误值(#DIV/0!)。这使得 LOOKUP 函数可以忽略所有空白单元格。
  • LOOKUP(2, 1 / (NOT(ISBLANK(B:B))), B:B)LOOKUP 将在由 1 组成的数组中查找 2,由于 2 大于任何数组中的 1,所以它返回数组中最后一个 1 的对应 B 列的值。
  • 结果乘以 7 完成最后的计算。

解决方案二:使用 INDEXMATCH 函数

如果你更倾向于使用 INDEXMATCH 函数,这也是一个非常有效的方法来找到最后一个非空单元格的值。MATCH 函数可以返回指定项在数组中的位置,而 INDEX 函数则可以根据这个位置来返回数组中的具体值。

公式构建

在第三列的目标单元格中,输入以下公式:

=INDEX(B:B, MATCH("zzz", B:B)) * 7

公式解析

  • MATCH("zzz", B:B):这里 "zzz" 是一个用来确保 MATCH 查找到最后一个非空单元格的技巧。由于 "zzz" 在文本排序中位于非常靠后的位置,这个函数会返回第二列中最后一个具体数值的位置。
  • INDEX(B:B, MATCH("zzz", B:B))INDEX 函数根据 MATCH 函数找到的位置,返回第二列中相应的值。
  • 结果再乘以 7,得到最终数值。

通过上述任一解决方案,你都可以在 Excel 中实现在第三列计算第二列最后一个非空单元格的数值乘以 7 的功能。这两种方法各有优势,你可以根据自己的喜好和具体需求选择使用。如果第二列的数据类型是数字,并且你确定列中没有非数字的文本,使用 INDEXMATCH 方法可能更直接一些。如果你希望方法对各种类型的数据都有效,那么使用 LOOKUP 方法可能更安全一些。每种方法都能有效地帮助你达成目标,确保数据的准确计算和管理。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。