excel函数总结

来源:互联网 发布:ubuntu安装datautil 编辑:程序博客网 时间:2024/06/07 04:20

求和:=sum(D1:D51)

平均值:=AVERAGE(D2:D51)

  首先用=VLOOKUP(E2,Sheet3!$A$1:$B$2984,2,FALSE)   注释:E2需要比对的列, Sheet3和哪一页进行比对 A1:B2984 是比对的范围 2是返回的第几列false是精确比对

       比对出来主承 发行人 之类的id  主承不能为空 然后用函数生成脚本。

=CONCATENATE($AI$1,A230&"', '",IF(ISBLANK(D230),"null",D230)&"', '",IF(ISBLANK(C230),"null",C230)&"', '",IF(ISBLANK(B230),"null",B230)&"', '",IF(ISBLANK(AB230),"null",AB230)&"', '",IF(ISBLANK(AC230),"null",AC230)&"', '1', '0', 'admin', '",IF(ISBLANK(M230),"null",M230)&"', '",IF(ISBLANK(N230),"null",N230)&"', '",IF(ISBLANK(J230),"null",J230)&"', ",IF(ISBLANK(V230),"null","to_timestamp('"&TEXT(V230,"yyyy-mm-dd")&"', 'yyyy-mm-dd')")&", ",IF(ISBLANK(O230),"null","to_timestamp('"&TEXT(O230,"yyyy-mm-dd")&"', 'yyyy-mm-dd')")&", '",IF(ISBLANK(T230),"null",T230)&"', ",IF(ISBLANK(U230),"null","to_timestamp('"&TEXT(U230,"yyyy-mm-dd")&"', 'yyyy-mm-dd')")&", '",IF(ISBLANK(AD230),"null",AD230)&"', '"&IF(ISNA(AE230),"null",AE230)&"', 'CNY', ",IF(ISBLANK(P230),"null","to_timestamp('"&TEXT(P230,"yyyy-mm-dd")&"', 'yyyy-mm-dd')")&", '",IF(ISBLANK(AF230),"null",AF230)&"', '",IF(ISNA(AG230),"null",AG230)&"', '",IF(ISNA(AH230),"null",AH230)&"');")

     然后下拉就可以生成脚本了。

二、整理含权的脚本

       首先先筛选出含权的债券信息,然后将债券id比对出来,然后根据他需要的字段进行整理,由于含权的导入方式是一只债券有可能存在多个含权,例如(1,2,3)

像是这种的话。就需要每条都要去生成sql脚本,这就很有难度了,下面我来分享一下我的操作步骤。

(1) 首先插入四列 用函数去判断 是否存在含权代码 =IFERROR(IF(FIND("1",B2)>0,I2,0),0)  ,=IFERROR(IF(FIND("2",B2)>0,J2,0),0),=IFERROR(IF(FIND("3",B2)>0,K2,0),0),=IFERROR(IF(FIND("4",B2)>0,L2,0),0)

I2,J2,K2,L2 分别 是对应的sql,意思就是如果存在相应的含权代码就将对应的sql脚本打印到表格中 sql脚本如下:

=CONCATENATE("insert into T_RIGHTTYPE_INFO(DCM_BOND_INFO_ID,RIGHT_TYPE,EXERCISE_DATE) values('",A2,"','",1,"',","to_timestamp('"&TEXT(G2,"yyyy-mm-dd")&"', 'yyyy-mm-dd')",");")


=CONCATENATE("insert into T_RIGHTTYPE_INFO(DCM_BOND_INFO_ID,RIGHT_TYPE,EXERCISE_DATE) values('",A2,"','",2,"',","to_timestamp('"&TEXT(G2,"yyyy-mm-dd")&"', 'yyyy-mm-dd')",");")

2017 7 11


以下是整理数据迁移的实现思路

1、首先用excel表格比对二期数据库的字段,整理出字段关系

2、用函数生成脚本

     (1)首先在excel的第一列(AC1)整理insert 语句例如 insert A(字段1,字段2,...) values ('

     (2)然后在下面的表格里面写函数 公式-插入函数选择这个函数CONCATENATE,在text1里面引用AC1中的内容,text2中填写如果是必填项B2&"', '"

                  如果不是必填项就要去判断是否为空,IF(ISBLANK(N2),"null",N2)&"','"

                        如果是日期的话需要去转成日期型  IF(ISBLANK(F2),"null","to_timestamp('"&TEXT(F2,"yyyy-mm-dd")&"', 'yyyy-mm-dd')")&", '"

                       如果是结尾的话 AA2&"');" 或者是IF(ISNA(AH2),"null",AH2)&"');"    

接着text3就可以按照之前的填写。

3、整理脚本的时候遇到了一个问题,就是insert语句有空格,经过排查,原来是有一个单元格有空格

2017 7 12

今天又遇到一个问题,就是生成的脚本 如果是日期类型的话 不能将'null' 插入到数据库里面,所以如果遇到日期类型的话可以将

B2&"', '"  里面的单引号去掉。

2017 7 18

=IFNA(L2,M2) 如果L2为na就执行M2,如果没错,就执行L2。

=SUBSTITUTE(A1,RIGHT(A1,4),"")  截取,例如:5F7D4F92567B7565BFB1437FF398370.pdf 将后缀名截取调

2017 0719

EXCEL中ISNA函数是判断是否为#N/A的

2017 08 03

由于发现发行人的信息不对 所以需要在标题中截取发行人的名称 首先 把公司的司字全部替换成司- 然后 数据--分列,按照-分列就可以把公司的名字分列出来

感想:excel是强大的

2017 0807

今天遇到一种这样的情况就是一般的vlookup函数在查找到的时候,找的到就会返回  例如这个函数 =VLOOKUP(A16,附件信息!$A$2:$H$4887,8,FALSE) 如果A16存在但是对应的没有值就会返回0 这样在生成脚本的时候不能将0插入,所以在函数后面加一句话=VLOOKUP(A16,附件信息!$A$2:$H$4887,8,FALSE)&""  这样返回的就是空值了,可以用

ISBLANK来判断,还有一种情况那就是如果匹配不到A16 那么就会返回N/A这个错误,那么就可以用ISNA来判断

2017.8.17

今天整理DCM脚本的时候突然发现,有个时间的问题, 就是导出来的是这种格式的02-5月 -17 02.59.30.000000 下午处理办法应该在查询sql中就把如期处理掉。

 to_char(apply.DISCLOSURE_TIME,'YYYY/MM/DD  HH24:MI:SS')

2017 8 24

整理增量数据问题

一、债券代码 数据分列-按照固定宽度-下一步-设置文本格式。F031558019分离成031558019这种格式

二、日期是20170829这种格式 用数据分列的方式 分成 2017/08/29这种格式

2017 8 29

一、今天遇到个问题就是excel突然出现信息检索的功能,按alt+叉可以把信息检索关闭

二、excel可以查找相同的并且可以用颜色标记,之后可以筛选相同颜色的数据,这样可以很快的查找出来相同的数据。

2017 9 1

今天遇到了一个问题就是用pl sql导出来的sql脚本有空格

在nopad++中 ctrl+h查找 查找模式选择扩展 查找目标:\r\n\r\n
替换为:\r\n。

从pl sql里面导出来的数据 要按照 tool-export 选择表 这样导出来才有完整的日志

20170921

执行sql脚本的时候遇到一个这样的问题,中盈2015年第二期-专项复核&年度受托机构报告.pdf附件名称里面带有&符号,数据库会自动当成转义字符。出现年度受托机构报告消失的情况,

解决方式:中盈2015年第二期-专项复核'||chr(38)||'年度受托机构报告.pdf 用ascII拼接起来。

原创粉丝点击