前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Excel公式技巧:颠倒单元格区域/数组

Excel公式技巧:颠倒单元格区域/数组

作者头像
fanjy
发布2023-02-14 14:10:24
发布2023-02-14 14:10:24
9010
举报
文章被收录于专栏:完美Excel完美Excel

如下图1所示,我想使用公式:

=SUMPRODUCT(A1:G1,G2:A2)

但是,Excel总是将其修改为从左到右的单元格区域:

=SUMPRODUCT(A1:G1,A2:G2)

图1

如何实现自己的目的呢?

可以使用公式:

=SUMPRODUCT(A1:G1,N(OFFSET(A2:G2,0,7-COLUMN(A2:G2),1,1)))

然而,公式使用了硬编码7,如果区域大小变了,这个数字也要手动更改。可以将上面的公式修改为:

=SUMPRODUCT(A1:G1,N(OFFSET(A2:G2,0,COLUMNS(A2:G2)-COLUMN(A2:G2),1,1)))

为什么OFFSET函数前还要加上N函数呢?这是因为OFFSET函数只返回单元格区域引用,而不返回值。OFFSET函数使用第1个、第2个或第3个参数为数组的调用,返回一组单元格区域引用,当用于算术操作数或大多数函数的参数时,Excel无法处理。幸运的是,N函数是一个例外,它有效地将区域引用数组转换为数字数组(注意,它将不是数字的条目转换为数字零)。T函数对字符串执行相同的操作。N函数仅返回数值,将其他所有内容转换为0;T函数仅返回字符串,将其他所有内容转换为空;如果都想返回,使用CELL(“Contents”,…)。注意,当使用公式求值或按F9键时,Excel不能直接显示OFFSET部分的内容,而是显示为#VALUE!。

例如,我想求单元格A1+A3+A5之和,如果使用公式:

=SUM(OFFSET(A1,{0;2;4},0,1,1))

无论是否以数组公式输入,返回的值都是单元格A1中的值。

然而,如果使用公式:

=SUM(N(OFFSET(A1,{0;2;4},0,1,1)))

则返回正确结果。

还可以使用公式:

=SUM(TRANSPOSE(OFFSET(A1,{0;2;4},0,1,1)))

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档