EXCEL基础攻略与实战技巧 下载本文

2:小修改

=IF(MOD(ROW(),3)=1,INDEX(Sheet1!$A$1:$Z$500,INT(ROW()/3)+1,COLUMN()),\

当点到某单元格时单元格会出现一个下拉的列框,可以选取其中的数据

解答:[数据]-[有效性]-[序列]

又问:好像选取数据只能在本页面,有无高招选取另外页面的数据源,甚至是另外工作薄的?

解答:先在“插入-》名称”中定义好其它页面上需要引用的数据源的名称(AA)。然后 [数据]-[有效性]-[序列] ,在“数据源”栏输入“=AA”。

或:若改其它活页薄要如何修改下列式子?( 假设活页薄名称为book1) =Sheet1!$A$2:$A$14(book2)

查找与引用

有一个表格:

承兑行 天数 实际天数 深圳工行 98 101 广州交行 105 108 鞍山工行 100 100

如果“承兑行”一栏含有鞍山字样,则“实际天数”等于“天数”;如果“承兑行”一栏不含有鞍山字样,则“实际天数”等于“天数”加上3,请问:如何设置? 解答:这个问题的重点在于如何判断是否含有“鞍山”字样。

如果“鞍山”在字符串中的位置是固定的,则很容易用MID函数找到并进行判断; 如果不是,则需要用FIND或Search函数来找到再判断。 或:如果A列中是承兑行,B列是天数,C是.... 可以试用一下以下的公式:

=IF(ISERROR(FIND(\鞍山\

如果D2>20那E2就显示$200、如果D2>30那E2就显示$300依此类推

解答:=INT(D2/10)*100 ,当然,你的单元格格式设置成$格式就可以了。否则用,=\则该单元格成字符型 。当然,你也可以用IF函数,但它有7层的限制。if (D2>30, \

在两个工作表之间查找相同的内容并复制到新表

有两张工作表,内容都是电话号码、用户名称,怎样对两张工作表进行比较?(把第一张工作表和第二张工作表中电话号码相同的项目复制到新工作表中或加上标记) 解答:先备份工作簿。

假设SHEET1、SHEET2 两张表的结构相同,A 列为用户名,数据由第二行开始。新建SHEET3 并在其A2 单元格中输入 =IF(ISNA(MATCH(Sheet2!$A2,Sheet1!$A:$A,0)),\并向下、向右填充。

完成后SHEET3中多了SHEET2 和SHEET1 共有的用户名,以及由\填充的数据行。剩下的就简单了!

统计偶数单元格合计数值

解答:统计F4到F62的偶数单元格合计数值 。公式一{=SUM(IF(MOD(ROW(F4:F62),2)=0,F4:F62))}

13

公式二 (要有安装'分析工具箱'){=SUM(IF(ISEVEN(ROW(F4:F62)),F4:F62))}

按表1中A列的编号提取表1中的相应数据并自动录入到表2中的对应的相关列

有两个工作表,工作表1中A列为编号,其它列为相关数据,若在工作表2中的编号列单元格中输入编号时,如何才能按表1中A列的编号提取表1中的相应数据,自动录入到表2中的对应的相关列。 解答:利用vlookup寒暑,该函数的用处就是把一个数据区域当成数据库,并利用条件检索相关纪录。 有了这点认识就非常简便了!在表2的单元格中输入下面的公式: =vlookup(编号,表1!有关数据区域,第n列,false)

解释: 1、编号——不需要输入,主要是编号的相对引用。例如: 编号在b2,公式在c2,则编号为:b2

2、有关数据区域——必须是绝对引用,也就是数据区的行列要用$符号修饰。例如:从a1到h50是数据,则应该写为:$a$1:$h$50

3、第n列——也就是你准备返回第几列的值。例如:你输入编号后,要得到姓名,而姓名在数据区域的第5列,n就是5。

4、false——此处取值有两种,一是true,一是false。两者的区别是 true为相似匹配,false为精确匹配。

用EXCEL做统计

如:A1,B1单元格是时间类型,C1是数字类型,我要计算费用用(B1-A1)*C1得到的数据还是时间类型、怎么办 ?我希望把时间类型变为整数类型,如0:50(50分钟)*3(元/H)=2.5元 解答:设A1

为3:30,B1为4:30,C1为

3,D1

为下列输入的函数:

=HOUR(B1)*60+MINUTE(B1)-(HOUR(A1)*60+MINUTE(A1)) 。D1结果等于60(分钟)

单元格是否有注释

我在用VBA写EXCEL的注释时,需要等程序判断该单元格是否有注释,如果有就读出来,如果没有就添加,但我一直没找到用什么办法来知道单元格是否有注释,请各位大虾指点!!! 解答: Sub 批注() For i = 1 To 8 On Error Resume Next

a = Sheets(1).Cells(i, 1).Comment.Text If Err.Number = 91 Then

Sheets(1).Cells(i, 2) = \左侧单元格无批注\

Sheets(1).Cells(i, 1).AddComment Text:=\请输入批注内容\Else

Sheets(1).Cells(i, 2) = \左侧单元格批注\End If Next i End Sub

根据A1的内容,决定A2的数值是来自sheet1,sheet2还是sheet3.

我用了公式却不行.用 Range(\也不行.(A3有公式: =\请各位帮忙了.

14

解答:if(a1=1,sheet1!a1,if(a1=2,sheet2!a1,if(a1=3,sheet3!a1)))

能不能做到让符合条件的单元格所在的列自动隐藏

比如说第一行的第一个单元格=1那么就自动隐藏第一行? 解答用vba。 Sub 隐藏()

for i=1 to x x--行号

if sheets(1).cells(i,1)=1 then Rows(i).Select

Selection.EntireRow.Hidden = True end if next i

直接输入一组数如“20020213101235”后,自动转换成日期格式

解答:A1中输入,B1中转换。。B1=Left(A1,4)&\—\—\\

把sheet1到sheet200的a19这一格,依序贴到sheet0的a1到a200

解答:方法一:公式

可在A1储存格输入以下公式,再行拖曳至A200即可。 =INDIRECT(\方法二:VBA Sub Macro1() '选择工作表 sheet0 Sheets(\For r = 1 To 200

'将工作表 1~200 里面的 D17 复制到 sheet0 的 A1~A200 Cells(r, 1) = Worksheets(CStr(r)).Range(\On Error Resume Next Next r End Sub

A列记录几百条,如何对这列计数(重复的数值不计)

我只能做到新建一列,B列,然后第一个单元格countif($A$1:$A$100,A1),然后拖动到全部新列。最后在新列下面用sumif(B1:B100,1) 谁有更好地方法?

解答:1、试试这个:{=SUM(IF(COUNTIF(A1:A100,A1:A100)=1,1,0))}

2、操作:①A1作公式栏,A2作字段名栏,如原该两栏有数插入2行。在A1输入:=SUBTOTAL(3,A$2:A$5000) 统计记录数或:=SUBTOTAL(9,A$2:A$5000) 数据汇总 ②选:数据-->筛选-->高级筛选-->选择不重复的记录。 ③复原选:数据-->筛选-->高级筛选-->全部显示。

3、试试这个: {=SUM(IF($A$1:$A$100=\

4、请解释一下,因为我单独使用COUNTIF($A$1:$A$100,$A$1:$A$100)数组公式时,它仅仅计算第一个也就是A1的个数.

15

5、我发觉你的这办法,只对唯一的数据进行了计数,而重复的数据全部未计入(是不是应该将重复的数据也计上一个?)打哈欠的“{=SUM(IF(COUNTIF(A1:A100,A1:A100)=1,1,0))}”也是这样。 TO 剑魔版主你公式中的“1/(COUNTIF($A$1:$A$100,$A$1:$A$100))”像是一个倒数,怎么理解? 6、用倒数是这个意思:如果只出现一次,数组中的相应项统计为1,其倒数为1,Sum统计计1 如果出现 N 次,其倒数为1/N,出现了N次,求和就是Nx1/N,最后Sum统计就只计1。

如果有文本串\,我想取第三、四的值\,应该用什么函数

解答:1、=mid(\

2、如果你的A1中的数值一定包含后四位阿拉伯数字的话,你可以用这个: =LEFT(RIGHT(A1,4),2)=LEFT(RIGHT(A1,4),2)=LEFT(RIGHT(A1,4),2)

3、我的实际工作中的数据还没有如此规律,该怎么办?如:A1=\,A2=\,A1取\,A2取\。能否用一个函数去掉A1中\,然后都是从阿拉伯数字的第一位开始取两位数?

4、如果阿拉伯数字数量不定,但是以2个英文字母开头(或无英文字母),可以用以下公式:(设数据在A1中) =IF(ISNUMBER(VALUE(A1)),MID(A1,1,2),MID(A1,3,2)) 5、数组公式:

{=MID(A1,MIN(IF(EXACT(LOWER(MID(A1,ROW(INDIRECT(\(MID(A1,ROW(INDIRECT(\)}

怎样将文字和数字分2列显示

中行41785015110010091252、青泥支行200303004500696、卡伦办事处801017651、站前支行0709000309221004055 、金州支行400301459508091

解答:1、用函数可以解决。 假如A1 为 中行41785015110010091252

则B1=LEFT(A1,(SEARCHB(\、C1=MID(A1,LEN(B1)+1,50)、随后将B1、C1的公式往下复制。 2、Sub 分列()

For Each jk In Sheet1.UsedRange.Columns(1).Cells For i = 1 To Len(jk.Formula)

If Abs(Asc(Mid(jk.Formula, i, 1))) < 256 Then

Sheet1.Cells(jk.Row, (jk.Column + 1)).Formula = \1))

jk.Formula = Left(jk.Formula, (i - 1)) Exit For End If Next i Next End Sub

3、是否将Asc(Mid(jk.Formula, i, 1)) < 256 改成 47 < Asc(Mid(jk.Formula, i, 1)) < 58 会更好,因为它只将数字抽出,如果数字前有英文字的话将抽往数字列。 4、我看帮助中instr函数不错 配合循环速度应快些

500个不连续的数之和的求法

我有一个表格,有一列数据是以6 个单元格为一个单位做一次小计,我在小计中加入了公式

16