用宏表函数与公式
- 格式:docx
- 大小:12.66 KB
- 文档页数:2
1.拆分单元格赋值Sub 拆分填充()Dim x As RangeFor Each x In ActiveSheet。
UsedRange.CellsIf x。
MergeCells Thenx.Selectx.UnMergeSelection.Value = x。
ValueEnd IfNext xEnd Sub2.E xcel 宏按列拆分多个excelSub Macro1()Dim wb As Workbook, arr, rng As Range, d As Object, k, t, sh As Worksheet, i&Set rng = Range("A1:f1")Application。
ScreenUpdating = FalseApplication。
DisplayAlerts = Falsearr = Range("a1:a” & Range("b” & Cells.Rows。
Count).End(xlUp)。
Row)Set d = CreateObject("scripting。
dictionary")For i = 2 To UBound(arr)If Not d.Exists(arr(i, 1)) ThenSet d(arr(i, 1)) = Cells(i, 1)。
Resize(1, 13)ElseSet d(arr(i, 1)) = Union(d(arr(i, 1)), Cells(i, 1).Resize(1, 13)) End IfNextk = d.Keyst = d.ItemsFor i = 0 To d。
Count - 1Set wb = Workbooks。
Add(xlWBATWorksheet)With wb。
Sheets(1)rng。
Copy 。
[A1]t(i)。
Copy 。
具有函数和宏的高级Excel技巧一、函数的应用在Excel中,函数是非常重要的工具,用于处理和分析数据。
下面介绍几个常用的函数及其应用。
1.1 SUM函数SUM函数用于求和,可以对一列或多列数字进行求和操作。
例如,有一个销售表格,包含销售额列A和销售数量列B,可以使用SUM函数计算总销售额,公式为=SUM(A1:A10)。
1.2 IF函数IF函数用于条件判断,根据条件返回不同的值。
例如,有一个成绩表格,如果分数大于等于90分,则显示优秀,否则显示良好,可以使用IF函数进行判断,公式为=IF(A1>=90,"优秀","良好")。
1.3 VLOOKUP函数VLOOKUP函数用于查找并返回指定数据的值。
例如,有一个商品销售表格,包含商品名称列A和价格列B,如果要根据商品名称查找对应的价格,可以使用VLOOKUP函数,公式为=VLOOKUP("商品名称",A1:B10,2,FALSE)。
二、宏的应用宏是Excel中强大的自动化工具,可以录制和执行一系列的操作。
下面介绍几个常用的宏技巧。
2.1 录制宏录制宏可以将一系列的操作记录下来,并生成一个可以重复执行的宏。
例如,要将某一列数据按照升序排列,可以录制一个宏包含排序操作,然后以后只需要点击执行宏就可以完成排序操作。
2.2 设置宏的快捷键为了更方便地执行宏,可以设置宏的快捷键。
例如,将某个宏设置为Ctrl+Shift+S,以后只需要按下这个组合键就可以执行宏。
2.3 编写宏代码除了录制宏外,还可以手动编写宏代码。
例如,可以编写一个宏代码实现自动筛选数据的功能,根据指定的条件自动筛选出符合条件的数据。
三、函数和宏的组合运用函数和宏可以进行组合运用,发挥更强大的功能。
3.1 自定义函数Excel中有一些内置的函数,但有时候需要根据特定的需求编写自定义函数。
例如,可以编写一个自定义函数用于计算销售额与成本之间的差额,方便分析利润情况。
Excel宏表函数大全Excel 宏表函数介绍1、什么是宏表函数宏表函数是又称excel4.0函数,是Excel第4个版本的函数,为了考虑兼容性,现在的版本依然可以调用该函数。
宏表函数是一类非常特殊的函数,你在Excel的函数列表中找不到它们,但它们确实存在,而且功能异常强大,在许多应用中不可或缺。
2、宏表函数有什么用处?宏表函数可以实现现有版本的函数或技巧无法完成的功能,比如取单元格填充色值、获取工作表的名称列表等。
3、怎么使用宏表函数宏表函数不能在工作表单元格中直接使用,需要在名称管理器中先定义一个名称,然后在单元格中使用该名称。
4、Excel宏表函数列表Get.Cell的用法函数定义: Get.Cell(类型号,单元格(或范围))其中类型号,即你想要得到的信息的类型号,经试验,范围为1-66,也就是说这个函数可以返回一个单元格里66种信息。
以下是类型号及其所代表的信息1 - 返回绝对引用 //引用样式由Excel参数决定,可以用工作表函数 CELL('address'); CELL('address',REF)2 - 返回行号 //可以用工作表函数 CELL('row'); CELL('row',REF); ROW(REF)3 - 返回列号(数字) //可以用工作表函数 CELL('col'); CELL('col',REF); COLUMN(REF)4 - 返回数据类型(1-数值或空单元格,2-文本,4-逻辑,16-错误值) //基本可以用工作表函数TYPE,除了针对活动单元格的情形。
注意与CELL('type')不同5 - 返回值 // 直接用 =单元格地址,完美的替代是CELL('contents'), CELL('contents',REF)6 - 返回公式或值 //如果单元格不含公式,则与5相同。
Excel宏表函数⼤全Excel宏表函数⼤全Excel 宏表函数介绍1、什么是宏表函数宏表函数是⼜称excel4.0函数,是Excel第4个版本的函数,为了考虑兼容性,现在的版本依然可以调⽤该函数。
宏表函数是⼀类⾮常特殊的函数,你在Excel的函数列表中找不到它们,但它们确实存在,⽽且功能异常强⼤,在许多应⽤中不可或缺。
2、宏表函数有什么⽤处?宏表函数可以实现现有版本的函数或技巧⽆法完成的功能,⽐如取单元格填充⾊值、获取⼯作表的名称列表等。
3、怎么使⽤宏表函数宏表函数不能在⼯作表单元格中直接使⽤,需要在名称管理器中先定义⼀个名称,然后在单元格中使⽤该名称。
4、Excel宏表函数列表Get.Cell的⽤法函数定义: Get.Cell(类型号,单元格(或范围))其中类型号,即你想要得到的信息的类型号,经试验,范围为1-66,也就是说这个函数可以返回⼀个单元格⾥66种信息。
以下是类型号及其所代表的信息1 - 返回绝对引⽤ //引⽤样式由Excel参数决定,可以⽤⼯作表函数 CELL('address'); CELL('address',REF)2 - 返回⾏号 //可以⽤⼯作表函数 CELL('row'); CELL('row',REF); ROW(REF)3 - 返回列号(数字) //可以⽤⼯作表函数 CELL('col'); CELL('col',REF); COLUMN(REF)4 - 返回数据类型(1-数值或空单元格,2-⽂本,4-逻辑,16-错误值) //基本可以⽤⼯作表函数TYPE,除了针对活动单元格的情形。
注意与CELL('type')不同5 - 返回值 // 直接⽤ =单元格地址,完美的替代是CELL('contents'), CELL('contents',REF)6 - 返回公式或值 //如果单元格不含公式,则与5相同。
EXCEL表格的任一当前单元格内显示其所在页码方法一、首先调整视图为页面视图,横向只有一个分页符,则用下面的方法非常简便在插入→名称→定义→新建,定义一个名称:PageNumber,当然也可以取一个你喜欢的名字比如:Love,在引用位置中输入=IF(ISERROR(MATCH(ROW(),GET.DOCUMENT(64),1)),1,MATCH(ROW(),GET.DOCUMENT(64),1) +1)在当单元格中输入“=PageNumber”,回车,OK二、若页面视图,横向有多个分页符,则(一)在插入→名称→定义→新建,定义一个名称:PageNumber,在引用位置中粘贴输入=IF(GET.DOCUMENT(61),(IF(ISERROR(FREQUENCY(GET.DOCUMENT(64),GET.DOCUMENT(10) )),0,FREQUENCY(GET.DOCUMENT(64),GET.DOCUMENT(10)))+1)*IF(ISERROR(FREQUENCY(GE T.DOCUMENT(65),Column())),0,FREQUENCY(GET.DOCUMENT(65),Column()))+IF(ISERROR(FR EQUENCY(GET.DOCUMENT(64),Row())),0,FREQUENCY(GET.DOCUMENT(64),Row()))+1,(IF(ISE RROR(FREQUENCY(GET.DOCUMENT(65),GET.DOCUMENT(12))),0,FREQUENCY(GET.DOCUME NT(65),GET.DOCUMENT(12)))+1)*IF(ISERROR(FREQUENCY(GET.DOCUMENT(64),Row())),0,FRE QUENCY(GET.DOCUMENT(64),Row()))+IF(ISERROR(FREQUENCY(GET.DOCUMENT(65),Colum n())),0,FREQUENCY(GET.DOCUMENT(65),Column()))+1)*ISNUMBER(NOW())(二)上述公式不便于阅读,转换为VBA便于阅读:VBA代码如下:Sub 定义页码及总页数名称()' 定义页码及总页数名称Macro'一个文件第一次使用前须先运行一遍本宏以后则不必了,s.Add Name:="ColFirst", RefersToR1C1:= _"=GET.DOCUMENT(61)" '判断打印顺序的设置类型s.Add Name:="lstRow", RefersToR1C1:= _"=GET.DOCUMENT(10)" '本工作表已用到的最大行数s.Add Name:="lstColumn", RefersToR1C1:= _"=GET.DOCUMENT(12)" '本工作表已用到的最大列数s.Add Name:="hNum", RefersToR1C1:= _"=IF(ISERROR(FREQUENCY(GET.DOCUMENT(64),Row())),0,FREQUENCY(GET.DOCUMENT(64), Row()))" 'hNum为本单元格上方的水平分页符个数s.Add Name:="vNum", RefersToR1C1:= _"=IF(ISERROR(FREQUENCY(GET.DOCUMENT(65),Column())),0,FREQUENCY(GET.DOCUMENT( 65),Column()))" ''本单元格左边的垂直分页个数s.Add Name:="hSum", RefersToR1C1:= _"=IF(ISERROR(FREQUENCY(GET.DOCUMENT(64),lstRow)),0,FREQUENCY(GET.DOCUMENT(64 ),lstRow))" ''本工作表最后一个单元格上方的水平分页符个数s.Add Name:="vSum", RefersToR1C1:= _"=IF(ISERROR(FREQUENCY(GET.DOCUMENT(65),lstColumn)),0,FREQUENCY(GET.DOCUMENT (65),lstColumn))" ''本工作表最后一个单元格左边的垂直分页个数s.Add Name:="ThisPageNo", RefersToR1C1:= _"=IF(ColFirst,(hSum+1)*vNum+hNum+1,(vSum+1)*hNum+vNum+1)*ISNUMBER(NOW())" '单元格所在页码s.Add Name:="PagesCount", RefersToR1C1:= _"=GET.DOCUMENT(50)*ISNUMBER(NOW())" '本工作表的总页数End Sub使用方法:⑴将代码粘贴进工具--宏--VB编辑器;⑵点击开发工具--宏,找到并点击“定义页码及总页数名称”,再点击运行;⑶在任一单元格输入公式“=ThisPageNo”则在当前单元格显示该单元格所在页码;⑷在任一单元格输入公式“=PagesCount”,则显示总页数;⑸输入“=TEXT(ThisPageNo,"第0页")&TEXT(PagesCount,"共0页") ”,在同一单元格显示当前页码和总页数三、关于用到的宏函数知识补充:GET.DOCUMENT(type_num, name_text)Type_num 指明信息类型的数。
Excel函数应用篇:宏表函数宏表函数是个“老古董”,实际上是现在广泛使用VBA的“前身”。
虽然后来的各版本已经不再使用它,但还能支持。
宏表函数很奇葩,必须定义名称才能使用,脱离了名称就没有存在的价值。
1.excel宏表函数大全之一:EVALUATE宏表函数EVALUATE用于统计引用单元格中以文本形式表示的算术表达式的值。
举例:下表中G列数据为包裹的长宽高数据,现在需要根据G列数据统计包裹体积。
第一步:打开【名称管理器】新建一条名称记录如下:第二步:单击【确定】关闭名称管理器,在H2单元格输入=体积,向下填充即可。
2.excel宏表函数大全之二:get.cell宏表函数有些人喜欢将需要统计的数据用背景色填充,以为这样比较醒目,统计起来就方便。
当然前提是你用计算器统计,如果用Excel那就是自找麻烦。
现在对需要统计的津贴用不同背景色填充,要分别统计两种颜色的津贴总数。
Step 01选择C2单元格,单击“公式”选项卡中的“定义名称”按钮,在“名称”文本框中输入:颜色,“引用位置”输入下面的公式,最后单击“确定”按钮。
=GET.CELL(63,B2)Step 02 定义完名称后,只需在C2单元格输入公式,并向下填充公式,即可自动统计表达式,有背景色的就大于0,没有背景色的就是0。
橙色的背景色为46,所以公式可设置为:=SUMIF(C:C,46,B:B)绿色的背景色为10,所以公式可设置为:=SUMIF(C:C,10,B:B)如果背景色多的话,需要再次定义一个名称作为辅助列,获取D列的颜色对应值。
除了背景色,常用的还有一个字体颜色,参数1为24代表字体颜色。
=GET.CELL(24,B2)GET.CELL参数1可以设置成1-66,共66种,有兴趣的可以去测试。
知识扩展:高版本的Excel可以按背景色进行筛选,再借助SUBTOTAL函数就可以按背景色筛选求和。
在C17输入公式:=SUBTOTAL(9,B2:B16)筛选橙色的背景色,就可以统计出来。
proe函数公式名称:正弦曲线建立环境:Pro/E软件、笛卡尔坐标系x=50*ty=10*sin(t*360)z=0名称:螺旋线(Helical curve)建立环境:PRO/E;圆柱坐标(cylindrical)r=ttheta=10+t*(20*360)z=t*3蝴蝶曲线球坐标 PRO/E方程:rho = 8 * ttheta = 360 * t * 4phi = -360 * t * 8Rhodonea 曲线采用笛卡尔坐标系theta=t*360*4x=25+(10-6)*cos(theta)+10*cos((10/6-1)*theta) y=25+(10-6)*sin(theta)-6*sin((10/6-1)*theta) *********************************圆内螺旋线采用柱座标系theta=t*360r=10+10*sin(6*theta)z=2*sin(6*theta)渐开线的方程r=1ang=360*ts=2*pi*r*tx0=s*cos(ang)y0=s*sin(ang)x=x0+s*sin(ang)y=y0-s*cos(ang)z=0对数曲线z=0x = 10*ty = log(10*t+0.0001)球面螺旋线(采用球坐标系)rho=4theta=t*180phi=t*360*20名称:双弧外摆线卡迪尔坐标方程: l=2.5b=2.5x=3*b*cos(t*360)+l*cos(3*t*360) Y=3*b*sin(t*360)+l*sin(3*t*360) 名称:星行线卡迪尔坐标方程:a=5x=a*(cos(t*360))^3y=a*(sin(t*360))^3名稱:心脏线建立環境:pro/e,圓柱坐標a=10r=a*(1+cos(theta))theta=t*360名稱:葉形線建立環境:笛卡儿坐標a=10x=3*a*t/(1+(t^3))y=3*a*(t^2)/(1+(t^3))笛卡儿坐标下的螺旋线x = 4 * cos ( t *(5*360))y = 4 * sin ( t *(5*360))z = 10*t一抛物线笛卡儿坐标x =(4 * t)y =(3 * t) + (5 * t ^2)z =0名稱:碟形弹簧建立環境:pro/e圓柱坐r = 5theta = t*3600z =(sin(3.5*theta-90))+24*t方程: 阿基米德螺旋线x = (a +f sin (t))cos(t)/ay = (a -2f +f sin (t))sin(t)/bpro/e关系式、函数的相关说明资料?关系中使用的函数数学函数下列运算符可用于关系(包括等式和条件语句)中。
EXCEL表格的任一当前单元格内显示其所在页码方法一、首先调整视图为页面视图,横向只有一个分页符,则用下面的方法非常简便在插入→名称→定义→新建,定义一个名称:PageNumber,当然也可以取一个你喜欢的名字比如:Love,在引用位置中输入=IF(ISERROR(MATCH(ROW(),GET.DOCUMENT(64),1)),1,MATCH(ROW(),GET.DOCUMENT(64),1) +1)在当单元格中输入“=PageNumber”,回车,OK二、若页面视图,横向有多个分页符,则(一)在插入→名称→定义→新建,定义一个名称:PageNumber,在引用位置中粘贴输入=IF(GET.DOCUMENT(61),(IF(ISERROR(FREQUENCY(GET.DOCUMENT(64),GET.DOCUMENT(10) )),0,FREQUENCY(GET.DOCUMENT(64),GET.DOCUMENT(10)))+1)*IF(ISERROR(FREQUENCY(GE T.DOCUMENT(65),Column())),0,FREQUENCY(GET.DOCUMENT(65),Column()))+IF(ISERROR(FR EQUENCY(GET.DOCUMENT(64),Row())),0,FREQUENCY(GET.DOCUMENT(64),Row()))+1,(IF(ISE RROR(FREQUENCY(GET.DOCUMENT(65),GET.DOCUMENT(12))),0,FREQUENCY(GET.DOCUME NT(65),GET.DOCUMENT(12)))+1)*IF(ISERROR(FREQUENCY(GET.DOCUMENT(64),Row())),0,FRE QUENCY(GET.DOCUMENT(64),Row()))+IF(ISERROR(FREQUENCY(GET.DOCUMENT(65),Colum n())),0,FREQUENCY(GET.DOCUMENT(65),Column()))+1)*ISNUMBER(NOW())(二)上述公式不便于阅读,转换为VBA便于阅读:VBA代码如下:Sub 定义页码及总页数名称()' 定义页码及总页数名称Macro'一个文件第一次使用前须先运行一遍本宏以后则不必了,s.Add Name:="ColFirst", RefersToR1C1:= _"=GET.DOCUMENT(61)" '判断打印顺序的设置类型s.Add Name:="lstRow", RefersToR1C1:= _"=GET.DOCUMENT(10)" '本工作表已用到的最大行数s.Add Name:="lstColumn", RefersToR1C1:= _"=GET.DOCUMENT(12)" '本工作表已用到的最大列数s.Add Name:="hNum", RefersToR1C1:= _"=IF(ISERROR(FREQUENCY(GET.DOCUMENT(64),Row())),0,FREQUENCY(GET.DOCUMENT(64), Row()))" 'hNum为本单元格上方的水平分页符个数s.Add Name:="vNum", RefersToR1C1:= _"=IF(ISERROR(FREQUENCY(GET.DOCUMENT(65),Column())),0,FREQUENCY(GET.DOCUMENT( 65),Column()))" ''本单元格左边的垂直分页个数s.Add Name:="hSum", RefersToR1C1:= _"=IF(ISERROR(FREQUENCY(GET.DOCUMENT(64),lstRow)),0,FREQUENCY(GET.DOCUMENT(64 ),lstRow))" ''本工作表最后一个单元格上方的水平分页符个数s.Add Name:="vSum", RefersToR1C1:= _"=IF(ISERROR(FREQUENCY(GET.DOCUMENT(65),lstColumn)),0,FREQUENCY(GET.DOCUMENT (65),lstColumn))" ''本工作表最后一个单元格左边的垂直分页个数s.Add Name:="ThisPageNo", RefersToR1C1:= _"=IF(ColFirst,(hSum+1)*vNum+hNum+1,(vSum+1)*hNum+vNum+1)*ISNUMBER(NOW())" '单元格所在页码s.Add Name:="PagesCount", RefersToR1C1:= _"=GET.DOCUMENT(50)*ISNUMBER(NOW())" '本工作表的总页数End Sub使用方法:⑴将代码粘贴进工具--宏--VB编辑器;⑵点击开发工具--宏,找到并点击“定义页码及总页数名称”,再点击运行;⑶在任一单元格输入公式“=ThisPageNo”则在当前单元格显示该单元格所在页码;⑷在任一单元格输入公式“=PagesCount”,则显示总页数;⑸输入“=TEXT(ThisPageNo,"第0页")&TEXT(PagesCount,"共0页") ”,在同一单元格显示当前页码和总页数三、关于用到的宏函数知识补充:GET.DOCUMENT(type_num, name_text)Type_num 指明信息类型的数。
[转]宏表函数详解(GET.CELL,GET.DOCUMENT)宏表函数很多,这里只介绍一下GET.CELL,GET.DOCUMENT 两个信息函数,如果需要全部的宏表函数帮助,请到网上查找。
一、GET.CELL只用于宏表返回关于格式化,位置或单元格内容的信息。
在由特定单元格状态决定行为的宏中,使用GET.CELL。
语法GET.CELL(type_num, reference)Type_num 指明单元格中信息的类型。
下表列出Type_num 的可能值与其对应的结果。
Type_num 返回1 以当前工作区文字引用类型绝对引用左上角引用单元格。
2 顶部引用单元格的行数。
3 最左边引用单元格的列数。
4 同TYPE引用5 引用内容。
6 文字,以工作区设置决定的A1 或R1 C1 类型引用公式。
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 911 指示分配给单元格顶端边框线的类型,对应返回值的描述参见type_num 912 指示分配给单元格底端边框线的类型,对应返回值的描述参见type_num 913 是0至8之间的一个数字,当在[格式]菜单下选择[单元格]命令时,[单元格格式]对话框的[图案]标签显示被选择的单元格。
这个数字指明其模式。
如模式未被选择,返回0。
14 如果单元格被锁住,返回TRUE;否则,返回FALSE。
15 如果单元格中公式被隐藏,返回TRUE;否则返回FALSE。
16 一个含有两顶的水平数组,包括活动单元格的宽度和一个逻辑值,这个逻辑值指明单元格宽度是否改变,如为TRUE,标准宽度改变,如为FALSE,仍为自定义宽度。
Excel宏表函数GET.CELL使用方法宏表函数是在早期低版本Excel中使用的函数,其作用是返回引用单元格的信息。
它仍可以在高版本的工作表中使用,不过不能直接用在单元格中,而只能通过定义的名称的方式来使用。
下面介绍其使用方法,在结尾处提供一示例文件供下载。
一、语法:(Type_num, Reference)Type_num指明单元格中信息的类型。
用数字表示,范围为1-66。
Reference为引用的单元格或区域。
二、使用方法:例如我们要返回B9单元格中字体的名称,可以用下面的方法:1.选择某个单元格,单击菜单“插入→名称→定义”,打开“定义名称”对话框。
2.在“在当前工作簿中的名称”下方的文本框中输入一个名称,如“getcell”,也可以设置一个其他名称,在“引用位置”下方的文本框中输入公式:=(18,$B$18)注意公式中的第二个参数为绝对引用,如果为相对引用,则与当前选择的单元格与B18单元格的相对位置有关,从而不能在任意单元格用公式“=getcell”返回正确的结果。
3.在需要引用B18单元格字体信息的单元格中输入公式:=getcell即可返回B18单元格中的字体名称。
三、函数的刷新:使用宏表函数时,有的参数返回的单元格信息不会自动刷新,例如上例中返回单元格的字体信息。
这时可以按快捷键Ctrl+Alt+F9即可。
如果使用下面的公式:=getcell&T(NOW())则只按F9即可刷新。
四、Type_num 参数的含义:1 单元格的绝对引用。
2 引用区域中顶部单元格的行标。
3 引用区域中最左边单元格的列标。
4 类似TYPE函数5 返回引用单元格内容。
6 返回引用单元格中的公式。
7 返回单元格的数字格式(如“m/d/yy”或“General”)。
8 指示单元格水平对齐的数字。
1 = 一般2 = 左对齐3 = 置中4 = 右对齐5 = 填充6 = 两端对齐7 = 跨列置中9 指示分配给单元格左侧边框线的类型。
几点说明1宏表函数是个“老古董”,实际上是现在广泛使用的VBA的“前身”。
虽然后来的各版本已经不再使用它,但2宏表函数的最“原始”的使用是要建立一个“宏表”(类似于现在的VBE),在宏表中写下宏代码,然后运行在现在各版本的EXCEL中,按下ctrl+F11就可建立这样一个“宏表”或者在工作表标签右键点击插入-选择"MS EXCEL 4.0 宏表"在下面这个帖子中,就有这样一个“宏表”:(作者:老刀)/dispbbs.asp?boardid=2&replyid=16066&id=16089&page=1&skin=0&Sta 不过某些宏表函数不需要宏表,也能运行。
下面介绍的就是这样一些我们现在常用的宏表函数。
3本论坛中Emily最早介绍了英文版的宏表函数帮助文件而david_ren最早给出了中文简体版的帮助文件,见:/dispbbs.asp?boardid=2&replyid=49487&id=22610&page=1&skin=0&Sta 4几点规则和问题(1)在公式中使用宏表函数,最重要的一点就是:不能在公式中直接使用,而必须定义成名称。
(2)很多(不是全部)的宏表函数即使按F9也不能自动更新,而必须按Alt+Ctrl+F9才能更新。
解决的办法:在定义名称时加入一个易失函数,利用其易失性强迫结果更新例如,定义X=GET.CELL(63,A1) 当背景颜色改变时,公式结果不能自动更新,必须按Alt而如果定义为 X=GET.CELL(63,A1)&T(NOW()), 则只需按F9或激活当前工作表的任一单元格连接的易失函数有多种形式,除了上面的例子,还有 &T(RAND())<适用文本> +TODAY()*(3)宏表函数对公式长度有限制。
特别是EVALUATE,它的长度限制为251字符。
Excel如何在excel单元格中显示页码?宏表函数,页码在Excel中设置第几页共几页,绝大部分人会想道用“页面设置”,但你是否想过将“第N页/总M页”放到任意单元格中?而不仅仅是置于页眉页脚中?方法一,用VBAFunction page()page = (ActiveSheet.HPageBreaks.Count + 1) * (ActiveSheet.VPageBreaks.Count + 1)Application.VolatileEnd Function用VBA本人只知道总页码的方法,当前页码就难倒我了,还请VBA高手指教方法二,用宏表函数与公式1. 首先:点CTRL+F3打开定义名称,再在上面输入“纵当页”,在下面引用位置处输入:=IF(ISNA(MATCH(ROW(),GET.DOCUMENT(64))),1,MATCH(R OW(),GET.DOCUMENT(64))+1)2.然后再继续添加第二个名称:“横当页”,在下面引用位置处输入:=IF(ISNA(MATCH(column(),GET.DOCUMENT(65))),1,MATCH( column(),GET.DOCUMENT(65))+1)3.再输入“总页”;引用位置处输入:=GET.DOCUMENT(50)+RAND()*04.最后再定义“页眉”,引用位置:="第"&IF(横当页=1,纵当页,横当页+纵当页)&"页/共"&总页&"页"5.在函数栏使用应用即可得到需要的页码方法三:简化公式PageNumber=IF(ISNA(MATCH(ROW(),GET.DOCUMENT(64),1)),1,MATCH(ROW (),GET.DOCUMENT(64),1)+1)+NOW()*0PageTotal =GET.DOCUMENT(50)+NOW()*0。
EXCEL宏命令⼤全Excel表格公式⼤全1、查找重复内容公式:=IF(COUNTIF(A:A,A2)>1,"重复","")。
2、⽤出⽣年⽉来计算年龄公式:=TRUNC((DAYS360(H6,"2009/8/30",FALSE))/360,0)。
3、从输⼊的18位⾝份证号的出⽣年⽉计算公式:=CONCATENATE(MID(E2,7,4),"/",MID(E2,11,2),"/",MID(E2,13,2))。
4、从输⼊的⾝份证号码内让系统⾃动提取性别,可以输⼊以下公式:=IF(LEN(C2)=15,IF(MOD(MID(C2,15,1),2)=1,"男","⼥"),IF(MOD(MID(C2,17,1),2)=1,"男","⼥"))公式内的“C2”代表的是输⼊⾝份证号码的单元格。
1、求和:=SUM(K2:K56)——对K2到K56这⼀区域进⾏求和;2、平均数:=AVERAGE(K2:K56)——对K2K56这⼀区域求平均数;3、排名:=RANK(K2,K$2:K$56)——对55名学⽣的成绩进⾏排名;4、等级:=IF(K2>=85,"优",IF(K2>=74,"良",IF(K2>=60,"及格","不及格")))5、学期总评:=K20.3+M20.3+N20.4——假设K列、M列和N列分别存放着学⽣的“平时总评”、“期中”、“期末”三项成绩;6、最⾼分:=MAX(K2:K56)——求K2到K56区域(55名学⽣)的最⾼分;7、最低分:=MIN(K2:K56)——求K2到K56区域(55名学⽣)的最低分;8、分数段⼈数统计:(1)=COUNTIF(K2:K56,"100")——求K2到K56区域100分的⼈数;假设把结果存放于K57单元格;(2)=COUNTIF(K2:K56,">=95")-K57——求K2到K56区域95~99.5分的⼈数;假设把结果存放于K58单元格;(3)=COUNTIF(K2:K56,">=90")-SUM(K57:K58)——求K2到K56区域90~94.5分的⼈数;假设把结果存放于K59单元格;(4)=COUNTIF(K2:K56,">=85")-SUM(K57:K59)——求K2到K56区域85~89.5分的⼈数;假设把结果存放于K60单元格;(5)=COUNTIF(K2:K56,">=70")-SUM(K57:K60)——求K2到K56区域70~84.5分的⼈数;假设把结果存放于K61单元格;(6)=COUNTIF(K2:K56,">=60")-SUM(K57:K61)——求K2到K56区域60~69.5分的⼈数;假设把结果存放于K62单元格;(7)=COUNTIF(K2:K56,"<60")——求K2到K56区域60分以下的⼈数;假设把结果存放于K63单元格;说明:COUNTIF函数也可计算某⼀区域男、⼥⽣⼈数。
Excel的15个好用函数公式1、提取唯一值公式C2(数组公式按ctrl+shift+enter三键输入)=IFERROR(INDEX(A:A,SMALL(IF(MATCH(A$2:A$9,A$2:A$9,)=ROW($1:$8) ,ROW($2:$9)),ROW(A1))),"")有一个简单的=INDEX(A:A,MATCH(0,COUNTIF(C$1:C1,A$1:A$99),0))&""2、生成不重复随机数公式B2:(数组公式,按ctrl+shift+enter三键输入)=SMALL(IF(COUNTIF(B$1:B1,ROW($1:$10)),"",ROW($1:$10)),RANDBETW EEN(1,10-COUNT(B$1:B1)))3、多区域超链接公式=HYPERLINK("#C3:C10,F3:F10,I3:I10","总排名")4、多区域排名公式=RANK(B3,($B$3:$B$10,$E$3:$E$10,$H$3:$H$10))5、提取筛选后的内容公式:(数组公式,按ctrl+shift+enter三键输入)=INDEX(B:B,MATCH(1,SUBTOTAL(3,OFFSET(B1,ROW(1:100),)),0)+1)6、字符串拆分B2=TRIM(MID(SUBSTITUTE($A2,"-",REPT(" ",99)),99*COLUMN(A1)-98,99))7、不重复个数公式=SUMPRODUCT(1/COUNTIF(A2:A7,A2:A7))8、动态获取A列最后一个数字=LOOKUP(1,0/(A2:A100>0),A2:A100)9、提取唯一值公式=IFERROR(INDEX(A:A,SMALL(IF(MATCH(A$2:A$7,A$2:A$7,0)=ROW(A$1: A$6),ROW(A$2:A$7)),ROW(A1))),"")10、中国式排名公式=SUMPRODUCT(($D$4:$D$9>=D4)*(1/COUNTIF(D$4:D$9,D$4:D$9)))11、提取字符串任一位中的数字A1的值为ABC123.45FE ,截取结果:123.45数组公式:{=LOOKUP(9^9,MID(A1,MATCH(1,MID(A1,ROW(1:9),1)^0,0),ROW(1:9))*1 )}12、金额大写转换公式=TEXT(LEFT(RMB(A2),LEN(RMB(A2))-3),"[>0][dbnum2]G/通用格式元;[<0]负[dbnum2]G/通用格式元;;") & TEXT(RIGHT(RMB(A2),2),"[dbnum2]0角0分;;整")13、一对多查找包含公式=COUNT(FIND({"AAA花苑","CCC龙廷"},A2))14、Vlookup多表查找公式工资表模板中,每个部门一个表。
表格中宏公式在Excel中,宏(Macro)是一种强大的功能,它可以自动化执行复杂的任务,提高工作效率。
而宏公式(Macro Formula)则是Excel中特殊的公式类型,它可以用于在表格中执行宏的功能。
表格中的宏公式能够实现一系列的操作,如自动填充数据、格式设置、自动计算等,极大地简化了用户的工作流程。
使用宏公式之前,我们需要先了解一些基本的概念和操作。
首先,需要开启开发工具栏。
我们可以点击Excel上方的选项卡,找到“文件”选项,然后选择“选项”。
在“选项”窗口中,点击“自定义功能区”选项,并勾选“开发工具栏”,最后点击“确定”按钮即可。
接下来,就可以在开发工具栏中找到“宏”的按钮了。
当我们点击宏按钮时,会弹出一个新的窗口,用于录制和管理宏。
点击“记录新宏”,然后为它命名,并选择存储宏的位置,比如我们可以将宏保存在当前工作簿中,或者保存在个人工作簿中方便复用。
在录制宏的过程中,我们可以进行各种操作,比如输入数据、格式设置、运行其他宏等等。
录制完成后,再次点击宏按钮,可以停止录制,并保存宏的设置。
此时,我们已经创建了一个宏公式,可以在表格中使用了。
在表格的某个单元格中,输入“=宏名()”,其中宏名是我们在录制宏时给它起的名字。
按下回车键,就会执行宏中的操作了。
需要注意的是,宏公式只能在启用宏的情况下才能正常工作。
如果在未启用宏的状态下输入宏公式,会得到一个警告信息,表示无法执行宏。
总结一下,表格中的宏公式是一种强大的工具,它可以帮助我们自动化处理大量的工作,提高工作效率。
通过了解和学习如何创建和使用宏公式,我们可以更好地利用Excel的功能,减少手动操作的繁琐,让工作变得更加轻松和高效。
这就是关于表格中宏公式的介绍,在Excel中利用宏公式能够帮助我们完成各种复杂的任务,提高工作效率。
希望通过本文的介绍,能够让您更加了解宏公式的使用方法,从而在日常工作中更加灵活地运用Excel的功能。
如何处理复杂的EXCEL计算EXCEL作为一款广泛应用的数据处理工具,它的计算功能在各个领域都得到了广泛使用。
但是,在实际的应用过程中,有时候我们需要进行比较复杂的计算,这时候就需要一些技巧来处理这些计算了。
本文将从如何使用公式、函数和宏等方面介绍如何处理复杂的EXCEL计算。
一、使用公式公式是EXCEL中最基本的计算工具。
它可以进行简单的加减乘除运算,也可以进行更复杂的条件判断、逻辑运算等。
如果我们需要进行比较复杂的计算,可以尝试使用一些高级公式来进行处理。
1.数组公式数组公式是一种能够同时处理多个数据的计算方法。
在处理一些复杂的数据时,使用数组公式可以减少计算量,提高效率。
例如,如果我们需要对很多个数进行求和,可以使用SUM函数来求出总和,但是如果数列比较长,每一个都单独输入SUM函数,那么工作量就会非常大。
此时,我们可以使用数组公式来节省时间,具体步骤如下:步骤一:选中要进行计算的区域。
步骤二:在公式栏中输入函数名称,例如SUM,然后按下CTRL+SHIFT+ENTER。
步骤三:EXCEL会自动添加{}符号,标识这是一个数组公式。
通过这种方法,我们可以方便地对很多数据进行处理。
当然,在使用数组公式时,也需要注意数据范围的限制,否则会出现错误的结果。
2.条件公式条件公式是一种可以根据一定的逻辑条件来进行判断的计算方法。
在处理一些需要分类的数据时,可以使用条件公式来进行快速分类。
例如,如果我们需要将成绩区分为优、良、中、差四个等级,可以使用IF函数来实现判断。
具体步骤如下:步骤一:在新的列中输入IF函数,选择需要判断的区域,以及判断条件。
步骤二:在IF函数中输入第一个结果,即如果判断条件为真时的结果。
步骤三:在IF函数中输入第二个结果,即如果判断条件为假时的结果。
3.累计公式累计公式是一种可以对数据进行连续计算的计算方法。
在处理一些需要进行累加或者累乘的数据时,可以使用累计公式来快速计算结果。
VBA|输入公式和使用函数1 VBA在单元格中输入公式在公式中一般会出现对单元格地址的引用,引用的方式有绝对引用(A1方式)和相对引用(R1C1)方式,同样的,在用VBA输入公式时,也会有两种方式。
1.1 输入A1格式的公式向单元格输入公式,实际上就是输入公式的字符串。
这时采用Range的value属性或Formula属性均可。
.Range("E11").Formula = "=sum(E2:E10)"1.2 输入R1C1公式使用R1C1格式向单元格输入公式,实际上是录制宏的方式。
是一种地址相对引用的方式,这里的相对引用的基准地址就是公式所在的地址,以此地址为基准,偏移行R和列C得到相对引用位置。
有些人可能喜欢这种方式,不过这种方式不像A1方式那样直观和容易理解。
(如果不是很熟悉VBA的语法格式,可以采取录制宏的方式去得到代码;如果觉得R1C1格式不习惯,可以在在Excel中设置公式的引用方式为A1(在Excel选项的公式项中设置),输入公式后再复制到VBA代码中。
).Range("G11").FormulaR1C1 = "=SUM(R[-9]C:R[-1]C)";[]中的数据代表单元格相对于当前单元格的行列偏移。
1.3 输入数组公式向单元格或单元格区域输入数组公式,需要使用FormulaArray属性。
Range("E1:E11")FormulaArray = "=C2:C10*D2:D10"2 使用函数2.1 VBA引用Excel内置函数.Range("A16") = "=find(""."",A13,1)".Range("A18") = Application.WorksheetFunction.Find(".", fname, 1)(在VBE的代码窗口中输入Application.WorksheetFunction.可以得到引用Excel内置函数的提示;)2.2 VBA引用VBA内置函数.Range("A14") = InStr(, ".")(在VBE的代码窗口中输入VBA.,可以得到内置函数的提示;)2.3 自定义函数函数过程的标志以Function开头,定义好以后,可以像调用Excel已定义的函数一样通过等于号去使用它。
VBA函数与公式一、在单元格中输入公式1、用VBA在单元格中输入普通公式Sub t1()Range("d2") = "=b2*c2" '在d2单元格中输入公式"=b2*c2"End SubSub t2()Dim x As Integer '声明变量x为Integer型For x = 2 To 6 '变量x值介于2至6间Cells(x, 4) = "=b" & x & "*c" & x '在活动单元格Cells(x, 4)中输入公式"=b" & x & "*c" & xNext x '循环下一个End Sub2、用VBA在单元格输入带引号的公式Sub t3()Range("c16") = "=SUMIF(A2:A6,""b"",B2:B6)" '在单元格c16中输入公式"=SUMIF(A2:A6,""b"",B2:B6)",公式中遇到单引号就把单引号加倍End Sub3、用VBA在单元格中输入数组公式Sub t4()Range("c9").FormulaArray = "=SUM(B2:B6*C2:C6)" '在c9单元格输入数组公式"=SUM(B2:B6*C2:C6)"End Sub二、利用单元格公式返回值Sub t1()Range("d16") = Evaluate("=SUMIF(A2:A6,""b"",B2:B6)") '在d16单元格返回公式"=SUMIF(A2:A6,""b"",B2:B6)"的值Range("d9") = Evaluate("=SUM(B2:B6*C2:C6)") '在d9单元格返回数组公式"=SUM(B2:B6*C2:C6)"的值End Sub三、调用工作表函数Sub t1()Range("d8")=Application.WorksheetFunction.CountIf(Range("A1:A1 0"), "B") '调用工作表函数调用函数的参数设置问题,Sum(Range("d2:d6"))是VBA表示方法。
用宏表函数与公式
1. 首先:点CTRL+F3打开定义名称,再在上面输入“纵当页”,在下面引用位置处输入:
=IF(ISNA(MATCH(ROW(),GET.DOCUMENT(64))),1,MATCH(ROW(),GET.DOCUMENT(64))+1)
2.然后再继续添加第二个名称:“横当页”,在下面引用位置处输入:
=IF(ISNA(MATCH(column(),GET.DOCUMENT(65))),1,MATCH(column(),GET.DOCUMENT(65))+1)
3.再输入“总页”;引用位置处输入:(在MSoffice2007不管有多少页,都只显示共有1页,不知为什么)
=GET.DOCUMENT(50)+RAND()*0
4.最后再定义“页眉”,引用位置:
="第"&IF(横当页=1,纵当页,横当页+纵当页)&"页/共"&总页&"页"
5.在函数栏使用应用即可得到需要的页码。
另外一般情况下,一般的表册都要求每页25行数据,同时每页还需要设置相同的表头,虽然上面的方法可以在任意单元格内计算所在页面的页码,但是如果公式太多的话,计算特别慢。
如果每页行数是固定的(比如25行)话,就可以采用下面的笨方法。
1、设置顶端标题行,“页面设置”→“工作表”→“顶端标题行”中输入“$1:$4”(第1行到第4行)
2、在工作表中数据输入完毕后,设置好各种格式,除表头外,保证每页是25行数据。
3、在需要设置该行所在页面的页码的单元格内输入如下公式:
=INT((ROW()-ROWS(Print_Titles)-1)/25)+1
(公式里面的Print_Titles就是前面第1步所设置的顶端标题行区域。
)
4、通过拖动或者复制的方法复制上面的公式,即可得到页码。
也希望各位朋友多多指教,如有更好的方法请赐教,谢谢了。