ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[推荐] [答疑解惑]函数公式解释专用帖

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2006-4-14 13:14 | 显示全部楼层
本帖已被收录到知识树中,索引项:公式基础
gdliyy2006-4-14 13:14:57“想法很好,已经提交讨论,谢谢您的支持!!!”
apolloh2006-4-14 14:06:01“很好的主意,置顶!”
mzluck12006-4-14 14:53:38“支持。建议以后有能力负责解答的在解答时尽量说明思路和要点(可申请斑竹加分考虑)。 另外,单个公式一看就懂,但就是不知道怎么组合起来实现比较复杂的功能,说明还是没理解透。对一些比较经常用到而且有代表意义的问题,建议大家从不同角度来求解,通过不同解决方法的对比,可加深对公式的理解。”
lwz2583692006-4-14 22:55:09“谢谢楼主的热心解释。受益匪浅,对学习函数及公式应用真是帮助不小。在求知中学习,在学习中求知。”
[此贴子已经被gouweicao78于2006-6-6 16:04:05编辑过]

TA的精华主题

TA的得分主题

发表于 2006-4-15 01:16 | 显示全部楼层

Gdliyy转移:[求助]可以教我这段公式如何解释吗?

webnew朋友求助: 可以教我这段公式如何解释吗?,尤其是ROW($7:$31)&"!b:b" 多谢各位! SUM(SUMIF(INDIRECT(ROW($7:$31)&"!b:b"),B7,INDIRECT(ROW($7:$31)&"!g:g")))
Gdliyy解释: 这个解法是典型的Sumif三维引用的常规解法,目的是通过Sumif分别在“表7-表31”的B列中查找条件为B7的值,再对各表满足条件的G列进行求和。 其中:INDIRECT(ROW($7:$31)&"!b:b")是表示用Indirect函数来实现三维引用,Row()来产生7\8\9\10\...\29\30\31这样的序号(目前看来应该是表名),结合!B:B这样的文本组合通过Indirect来生成实际的单元格引用,最后实现求和。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2006-4-15 01:28 | 显示全部楼层

太棒了!好像见到我的表一样。感激中~~,可是&符号起何作用?"!b:b"这样的用法是引用所有B列的文本吗?对不起,我没有EXCEL应用水平,麻烦您解答好吗。您是我等初等水平的福音。

GDliyy复: &符号表示文本连接,如"7" & "!b:b",得到文本"7!b:b",这样通过Indirect()得出具体的引用范围即:'7'!$B:$B,这样就可以提供给Sumif()的第1个参数来运算了,具体还是看看Indirect函数帮助再提问吧!
webnew2006-4-15 9:28:58 再次对版主的热心、细心、耐心的帮助感谢!我已经明白了,有空我会多学函数帖,发现函数帖也非常好,有好多书本上学不到的知识。我来对地方了!
chrisfang2006-4-15 19:07:29 关注并强烈支持!
[此贴子已经被gouweicao78于2006-6-6 16:09:02编辑过]

TA的精华主题

TA的得分主题

发表于 2006-4-15 22:15 | 显示全部楼层

定义名称,公式发生改变,可是还能用,为什么?

http://club.excelhome.net/viewthread.php?tid=162100&px=0

不知道这问题能不能在这里问,如果不合适,请不要见怪.

为节约空间在这里回21楼gouweicao78的解答, 那空格和那后面所谓韩文,要定义公式是没有的,先做好公式,复制到定义名称的引用位置,输入名称,添加以后才出现, 要定义的公式见原链接的6楼.问题是公式为什么会变?会自己加上空格,会自己加上所谓的韩文?变了以后为什么公式计算的结果仍然"正确"? 原链接贴hbhfgh4310已经有一个解释,认为是定义名称的公式过长引起. 谢谢apolloh版主在23楼给的解释和链接 我也搜了,只是关键词不对,搜到的内容太多,看了半天也没找到,就是没想到版主用的那个关键词,呵呵,不过有时候也想,本论坛只能用一个关键词搜,真是有点不方便,有时网友提问或答题,不一定想到可能会有网友要查看这个资料而设一些关键词,很多资料有时候真的很难查到,这点真是有些不足,不知能否改进.
[此贴子已经被作者于2006-4-16 14:53:15编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-4-15 22:35 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
多条件筛选单列不重复值(解释见附件)

to 20楼:

问题1、链接中5楼“公式里面怎么还能有空格?”

一个挺有意思的取行列交叉值的方法,虽然以前见Gvntw版主写过取行列交叉值,不过用的人还是少。

空格法:举个简单的例子:=sum(1:3 C:E)——这么一个公式实质是对C1:E3求和,即对空格前与空格后的两个区域取交叉部分。 不过,这个问题不是这样的,而是由于字库或者某种误操作产生的错误显示,如果没有继续改动该名称的话,它只是显示成这个怪样,而实质还是原来没有错的公式。但如果你按下Ctrl+F3在定义名称框点击该名称什么也不改按“添加”则会出错!!!这个也是: 问题2、莫名其妙之处,名称后面“썴”——我看到的是一个韩文?F3粘贴名称后变为“⠀”,乖乖。呵呵。还没弄明白怎么出来的。是不是由于Excel版本差异的问题,5楼看到的不是韩文。

至于求多条件不重复值,既然定义名称,我还是习惯于“列表”功能定义的,(原因:1、动态引用可随数据输入而增加引用范围;2、方便快速定义(插入〉名称〉指定〉首行),3、可以用于Indirect函数的再次引用,参考:列表动态引用关于Indirect对定义名称再引用),个人习惯不同,呵呵,给个参考: 为不占空间,详细的公式解释都在附件里了 eloL2hET.rar (5.17 KB, 下载次数: 2366)
[此贴子已经被作者于2006-4-16 18:04:36编辑过]

TA的精华主题

TA的得分主题

发表于 2006-4-16 08:36 | 显示全部楼层

关于定义名称过长,会形成乱码,但又不影响使用,这一点好像apolloh版主发现过,到底是哪个帖子我也忘了。有兴趣的自己找一找。

我猜想,这是中文版的问题,英文版不会这样。有人来验证一下吗?

当然名称也不能太长,限制是255字符。

TA的精华主题

TA的得分主题

发表于 2006-4-16 13:28 | 显示全部楼层

TA的精华主题

TA的得分主题

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

shtname=SUBSTITUTE(GET.DOCUMENT(1),"["&GET.DOCUMENT(88)&"]",)&T(NOW())
这个公式怎么解释啊?

[此贴子已经被山菊花于2006-8-5 16:51:30编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-4-18 10:52 | 显示全部楼层
取得工作表名称
这是个宏表函数取得工作表名称的“定义名称”
方法:插入〉名称〉定义shtname,引用位置输入公式〉确定
在某单元格输入=shtname,则返回该工作表名称。

1、首先,get.document(1)是宏表4.0函数(可以搜论坛下载一个帮助说明):

如果工作簿中不只一张表,用文字形式以“[book1]sheet1”的格式返回工作表的文件名。否则,只返回工作簿的文件名。工作簿文件名不包括驱动器,目录或窗口编号。通常最好使用 GET. DOCUMENT(76)
和 GET. DOCUMENT(88) 来返回活动工作表和活动工作簿的文件名。?

get.document(88)以“book1”的形式返回活动工作簿的文件名。

2、=SUBSTITUTE(GET.DOCUMENT(1),"["&GET.DOCUMENT(88)&"]",)——就是将[book1.xls]sheet1中的[]号及book1替换为空

得到sheet1

3、now()是一个易失性函数,随着Excel的一些动作比如编辑单元格等变化,产生当前时间(数值的一种),T()函数对文本返回文本自身,对数值返回空。所以&T(now())相当于&"",只不过这个""会随时变化。

这样连起来就使得我们用shtname得到的工作表名称是一个可以随着Excel动作(如改变工作表名也是动作)而“实时”变化的工作表名


常用的几个取当前工作表名的公式:(基本都是用宏表函数,套上文本处理)
=SUBSTITUTE(GET.DOCUMENT(76),"["&GET.DOCUMENT(88)&"]",)&T(NOW())

=REPLACE(GET.DOCUMENT(76),1,FIND("]",GET.DOCUMENT(76)),)&T(NOW())

=MID(GET.DOCUMENT(76),FIND("]",GET.DOCUMENT(76))+1,255)&T(NOW())

不用宏表函数取得工作表名称

在单元格中输入:

=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,255)——可得到工作表名,其原理同上,主要是利用CELL函数用"filename"作第1参数取得带路径的工作表名。

定义名称中使用(强烈推荐):

shtname=MID(CELL("filename",!A1),FIND("]",CELL("filename",!A1))+1,255)——这是个工作簿级的定义名称,可以得到工作簿中公式所在工作表的名称。

注意:CELL函数要求Excel文件已保存。

[此贴子已经被作者于2007-4-17 9:44:47编辑过]

TA的精华主题

TA的得分主题

发表于 2006-4-18 13:01 | 显示全部楼层
楼主:你好 我想问一下,如果原来已经发过的贴子,我对别人做的函数部分不理解的,是否需要在这里重新发贴,还是跟原来的贴呢. 听风看雪敬上. 再请版主 版主你好: 你帮我所做的主表与分表的问题,已经基本看明白了。通过本例,对INDEX、MATCH、INDIRECT等函数有了更进一步的理解。对BI的函数,我试着外一种方法做了一下,我以为这样更好理解一些.请指点.谢谢                  B1=VLOOKUP(B2,IF({1,0},姓名,序号),2,0) 另外,对其中的定义名称部分,还有一些不理解的。请指教。 对成绩的定义,您定义的是OFFSET(姓名,,1,,COUNTA(总表!$2:$2)-2),如果定义为$c$3:$s$21是否可以? 谢谢 听风看雪敬上
[此贴子已经被gouweicao78于2006-6-6 16:11:39编辑过]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-17 14:49 , Processed in 0.037873 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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