Excel2007版的常用功能(24):宏表函数:
宏表函数:
1. 宏表函数具备两个特点:
a. 像宏 b. 函数
宏表函数跟VBA语句一样,逐行地执行代码
右键单元格--插入: 可以插入新的表格,也可以插入宏表。可以在宏表里写一堆代码,一行一行地执行。
2. 打开表显示日期的做法:
=alert("今天的日期是:"&text(sheet1!A1,"yyyy-mm-dd")&char(10)&"距离项目结束还有"&sheet1!A2&"天")
显示: 今天的日期是2014-06-08 距离项目结束还有7天
一、 利用宏表函数获取信息
1. get.cell()函数:
get.cell(type_num,reference) 表示 获取单元格信息,获取reference这个单元格的type_num这个信息
reference 是提供信息的单元格或单元格范围。 如果引用的是单元格范围,使用引用中第一个范围的左上角的单元格。如果 引用被省略,默认为活动单元格。
type_num 指明单元格中信息的类型。可能的值与对应结果:
(下表中的黑体字为常用参数) | |||||||||
Type_num | 返回 | ||||||||
1 | 以当前工作区文字引用类型绝对引用左上角引用单元格。 | ||||||||
2 | 顶部引用单元格的行数。 | ||||||||
3 | 最左边引用单元格的列数。 | ||||||||
4 | 同TYPE引用 | ||||||||
5 | 引用内容。 | ||||||||
6 | 文字,以工作区设置决定的 A1 或 R1 C1 类型引用公式。与 formulatext()函数功能一样 | ||||||||
7 | 文字的单元格的数字格式(如“m/d/yy”或“General”)。 | ||||||||
8 | 指示单元格水平对齐的数字 | ||||||||
1=一般 | |||||||||
2=左对齐 | |||||||||
3=置中 | |||||||||
4=右对齐 | |||||||||
5=填充 | |||||||||
6=两端对齐 | |||||||||
7=跨列置中 | |||||||||
9 | 指示分配给单元格左侧边框线的类型 | ||||||||
0 = 无边框 | |||||||||
1 = 细线 | |||||||||
2 = 中等线 | |||||||||
3 = 虚线 | |||||||||
4 = 点线 | |||||||||
5 = 粗线 | |||||||||
6 = 双线 | |||||||||
7 = 发丝线 | |||||||||
10 | 指示分配给单元格右侧边框线的类型,对应指定返回值的描述参见 type_num 9 | ||||||||
11 | 指示分配给单元格顶端边框线的类型,对应返回值的描述参见 type_num 9 | ||||||||
12 | 指示分配给单元格底端边框线的类型,对应返回值的描述参见 type_num 9 | ||||||||
13 |
是0至8之间的一个数字,当在[格式]菜单下选择[单元格]命令时, [单元格格式]对话框的[图案]标签显示被选择的单元格。这个数字指明其模式。如模式未被选择,返回0。【注此处似有误。应为1-18之间的一个数。至[图案]的样式】 |
||||||||
14 | 如果单元格被锁住,返回TRUE;否则,返回FALSE。 | ||||||||
15 | 如果单元格中公式被隐藏,返回TRUE;否则返回FALSE。 | ||||||||
16 |
一个含有两顶的水平数组,包括活动单元格的宽度和一个逻辑值,这个逻辑值指明单元格宽度是否改变, 如为TRUE,标准宽度改变,如为FALSE,仍为自定义宽度。 |
||||||||
17 | 用点表示的单元格的行高 | ||||||||
18 | 字体名称,文字形式 | ||||||||
19 | 用点表示的字体大小 | ||||||||
20 | 如果单元格中所有字符或只有第一个字母为黑体,返回TRUE;否则,返回FALSE。 | ||||||||
21 | 如果单元格中所有字符或只有第一个字符为斜体。返回TRUE;否则,返回FALSE。 | ||||||||
22 | 如果单元格中所有字符或只有第一个字符为加底线,返回FALSE。 | ||||||||
23 | 如果单元格中所有字符或只有第一个字符为加删除线,返回TRUE;否则,返回FALSE。 | ||||||||
24 | 是1-56的一个数字,代表单元格中第一个字符的字体颜色。如果字体颜色为自动生成,返回0。 | ||||||||
25 |
如果单元格中所有字符或只有第一个字符为空心体,返回TRUE;否则,返回FALSE。 Microsoft Excel for Windows 不支持空心字体格式。 |
||||||||
26 |
如果单元格中所有字符或只有第一个字符加阴影,返回TRUE;否则,返回FALSE。 Microsoft Excel for Windows 不支持阴影字体格式 |
||||||||
27 | 指示单元格中能否进行手动分页线的数字。 | ||||||||
0 = 没有分页线 | |||||||||
1 = 行 | |||||||||
2 = 列 | |||||||||
3 = 行和列 | |||||||||
28 | 行的级数(分级显示) | ||||||||
29 | 列的级数(分级显示) | ||||||||
30 | 如果所包含的活动单元格为摘要行,返回TRUE;否则,返回FALSE。 | ||||||||
31 | 如果列所包含的活动单元格为摘要列,返回TRUE;否则,返回FALSE。. | ||||||||
32【注本条说明有误,点此链接】 |
如窗口只包括一个表,其文件名为不含扩展名的工作簿 的文件名,为包含单元格的工作簿或工作表的文件名, 以 BOOK1.XLS 的形式返回簿的文件名;否则,以"[BOOK1]sheel"的形式返回表的文件名。 |
||||||||
33 | 如单元格被折行,返回TRUE;否则,返回FALSE。 | ||||||||
34 | 是1-16之间的一个数,代表左侧边框线颜色。如颜色自动生成,返回零。 | ||||||||
35 | 是1-16之间的一个数,代表右侧边框线颜色。如颜色自动生成,返回零。 | ||||||||
36 | 是1-16之间的一个数,代表顶端边框线颜色。如颜色自动生成,返回零。 | ||||||||
37 | 是1-16之间的一个数,代表底端边框线颜色。如颜色自动生成,返回零。 | ||||||||
38 |
是1-16之间的一个数,代表前景颜色。如颜色自动生成,返回零。 【包括填充颜色和图案颜色】 |
||||||||
39 | 是1-16之间的一个数,代表背景颜色。如颜色自动生成,返回零。【阴影背景?】 | ||||||||
40 | 单元格风格,文字形式。 | ||||||||
41 | 不经翻译返回活动单元格中的公式(用于图别设定的宏表)。 | ||||||||
42 | 用点表示的活动窗口左边界到单元格左边界的水平距离,如果窗口滚动到单元格外,可能为负值。 | ||||||||
43 | 用点表示的活动窗口顶边界到单元格顶边界的垂直距离,如果窗口滚动到单元格外,可能为负值。 | ||||||||
44 | 用点表示的活动窗口右边界到单元格右边界的水平距离,如果窗口滚动到单元格外,可能为负值。 | ||||||||
45 | 用点表示的活动窗口底边界到单元格底边界的水平距离,如果窗口滚动到单元格外,可能为负值。 | ||||||||
46 | 如果单元格包含文字注释,返回TRUE;否则,返回FALSE。 | ||||||||
47 | 如果单元格包含声音注释,返回TRUE;否则,返回FALSE。 | ||||||||
48 | 如果单元格包含公式注释,返回TRUE;否则,返回FALSE。 | ||||||||
49 | 如果单元格为数组的一部分,返回TRUE;否则,返回FALSE。 | ||||||||
50 | 指示单元格垂直方向对齐方式。 | ||||||||
1 = 顶对齐 | |||||||||
2 = 置中 | |||||||||
3 = 底对齐 | |||||||||
4 = 两端对齐 | |||||||||
51 | 指示单元格垂直方向。 | ||||||||
0 = 水平 | |||||||||
1 = 垂直 | |||||||||
2 = 向上 | |||||||||
3 = 向下 | |||||||||
52 | 单元格前缀(或文字对齐)字符,如果单元格不包括任何内容,代表空文本(“”)。 | ||||||||
53 | 当前显示的单元格的内容,文本形式,包括格式化单元格所加上去的数字或符号。 | ||||||||
54 | 返回包含活动单元格的数据透视表视图的文件名。 | ||||||||
55 | 返回数据透视表视图中单元格的位置。 | ||||||||
56 | 在数据透视表视图中,返回包含活动单元格引用的字段名称。 | ||||||||
57 | 如果单元格中所有的字符,或只有第一个字符被格式化为上标字体,返回TRUE;否则,返回FALSE。 | ||||||||
58 |
作为显示在[单元格格式]对话框中[字体]标签定位单元格中所有的字符或只第一个字符的正文 返回字体风格,如 “Bold Italic”。 |
||||||||
59 | 返回下加线风格的数。 | ||||||||
1 = 无底线 | |||||||||
2 = 单底线 | |||||||||
3 = 双线 | |||||||||
4 = (single accounting) | |||||||||
5 = (double accounting) | |||||||||
60 | 如果单元格中所有的字符,或只有第一个字符被格式化为下标字体,返回TRUE;否则,返回FALSE。 | ||||||||
61 | 作为文本返回活动单元格数据透视表项的文件名。 | ||||||||
62 | 返回工作簿和"[book1]sheet1"形式的当前表的文件名。【注:应为“活动工作表”】 | ||||||||
63 | 返回单元格的填充(背景)颜色。 | ||||||||
64 | 返回单元格的图案(前景)颜色。 | ||||||||
65 |
如果[增加缩格]对齐选项处于开的状态( 只用于Microsoft Excel的远东版本返回TRUE; 否则,返回FALSE |
||||||||
66 | 返回包含BOOK1.XLS 形式单元格的工作簿的簿名。 |
2. get.workbook()函数:
get.workbook(type_num,name_text) 表示获取整个文件的信息,文件里有多少张表,每张表叫什么名字
Type_num 指明要得到的工作簿信息类型的数。
Name_text 是工作簿的名字。如果name_text被省略,默认为活动工作簿。
Type_num | 返回 | ||||||||
1 | 正文值的水平数组,返回工作簿中所有表的名字。 | ||||||||
2 | 通常返回错误值#N/A。 | ||||||||
3 | 正文值的水平数组,返回工作簿中当前选择的表的名称。 | ||||||||
4 | 工作簿中表的数。 | ||||||||
5 | 如果工作簿含有发送名单,返回TRUE;否则返回FALSE。 | ||||||||
6 | 正文值的水平数值,返回所有未接收到文件的接受者的名字。 | ||||||||
7 | 以文本形式返回当前发送名单的主题线。 | ||||||||
8 | 以文本形式返回发送名单的信息正文。 | ||||||||
9 | 如果文件被发送,一个接一个被接收,返回1;如果全部一次被发送,返回2。 | ||||||||
10 | 如果[发送名单]对话框中选择[返回送毕信息]选择框,返回TRUE;否则返回FALSE。 | ||||||||
11 | 如果当前接收发送当前文件,返回TRUE;否则返回FALSE。 | ||||||||
12 | 如果[发送名单]对话框中选择[跟踪状态]选择框,返回TRUE;否则返回FALSE。 | ||||||||
13 | 工作簿[发送名单]: | ||||||||
0 =不被发送 | |||||||||
1 =进展中的路径选择,或对于用户工作簿已被发送。 | |||||||||
2 =发送已完成。 | |||||||||
14 | 如果工作簿结构被保护,返回TRUE;否则返回FALSE。 | ||||||||
15 | 如果工作簿窗口被保护,返回TRUE;否则返回FALSE。 | ||||||||
16【说明有误?点击链接】 | 以文字形式返回工作簿的名称,不包括驱动器,目录或文件, 或窗口编号,等价于GET.DOCUMENT(1) | ||||||||
17 | 如果文件为只读,返回TRUE,否则返回FALSE。等价于GET,DOCUMENT(34) | ||||||||
18 | 如果表被写保护,返回TRUE,否则返回FALSE。等价于GET.DOCUMENT(35) | ||||||||
19 | 当前文件允许写的用户的名字,等价于GET.DOCUMENT(36)。 | ||||||||
20 | 对应于显示在[另存为]对话框中的文件的文件类型的数字。等价于GET.DOCUMENT(37)。 | ||||||||
21 | 如在[另存为]对话框中选择了[建立备文件]选择框,返回TRUE;否则,返回FALSE。等价于GET.DOCUMENT(40) | ||||||||
22 | 如在[选择]对话框的[重新计算设置]标签中选择了[保存外部链接值]选择框,返回TRUE。等价于GET.DOCUMENT(43) | ||||||||
23 | 如果工作簿有一个苹果开放合作环境(OCE)返回TRUE;否则返回FALSE。如未安装OCE(mailer),返回#N/A。 | ||||||||
24 | 如果工作簿在最后一次保存后被改变,返回TRUE。若未改变(当被关闭,不提示保存),返回FALSE。 | ||||||||
25 | 以文字形式水平数组,返回Power Talk(mailer)的To线上的接收。 | ||||||||
26 | 以文字形式水平数组,返回Power Talk(mailer)的Cr线上接收。 | ||||||||
27 | 以文字形式水平数组,返回Power Talk(mailer)的Bxx线上的接收。 | ||||||||
28 | 以文字形式返回Power Talk(mailer)的主题。 | ||||||||
29 | 以文字形式水平数组,返回Power Talk(mailer)的外壳。 | ||||||||
30 | 如果Power Talk(mailer)从另一用户[*(相对于刚增加但不是发送)。 | ||||||||
31 | 作为一系列数返回Power Talk mailer)被发送的日期和时间,如(mailer)未被发送,返回错误值#N/A。 | ||||||||
32 | 以文本形式返回Power Talk(mailer)的发送者的名字,如(mailer)未被发送,返回错误值#N/A。 | ||||||||
33 | 以文字形式返回显示在[摘要信息]对话框中的文件的标题。 | ||||||||
34 | 以文字形式返回显示在[摘要信息]对话框中的文件的主题。 | ||||||||
35 | 以文字形式返回显示在[摘要信息]对话框中的文件的作者。 | ||||||||
36 | 以文字形式返回显示在[摘要信息]对话框中的文件的关键字。 | ||||||||
37 | 以文字形式返回显示在[摘要信息]对话框中的文件的注释。 | ||||||||
38 | 活动工作表的名字。 |
3. 宏表函数的更新问题:
有些宏表函数不会实时更新。
4. 单元格加链接:
=hyperlink(地址,显示出来的名字) 这时直接单击单元格里显示的名字就可以直接跳转到链接所对应的网页上了
如: =hyperlink('http://www.163.com','网易') 单元格里显示'网易',点击网易,直接跳转到http://www.163.com
地址还有别的写的形式
宏表函数不能直接在单元格里写,会显示无效,要先点住要写公式的单元格,在 “公式--定义名称” 中定义名称,在引用位置里写宏表函数的公式。用时,在单元格里写:=定义的名称 即可 如果宏表函数里写的是相对引用,拖动这个单元格,即可将公式运用到别的单元格
如:
计算单元格的颜色:
点B2单元格--公式--定义名称--名字:(随便起)计算背景色,引用位置:=get.cell(63,a2)
然后在B2单元格输入: =计算背景色 即可得到A2单元格的背景颜色
如:
计算D列得出数字的公式:
a. 点E2单元格--公式--定义名称--名字:提取公式(随意起),引用位置: =get.cell(6,D2)
然后,在E2单元格输入: =提取公式,即可得到
b. =formulatext(某单元格) 得出某单元格的公式 (2013版)
例子: 算出单元格的颜色,标记某个颜色为某个数字,然后按数据排序,就可将有颜色的数据排序了
例子: 一个文件里有很多工作表,若想为这些工作表做个目录,并且点击对应目录可以直接跳到对应的表里,做法:
get.workbook(1) 表示显示第一个工作表的名字
index(工作表名,1) 表示显示所有工作表里的第一个工作表的名
index(工作表名,row()) 这样,将要取第几个工作表名与行号联系起来,拖拽函数时就更方便了。
index(工作表名,row())&“a1” 表示链接到工作表里a1单元格 这个放在hyperlink函数里,作为链接用。
接下来就是做超链接了: hyperlink(index(工作表名,row())&“a1”,)
对于有错误的单元格,可以设置出错时如何显示。平时出错时一般会显示 “#REF!”
二、 宏表函数常见应用:
1.evaluate()函数:
evaluate(formula_text) 计算函数的结果。
如: evaluate(2*3) // 6
如: 在C2单元格里计算B2单元格里写的公式的值:
点击C2单元格--公式--定义名称--名字:运算,引用位置:=evaluate(B2),在C2单元格里输入: =运算,即可得到结果
2. =reftext(active.cell()) 得到一个当前点击的单元格地址
active.cell() 是活动单元格,reftext(active.cell())得到的是活动单元格的地址
3. =substitute(单元格,把单元格里的什么,替换为另一个东西,替换的是第几个)
A2:99,98,97 =substitute(A2,",","+") 把A2里的逗号改成加号: // 99+98+97
=evaluate(substitute(A2,",","+")) 也就是=evaluate(99+98+97) 得出:294
="{"&A2&"}" // {99,98,97}
=sum("{"&A2&"}") 即: =sum({99,98,97}) 可直接求和,{}表示声明{}里面是一组数据,而不是一个单元格里的字符串
如:
这里会用到find()函数。find(找什么,去哪里找,从哪里开始) 返回要找的东西在区域里的位置
=find(" ",A16) // 会返回A16里第一个空格出现的位置:3
=find(" ",A16)+1 // 4
=find(" ",A16,find(" ",A16)+1) // 会返回A16里从第4个字符开始后的第一个空格
=find(" ",A16,find(" ",A16,find(" ",A16)+1)+1) // 10
=find(" ",A16,find(" ",A16,find(" ",A16,find(" ",A16)+1)+1)+1) // 14
=substitute(A16," ","@",find(" ",A16,find(" ",A16,find(" ",A16,find(" ",A16)+1)+1)+1)) 将第14个空格替换为@
或:
=substitute(A16," ",";") // 11;12;113;154;15;16
="{"&substitute(A16," ",";")&"}" // {11;12;113;154;15;16}
=evaluate("{"&substitute(A16," ",";")&"}" ) // 把"{"&substitute(A16," ",";")&"}" 变成真正的数组,显示:11
=index(evaluate("{"&substitute(A16," ",";")&"}"),4) // 取出数组里第四段数据
三、 拓展:
当某个单元格里写入函数: =一个区域的数据 这时这个单元格也许只会显示区域里的一个数据,用鼠标点住这个单元格再点击编辑栏时, 按F9键,编辑栏里的内容就会由函数公式变成了由选中的这些数据组成的数组。这就是这个单元格的真实的值。
Excel2007版的常用功能(24):宏表函数:相关推荐
- Excel2007版的常用功能(2):Excel数据分析法
一..对比分析法: 所谓对比分析法,是指将两个或两个以上的相互联系的数据进行比较,分析他们的差异,如研究对象的规模大小.水平高低.速度快慢.各种关系是否协调,从而揭示这些数据所代表的事物发展变化情况和 ...
- Excel2007版的常用功能(7):Excel公式与函数
1. 如何使用函数: 等号开头.函数名在中间.括号结尾.括号中间写参数 2. 最常用的简单函数: SUM() 求和函数 语法: SUM(参数1,参数2,参数3--) 或 S ...
- Excel2007版的常用功能(16):Excel文本处理函数
文本截取字符串: 1. left()函数: =left(text,num_char) 即:=left(字符串,从字符串里从左开始选取几个字符串) 2. right()函数: =righ ...
- Excel2007版的常用功能(23):PPT图表链接与动画
一. 双坐标柱形图的补充知识 1.主次坐标柱形避让 原理: 主坐标上有两组数据时,就会并列展示,次坐标同理,然后隐藏不需要的一个主次坐标 ...
- Excel2007版的常用功能(17):Excel数学函数
1. round()函数: 四舍五入,以及要四舍五入到小数点后哪一位 =round(要四舍五入的数字,待四舍五入的位数) 如: =round(2.212,2) // 2.21 通过设置 ...
- Excel2007版的常用功能(9):Excel中的Countif函数与Countifs函数
count 数数,数一个区域里有数字的数据有几条 语法: count(参数1,参数2)或count(区域) countif() 带条件的数数, 去哪数,数什么 语法:counti ...
- [OfficeExcel] OfficeExcel2010 第24讲 宏表函数
王佩丰老师OfficeExcel2010 第24讲 宏表函数 学习笔记 利用宏表函数获取信息 宏表函数常见应用 利用宏表函数获取信息 get.cell函数 提取格式信息 GET.CELL(type_n ...
- EXCEL神奇的宏表函数,比如 get.cell() 可以判断颜色值
1 宏表函数 EXCEL神奇的宏表函数,功能还挺强大 同时也很奇怪,只能用在名称管理器,不能直接写在EXCEL公式里 比如名称中用到 =get.cell() 下面是 get.cell() 的详细资料 ...
- excel宏表函数技巧:如何批量建立分表?
[前言,有关"宏表函数"的几点信息] ●在EXCEL的世界里,有一组特殊的函数存在,它不是EXCEL内置工作表函数,所以在功能区中使用"插入函数"时,是看不见它 ...
最新文章
- OpenCV环境下Laplace(拉普拉斯)和Roberts基本边缘检测算子的实现代码
- jquery键盘事件全记录
- 网络监控系统中如何选择工业交换机?
- Linux操作系统的8个经典技巧
- C语言实现的RSA算法程序
- 给出中序和前序求后序Java,已知二叉樹前序,中序遍歷,求后序遍歷,java實現...
- 信息安全系统设计基础实验三
- python安装包国内地址
- 勒索病毒代码python_一份勒索病毒解密工具的整理汇总
- 【rqnoj 74】24点
- 测试软件测显卡有啸叫,完美解决 显卡电流声!显卡啸叫!吱吱的电流声!附解决方案!...
- 用gsm模块自动收发短信
- 遇见,那一份最美的眷恋
- hdu2201 熊猫阿波的故事
- 趣图:gif PostgreSQL MySQL 从删库到跑路
- OpenCL设备存储形式
- OFDM基带信号、射频信号及相应公式
- 本地spa应用的nginx简单配置
- java模拟交通信号灯_java 多线程交通信号灯模拟过程详解
- Oracle的冷备份与热备份
热门文章
- PHP模拟体彩36选7代码,打造属于自己的EXCEL彩票选号软件-36选7/31选7/混合版(不喜彩票者勿入)-Excel函数与公式-ExcelHome技术论坛 -...
- 不错的视频讲座:关于企业架构和4A架构
- 100层楼摔鸡蛋问题
- 超线程 linux 性能,超线程加快Linux操作系统的速度(上)
- 朗强:如何选择和使用HDMI混合矩阵切换器?
- Linux学习:Linux 文件与目录管理
- html吃豆豆代码,超萌css制作吃豆豆加载效果
- 用python画基本初等函数的图像(未完成)
- QT软件如何设置为护眼配色
- 今年一直搞Oracle EBS优化,脑壳痛