ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 216|回复: 10

[求助] 用动态行数,怎样求值?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-5-31 15:44 | 显示全部楼层 |阅读模式
问题是这样的:
因为行数会变,用函数 LOOKUP(1,0/(A:A<>""),ROW(A:A))得到了 A列的行数n,想用这个行数做引用,求B"n"+C"(n-1)"的值,该怎么写?
比如n=20,是求B20+C19的值
如n=30了,则求b30+c29的值
谢谢!

TA的精华主题

TA的得分主题

发表于 2024-5-31 15:49 | 显示全部楼层
=COUNTA(A:A) 行数不就出来了?

TA的精华主题

TA的得分主题

发表于 2024-5-31 15:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
你的要求其实不就是求A列最后一个数值么?LOOKUP(9E307,A:A)就好了

TA的精华主题

TA的得分主题

发表于 2024-5-31 15:51 | 显示全部楼层
本帖最后由 E学子 于 2024-5-31 15:58 编辑

=INDEX(B:B,MAX((A:A<>"")*ROW(A:A)))+INDEX(C:C,MAX((A:A<>"")*ROW(A:A))-1)

你都这么整列引用的话,公式一多就会卡,可以使试试下面的这个。如果B、C是动态引用的话,可以套IINDIRECT
  1. =LET(r,MAX((A1:A99<>"")*ROW(A1:A99)),INDEX(B1:B99,r)+INDEX(C1:C99,r-1))
复制代码

TA的精华主题

TA的得分主题

发表于 2024-5-31 15:54 | 显示全部楼层
猜一个:
=LET(n,LOOKUP(1,0/(A:A<>""),ROW(A:A)),INDIRECT("A"&n)+INDIRECT("C"&n-1))

TA的精华主题

TA的得分主题

发表于 2024-5-31 15:55 | 显示全部楼层
mountain119 发表于 2024-5-31 15:51
你的要求其实不就是求A列最后一个数值么?LOOKUP(9E307,A:A)就好了

不好意思看错了,接上面的公式,试试=INDIRECT("B"&COUNTA(A:A))

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-31 15:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
E学子 发表于 2024-5-31 15:51
=INDEX(B:B,MAX((A:A"")*ROW(A:A)))+INDEX(C:C,MAX((A:A"")*ROW(A:A))-1)

你都这么整列引用的话,公式一 ...

我是把得出的行数n固定在 E1 单元格的,这样比较直观。这个B(n)怎么个表示法?

TA的精华主题

TA的得分主题

发表于 2024-5-31 16:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
三等菜鸟 发表于 2024-5-31 15:58
我是把得出的行数n固定在 E1 单元格的,这样比较直观。这个B(n)怎么个表示法?

=INDEX(B1:B99,E1)+INDEX(C1:C99,E1-1)
或者整列引用
=INDEX(B:B,E1)+INDEX(C:C,E1-1)

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2024-5-31 16:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
B(n)
  1. =INDEX(B:B,E1)
复制代码
  1. =INDEX(B1:B99,E1)
复制代码
  1. =INDIRECT("B"&E1)
复制代码
  1. =OFFSET(B1,E1-1,)
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-5-31 16:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
E学子 发表于 2024-5-31 16:00
=INDEX(B1:B99,E1)+INDEX(C1:C99,E1-1)
或者整列引用
=INDEX(B:B,E1)+INDEX(C:C,E1-1)

赞!
谢谢
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-16 19:04 , Processed in 0.036969 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表