ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[函数应用系列讨论14] 关于N()/T()函数的返回值问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-1-9 22:54 | 显示全部楼层 |阅读模式
本帖已被收录到知识树中,索引项:N
之前我曾请教一个问题,问的是怎样用indirect返回数组区域并用sum求和,gvntw版主给出型如{=SUM(N(INDIRECT(A6:C6&$A$5:$C$5)))}的公式,当问及为何用N时,答曰“用N函数转换为二维数组”。(详见下:http://club.excelhome.net/dispbbs.asp?BoardID=1&ID=144778&replyID=&skin=0) 但我若直接用型如{=N(a1:c1)}这样的公式时,却无法返回数组,我实在不解N函数到底在怎样的情况下能返回数组?当中的机制是怎样的? 扩大来说,怎样可知一个函数能否返回数组?或者当中有何关键所在?希望得到各位高人指点,诚谢!
函数用法讨论系列中,提出问题和参与讨论都可视情况加分。
[此贴子已经被apolloh于2006-1-10 8:31:37编辑过]

TA的精华主题

TA的得分主题

发表于 2006-1-9 23:13 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

帮你顶一下

感觉N的作用恰恰不是为了返回数组而是限制数组的维数,上例是不让indirect返回三维数组。

还是让专家解答吧。

TA的精华主题

TA的得分主题

发表于 2006-1-10 00:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

N()返回一个区域的第一个元素,结果仍然是数组。

a1:c1是一个区域,所以n(a1:c1)只返回一个数。

对于四维以内的多维引用是由多个虚拟区域组成的,有多少个区域n()就返回多少的数字结果。

所以N可以将三维引用转换成一维数组,将四维引用转换为二维数组。

TA的精华主题

TA的得分主题

发表于 2006-1-10 00:41 | 显示全部楼层
我得好好琢磨琢磨这句话“所以N可以将三维引用转换成一维数组,将四维引用转换为二维数组。”,特别是“将四维引用转换为二维数组。”

TA的精华主题

TA的得分主题

发表于 2006-1-10 08:44 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
不是很明白。最好有更多的例子说明。

TA的精华主题

TA的得分主题

发表于 2006-1-10 09:30 | 显示全部楼层

关于N()/T()返回值问题的举例说明

lVaJP2YT.rar (20.22 KB, 下载次数: 1626)
[此贴子已经被作者于2006-1-10 9:53:32编辑过]

RCrG0vwB.rar

20.21 KB, 下载次数: 1078

[函数应用系列讨论14] 关于N()/T()函数的返回值问题

HATS6AES.rar

20.2 KB, 下载次数: 928

关于N()/T()返回值问题的举例说明

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2006-1-10 10:18 | 显示全部楼层
以下是引用[I]apolloh[/I]在2006-1-10 9:30:23的发言:[BR]
学习中,谢谢!

TA的精华主题

TA的得分主题

发表于 2006-1-10 10:29 | 显示全部楼层

疑问:

 跟我刚刚在 GVNTW版主关于countif()的多维应用中提到的一样,offset()产生的三维引用为什么去掉绝对引用也可以,即把N(OFFSET($B$23:$E$23,ROW($B$23:$E$26)-ROW($B$23:$E$23),,,))改为N(OFFSET(B23:E23,ROW(B23:E26)-ROW(B23:E23),,,)),结果不变,请问这是为什么?请apolloh版主触答。

TA的精华主题

TA的得分主题

发表于 2006-1-10 10:36 | 显示全部楼层
因为在多单元格形式输入固定的单元格引用,每个单元格的公式都是一样的,不会发生相对引用。

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-1-10 12:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
感谢版主大人关注~[em04]
以下是引用[I]apolloh[/I]在2006-1-10 0:34:09的发言:

N()返回一个区域的第一个元素,结果仍然是数组。

a1:c1是一个区域,所以n(a1:c1)只返回一个数。

对于四维以内的多维引用是由多个虚拟区域组成的,有多少个区域n()就返回多少的数字结果。

所以N可以将三维引用转换成一维数组,将四维引用转换为二维数组。

这个我基本能看懂,但是我还是有很多不解之处: 版主大人是怎么知道N只返回的一个区域的第一个元素?那么SUM为什么就不是把各个不同区域的第一个元素相加?SUM是怎么处理二维、三维的情况的?扩大说各函数是返回数组还是返回第一个元素,怎么处理二维三维的问题我们怎么可以得知? 好像我以为我楼顶的问题中indirect会返回一维数组结果却返回的是三维数组,我怎么知道一个函数到底会返回第一个元素,还是一维数组,还是多维数组?
[此贴子已经被作者于2006-1-10 12:54:47编辑过]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-12-22 00:36 , Processed in 0.037822 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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