excel学习问答

  • 格式:doc
  • 大小:173.50 KB
  • 文档页数:74

一、问:引用问题我在excel中想实现这么一个功能,如单元格D12有一个数据是4,现在我想引用A4的数据,但4是由D12提供的,即如何实现A4=A(D12)。

也就是,在Excel中,A7单元,能否实现把后面的数字用算式来代替,如A(3+4),或者是单元格的嵌套,A(D12)?答:①=indirect("a"&d12) ②我的想法:借一个单元格如B4用,键入="A"&D12 在需引用的单元格键入=INDIRECT(B4) 即可,第二个:C4是3,C5是4 B4="A“&C4+C5 ,同①。

二、问:如何在一列列出工作薄中的所有表(表名无规律),用VBA?答:以下宏将在a列传回所有工作表名称。

(很实用) Sub Maco1() For i = 1 To Sheets.Count Cells(i, 1) = Sheets(i).Name Next End Sub三、问:18位身份证号码输入的几种解决方法?答:相信在EXCEL这个软件中如何输入15位或18位身份证号码的问题已经困挠了许多人,因为在EXCEL中,输入超过11位数字时,会自动转为科学计数的方式,比如身份证号是:123456789012345,输入后就变成了:1.23457E+14,要解决的方法有非常非常......多种哦,呵呵,现在为大家说几种比较简单快速的方法:1、在A1单元输入号码时,在前面先输入‟号,就是:‟123456789012345,这样单元格会默认为该单元为文本方式,会完整显示出15个号码来,而不会显示那令人讨厌的科学计数方式来了。

2、如果已经输入了大量的号码,全部以科学计数显示的话,而又懒的按照上面的方法一个一个的重新输入的话,也有这个好方法哦,比如已在单元A1:A100输入了号码,按以下步骤做:》选择单元A1:A100》单击鼠标右键,设置单元格式》选择自定义,在…类型‟中输入…0‟即可,轻松搞定,呵呵!!3、还有一种用函数来解决的方法:在A1:A100已经输入大量的号码时,在B1单元中输入:=trim(' 'a1),注意两个‟之间是空格,这个公式的意思:先在A1单元15位号码前加个空格符号,然后用trim这个函数把空格符号去掉。

输完后,B1单元也是显示出完整的15位数字了。

四、问:用countif算出数值大小在50~60之间的单元格个数?答:①可以综合一下呀! =countif(a1:a9,">=50")-countif(a1:a9,">60")②{=SUM((a1:a9<60)*(a1:a9>50))}③为什么{=SUM((a1:a9<60)*(a1:a9>50))}可以求出符合条件的个数,按理后面应再加一待求和区域如"B1:B9"等等,不知数组计算的内部机制是怎样的,不知谁能给个解释,谢谢!!④这个数组公式是这样运算的:a1:a9区域的数值分别与60比较。

假如a1:a9的数依次为15,25,35,45,55,65,75,85,95.那么(a1:a9<60)返回{true,true,true,true,true,false,false,false,false},同理(a1:a9>50)返回{false,false,false,false,true,true,true,true,true}。

然后(a1:a9<60)*(a1:a9>50)则返回{false,false,false,false,true,false,false,false,false}。

因为*表示and的意思。

只有当and的对象都为真时结果才为真。

excel里用1表示true;0表示false。

有时需要将true或false转换成数值,可以*1或+0五、问:几个工作表生成一个打印文件一次打印?答:先按Ctrl键+ 其它要一起打印的工作表就会成为一个群组,打印的页数可延续到下一个Sheet六、问:自动计算应收款滞纳金?答:=(DATEDIF(应收日期,NOW(),"d"))*滞纳金率(每天)*应收金额七、问:SUM函数难题?(简单函数大作用!)A B234234 230235235 12236236 10237237 13如何用函数计算出下面几个数据1。

A和B都有数据且A>B的个数2。

A栏在相应的B栏有数据的情况下的数据总和,例如A1对应B1有数据,A3对应B3有数据,则求A1+A3的和。

希望都能用一个函数求出所要的结果。

答:=SUM(($A$1:$A$10<>"")*($B$1:$B$10<>"")*($A$1:$A$10>$B$ 1:$B$10))=SUM(($A$1:$A$10<>"")*($B$1:$B$10<>"")*($A$1:$A$10>$B$ 1:$B$10)*($A$1:$A$10+$B$1:$B$10)) 记得输入公式后要按ctrl+shift+enter八、问:工作表中的小写字母都变成大写?答:请运行以下程序:(测试通过)Sub ConvertToUpperCase()Dim Rng As RangeWorksheets("Sheet1").UsedRange.SelectFor Each Rng In Selection.CellsIf Rng.HasFormula = False ThenRng.value = UCase(Rng.value)End IfNext RngEnd Sub当然,如果少量的转化用函数即可。

九、问:用COUNTIF计算整个B列中含有“F”这个字符的单元格的个数?c1=COUNTIF(b1:b130,b129),(b129单元格内的字符是“F”),问题是随后在向表格中添加新行131、132、133.....之后,c1单元格中公式统计的结果还是1-129行的,怎么才能让c1中实时显示添加新数据后的统计结果?答:c1=COUNTIF(b:b,b129)十、问:自动记录出车情况?现有一表格,每天记录50辆不同车号的车辆的“出车里程”和“回库里程”,需要打印一清单,自动统计每辆在库车辆的当前里程,请问该如何做(结果放在其它sheet中,为方便显示这里和数据放在一个sheet中了) ?答:可以用数组公式: 假设"此处数据不断增加"所在工作表的名字为"SHEET1". 在"此处需要更新"所指的单元格内输入公式=MAX(IF(OFFSET(Sheet1!$A$2,,,COUNTA(Sheet1!$A$2:$A$65536)) =A2,OFFSET(Sheet1!$B$2,,,COUNTA(Sheet1!$B$2:$B$65536))))",按CTRL+SHIFT+ENTER 结束,之后向下填充公式EXCEL问题:十八问十八答1.EXCEL的单元格有自动换行功能,那么它是如何知道一行已写满的??我在程序中能不能知道?我能不能在程序中获得单元格一行写满的消息?解答:第一种方法,alt+enter。

第二种方法,看你打算一行多长,如20个字符,那在程序里设定到这么长就加Chr(13)&Chr(10),即加硬回车2.indirect 取数组的问题?INDIRECT("sheet"&ROW(B2)&"!a:a") 取数组时出错,而INDIRECT("sheet"&ROW(B2)&"!a1")却可行。

能解答一下吗?解答:Q、sheet & row(b2)不就是sheet2吗?,直接用sheet2!A:A就可以了。

A、我只是想弄清楚这个问题,这样做法问题出在哪里?Q、引号中的是字符串,A1是字符串没关系,A:A恐怕就不行了。

:应该是一个运算符号。

Q、indirect(.....)结果是一个区域时必须只能用数组输入(CTRL+SHIFT+ENTER),或作为另一个函数的参数,或在定义-名称中使用。

我也曾遇到过在用有的函数时(),用A:A不行,而必须改为A1:A65535才能通过(就是要比工作表最大行数少1)Q、这样 =INDIRECT("sheet"&ROW(B2)&"!a1:a1")3.以下公式中,我还不太理解用LEN-ROW的用意,还有MID的作用是什么呢,能介绍一下么?谢谢。

wait duilet dhgsl 8=RIGHT(A1,MATCH("",MID(A1,LEN(A1)-ROW(INDIRECT("1:"&LEN(A1) )),1),0))Q、不明白你公式求什么LEN(A1) = 19ROW(INDIRECT("1:"& LEN(A1))) = 1其实是 {1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19} 但储存格只显示第一个数字MID(A1,LEN(A1)-ROW(INDIRECT("1:"&LEN(A1))),1) = " "其实是{" ";"l";"s";"g";"h";"d";" ";"t";"e";"l";"i";"u";"d";" ";"t";"i";"a";"w";#value!}这公式会出错:19 - 19 = 0 i.e. MID(A1,0,1)可改成 =MID(A1,LEN(A1)-ROW(INDIRECT("1:"&LEN(A1))) +1,1)实在= {"8";" ";"l";"s";"g";"h";"d";" ";"t";"e";"l";"i";"u";"d";" ";"t";"i";"a";"w"}至于 Match 不是用于单一储存格Lookup_array 是个连续的储存格范围,其中含有被比对值的数据。