如何使用对照表?

如何使用对照表?

设一对照表如下:如何使用函数当输入。当a1=34 则a2显示”乙” b1=68 则b2显示”丁”/甲 22 33 44 66…./乙 26 34 43 62…. /丙 28 39 41 67…. /丁 27 31 49 68…. /戊 23 32 46 64…. /己 29 38 47 61…. /更 21 37 48 69…. /辛 24 36 42 63….

成都office培训学校解答:

如A列输入的数字在表中都存在,把你的数据放在D到G列,甲乙丙丁戊己辛放在最后一列,即H列。在B列输入公式“=IF(A1=””,””,VLOOKUP(A1,INDIRECT(ADDRESS(1,INT(0.1*A1)+IF(A1>60,1,2))):INDIRECT(ADDRESS(8,8)),7-INT(0.1*A1)+IF(A1>60,1,0),FALSE))”。如甲乙丙丁戊己辛放在第一列,即列用公式“=IF(A1=””,””,INDEX(D:D,MATCH(A1,INDIRECT(ADDRESS(1,INT(0.1*A1)+IF(A1>60,2,3))):INDIRECT(ADDRESS(8,INT(0.1*A1)+IF(A1>60,2,3))),0)))”

解答2:如果数据无规律,可用以下方法:如你的数据表在D到H列,在I列输入公式“=IF(ISERROR(MATCH(A$1,E1:H1,0))=TRUE,0,row())”并向下填充,在B1单元格输入公式“=IF(A1=””,””,INDEX(D:D,LARGE(I:I,1)))”

解答3:我将解答2公式做了小修改(I列公式删除),B1单元格输入公式:=IF(A1=””,””,INDEX($D:$D, IF(ISERROR(MATCH(A1,$E$1:$H$1,0))=TRUE,0,ROW($E$1:$H$1))+ IF(ISERROR(MATCH(A1,$E$2:$H$2,0))=TRUE,0,ROW($E$2:$H$2))+ IF(ISERROR(MATCH(A1,$E$3:$H$3,0))=TRUE,0,ROW($E$3:$H$3))+ IF(ISERROR(MATCH(A1,$E$4:$H$4,0))=TRUE,0,ROW($E$4:$H$4))+ IF(ISERROR(MATCH(A1,$E$5:$H$5,0))=TRUE,0,ROW($E$5:$H$5))+ IF(ISERROR(MATCH(A1,$E$6:$H$6,0))=TRUE,0,ROW($E$6:$H$6))+ IF(ISERROR(MATCH(A1,$E$7:$H$7,0))=TRUE,0,ROW($E$7:$H$7))+ IF(ISERROR(MATCH(A1,$E$8:$H$8,0))=TRUE,0,ROW($E$8:$H$8))))。

解答4:在B1单元格输入公式:{=IF(COUNTIF($E$1:$G$8,A1)=0,”查无资料”,INDEX($D$1:$D$8,SUM(IF($E$1:$H$8=A1,ROW($E$1:$H$8)))))}

又问:当数据区域有重复数据时,就得不到正确结果。因为,在这里你的SUM()返回的只是对一个数据求和。如果有重复数据,怎样才能得到正确结果呢?

答:在B1单元格输入公式:=IF((COUNTIF($E$1:$H$8,$A$1)=0)
+(COUNTIF($E$1:$H$8,$A$1)
< ROW( )),”” ,
INDEX($D$1:$D$8,SMALL(IF($E$1:$H$8=$A$1,ROW($E$1:$H$8)),ROW())))

再往下拖曳,就可依序顯示了。真是快瘋了改了十幾次,有些莫名其妙,進來編輯看公式是完整的可是發表後又老是缺東缺西的,只好多加些空白或強迫分段處理,請使用者自行修改。

或:如有重复数据,則顯示”数据重复”表示,代表要修改数据。{=IF(COUNTIF($E$1:$H$8,A1)=0,”查無資料”,IF(COUNTIF($E$1:$H$8,A1)>1,”資料重複”,INDEX($D$1:$D$8,SUM(IF($E$1:$H$8=A1,ROW($E$1:$H$8))))))}

如何使用EXCEL进行动态跨表取数?

永恒的求和

1、=SUM(OFFSET(A1,,,ROW()-ROW(A1)))可以对A列数值自动求和。

2、=SUM(INDIRECT(“R2C:R[-1]C”,FALSE))

3、=SUM(INDIRECT(“A2:A”&ROW()-1))

  • 坚持不用R1C1栏名列号表示法还有一个方法,不过又复杂了些。首先定义一个公式:COL=IF(COLUMN()>26,CHAR(INT((COLUMN()-1)/26)+64)&CHAR(IF(MOD(COLUMN(),26)=0,26,MOD(COLUMN(),26))+64),CHAR(COLUMN()+64))。后于欲求加总之储存格输入:=SUM(INDIRECT(COL&”1:”&COL&ROW()-1))。则此公式复制到任何一任皆可用,又不怕产生错误值。(注:COL=IF(COLUMN()>26,CHAR(MOD(COLUMN(),26)+64)&CHAR(INT(COLUMN()/26)+64),CHAR(COLUMN()+64))。暴露了一个为人不知的缺点,如果列数到了AA列以后就不行了,虽然可用ADDRESS()解决,比用CHAR()好多了,但公式还是太长,用在一个加法中实在不值)
  • 其实用ADDRESS更好,=SUM(INDIRECT(ADDRESS(1,COLUMN())&”:”&ADDRESS(ROW()-1,COLUMN()))),还是一句老话,为做一个加法不是太值,这只能是技术上的讨论。

如何使用EXCEL进行动态跨表取数

有两个文件,第一个文件有31张日报表,每天一个表单;第二个文件仅一个表单;如何在第二个文件中,输入1时由函数动态取出第一张表单数(如SHEET1),输入2时取(SHEET2)数,依次类推……。,如何设公式。在同一文件中可以用INDIRECT和ADDRESS组合,可是跨表好象不行,请各位指教一二!

成都office培训班解答:前提是两个工作表都要打开:=INDIRECT(“[Book2]Sheet”&A1&”!$B$1″)

请问想要取当前单元格的列号,用什么函数?

如何让EXCEL自动从头统计到当前单元格

情况如下: C列要根据A列的内容来统计B列的数据,范围从A1:An,即当A列中An有数据时,Cn自动根据An的值,统计B1:Bn的数据。

成都office培训班解答:=SUM(INDIRECT(“B1:B” & LARGE((A1:A65535<>””)*(ROW(A1:A65535)),1))),按Ctrl+Shift+Enter。

请问想要取当前单元格的列号,用什么函数?

1、=CHAR(64+COLUMN())

2、Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Selection.Columns.Column > 26 Then
tt = Mid(ActiveCell.Address, 2, 2)
Else
tt = Mid(ActiveCell.Address, 2, 1)
End If
MsgBox (tt)
End Sub

3、1的公式就变化一下:=IF(COLUMN()>26,CHAR(64+INT(COLUMN()/26)) & CHAR(64+MOD(COLUMN(),26)),CHAR(64+COLUMN()))

如何在Excel中打造自己的“公式保护”菜单?

如何在Excel中打造自己的“公式保护”菜单?

工作中经常用到Excel的计算功能,有时一张工作表中需要设置很多公式,为了防止误操作就将工作表保护起来,但是如果将含有公式的单元格保护,而其它单元格不锁定,设置时需要一个个单元格选定,很麻烦而且容易出错,就想到建立一个菜单项,将这项工作变成菜单 。有幸的是这一切Excel都能完成,成都office培训班分享下具体操作如下:

先将工作表保护,不必输入密码。

再录制一个宏。方法是:打开“工具”栏,单击“宏”-“录制新宏”;将其命名为“公式保护”,单击“保存在”的下拉箭头,将新宏保存到“个人宏工作簿”。单击“确定”录制开始。(注意此后的每一动作都将被录制,直至“停止录制”。)

  1. 将工作表取消保护;
  2. 选定a1单元格,输入=”测试”(注:黑体为实际输入内容,标点符号均为英文输入法状态,下同);
  3. 单击工作表左上角的方框选定整个工作表;
  4. 单击“格式”-“单元格”-“保护”项,将“锁定”和“隐藏”前的方框里的对号去掉;
  5. 单击“插入”-“名称”-“定义”,当前工作表名称输入:公式保护,引用位置输入:=get.cell(4,indirect(“rc”,false)), 单击“添加”后“确定”;
  6. 单击“格式”-“条件格式”,在“单元格数值”下拉框选定“公式”,后面的框内输入=公式保护 ,单击“格式…”,在图案标签内选浅绿色或者其它颜色“确定”,再“确定”;
  7. 单击 “编辑”-“定位”-“定位条件…”,选定“公式”项“确定”再“确定”;
  8. 重复步骤4,将“锁定”和“隐藏”前的方框里的对号选定;
  9. 选定a1单元格,取消其内容,并重复步骤4,取消a1的锁定和隐藏属性;
  10. 单击工具-保护-保护工作表,将工作表保护(也不必设密码)。再单击“工具”-“宏”-“停止录制”停止录制。再打开“工具”-“自定义”项,再“命令”标签栏内“类别”栏中找到“新菜单”并指定,在其右侧的命令框中的新菜单用鼠标按住拖到“工具栏”的“保护”项中的“保护工作表”下面放开,并单击右键将其命名为“公式保护”,将刚才录制名为“公式保护“的宏指定给它。至此,一个很有用的菜单项就作成了。 此后,只要你将鼠标移动到“工具”-“保护”-“公式保护”的位置,工作表将执行其所指定的宏,只要你工作表中输入了公式(以=开头),含有公式的单元格将自动变为浅绿色,提醒你和别人此处有公式,小心编辑,十分醒目。编辑完公式后再次运行该命令就可以此保护工作表并锁定公式,禁止改动。

对A列不重复的数值计数?

对A列不重复的数值计数

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

成都office培训课程解答:

1、{=SUM(IF($A$1:$A$100=””,””,1/(COUNTIF($A$1:$A$100,$A$1:$A$100))))}(又问:公式中的“1/(COUNTIF($A$1:$A$100,$A$1:$A$100))”像是一个倒数,怎么理解?答:用倒数是这个意思:如果只出现一次,数组中的相应项统计为1,其倒数为1,Sum统计计1。如果出现 N 次,其倒数为1/N,出现了N次,求和就是Nx1/N,最后Sum统计就只计1。)

有A1,B1,C1,D1四个单元格D1的值要随着A1的变化而变化?

有A1,B1,C1,D1四个单元格D1的值要随着A1的变化而变化?

A1有三种变化,一、二、三;当A1=‘一’时,D1=“ ”; A1=‘二’时,D1=(B1+C1)/3 ; A1=‘二’时,D1=(B1+C1)/6 。以上可以通过IF来完成 。可我希望的是:当B1或C1为空时,不论A1为什么D1都为空,这样做得到么?

成都office培训学校解答:1、=IF(OR(B1=””,C1=””),””,IF(A1=”一”,””,IF(A1=”二”,(B1+C1)/3,IF(A1=”三”,(B1+C1)/6,””))))

2、=IF(OR(B1=””, C1=””, A1=”一”), “”, IF(A1 = “二”, (B1+C1)/3, (B1+C1)/6))

3、如果考虑 A1 没有数据的话:=IF(OR(B1=””, C1=””, A1=”一”,A1=””), “”, IF(A1 = “二”, (B1+C1)/3, (B1+C1)/6))

如何在输入数字的加减乘除按ENTE后能在另一单元格自动出现计算数值?

如何在输入数字的加减乘除按ENTE后能在另一单元格自动出现计算数值?

成都office培训班解答:1、编了个宏:
Sub aa()
Cells(1, 1) = Mid(ActiveCell.Formula, 2, 13)
End Sub
先在单元格里输入公式得出结果,选定得出结果的单元格运行宏就可以在A1出文本.
2、宏(测试通过)

Sub aa()
A = 2 ‘行’
B = 4 ‘列
LINE1:
If Cells(A, B) = “” Then
Exit Sub
Else
Cells(A, B + 1).Formula = “=” & Cells(A, B)
A = A + 1
GoTo LINE1:
End If
End Sub

如何在单元格返回工作表名称

答:=RIGHT(CELL(“filename”),LEN(CELL(“filename”))-FIND(“]”,CELL(“filename”)))

如何能到两个时间段的17:00-8:00小时数?

如何能到两个时间段的17:00-8:00小时数?

1.已知”E4″为08011500(为文本格式﹐开始时间﹐意思为8月1日 下午15﹕00)﹐”G4″为08100900(为文本格式﹐结束时间﹐意思为8月10日 上午9点) 问﹕如何能得到开始时间到结束时间(17:00-08:00)的总小时数?
2. 如何得到开始时间到结束时间的节假日时数?(如5.1﹐10.1﹐星期六﹐星期天)

成都office培训学校解答:

方法1:=(DATE(YEAR(NOW()),MIDB(AF4,1,2),MIDB(AF4,3,2))-DATE(YEAR(NOW()),MIDB(E4,1,2),MIDB(E4,3,2))-1)*15+IF(MIDB(E4,5,2)+MIDB(E4,7,2)/60<=8,15-(MIDB(E4,5,2)+MIDB(E4,7,2)/60),IF(MIDB(E4,5,2)+MIDB(E4,7,2)/60>=17,24-(MIDB(E4,5,2)+MIDB(E4,7,2)/60),7))+IF(MIDB(AF4,5,2)+MIDB(AF4,7,2)/60<=8,MIDB(AF4,5,2)+MIDB(AF4,7,2)/60,IF(MIDB(AF4,5,2)+MIDB(AF4,7,2)/60>=17,MIDB(AF4,5,2)+MIDB(AF4,7,2)/60-9,8))

方法2:networkdays 需要你提供一个节假日列表作为参数。我猜你不会喜欢手工输入这样一个表。以下公式功能更为强劲,它可以算出两个单元格(A2和C2)所储存的日期之间的周末天数,乘以小时数即可计算出你所说的节假日时数。但是,它无法计算国庆节等公众假期。

=IF(C2>A2,SUM(IF(WEEKDAY(C2-ROW(INDIRECT(“1:”& C2-A2)),2)>5,1,0)),SUM(IF(WEEKDAY(A2-ROW(INDIRECT(“1:”& A2-C2)),2)>5,1,0)))。这是一个数组公式,输入完成后按CTRL+SHIFT+ENTER结束。

方法3:用格式定义E4,G4为日期时间格式:****-**-** **:**。然后:(G4-E4)*24 即可得两时间内的小时数。

怎么能快速的将两个单元格的内容互换?

怎么能快速的将两个单元格的内容互换

成都office培训班解答:

1、Sub ChangVal()
my1value = ActiveCell.Value
For Each a In Selection
If a.Address <> ActiveCell.Address Then
my2value = a.Value
a.Value = my1value
ActiveCell.Value = my2value
End If
Next a
End Sub

2、用鼠标先选定单元格,点住单元格边框,并按住SHIFT键,然后托拽到隔壁单元格的后面一条边框处。你能看到被托拽部分会变成灰色的“工”字形,然后放手后,单元格就互换了。

SUMIF函数

a1至A4是10,24,30,12.B1至B4是8,15,25,35.D1至D4是25,4,3,5.用SUMIF 第一参数选取A1:B4,第二参数是>20,第三参数选取D1:D4.它得出是7。它判断的是A1:A4 。我的要求是B1:B4 也跟着判断 , 也就要得出来得是12

解答:{=SUM((A1:A4>20)*(B1:B4>20)*C1:C4)}