[Excel]按照合约匹配交易所
来源:互联网 发布:淘宝商品条形码怎么填 编辑:程序博客网 时间:2024/06/11 21:15
数据源:
某软件导出的合约明细
规则:
国内期货合约对应的交易场所
SHF = {'AG', 'AL', 'AU', 'BU', 'CU', 'FU', 'HC', 'NI', 'PB', 'RB', 'RU', 'SN', 'WR', 'ZN'};
DCE = {'A', 'C', 'I', 'J', 'JD', 'JM', 'L', 'M', 'P', 'Y'};
CZC = {'CF', 'FG', 'MA', 'SR', 'TA', 'ZC'};
CFE = {'IF', 'IH', 'IC'};
如上图,A列存储了合约简称,需要在C列判断交易所
本来打算在vba中进行判断,后来从数组公式中得到启发,改写如下:
=IF(SUM(({"AG","AL","AU","BU","CU","FU","HC","NI","PB","RB","RU","SN","WR","ZN"}=LEFT(A3,FIND(" ",A3)-3))*1),"SHF"
,IF(SUM(({"A","C","I","J","JD","JM","L","M","P","Y"}=LEFT(A3,FIND(" ",A3)-3))*1),"DCE",
IF(SUM(({"CF","FG","MA","SR","TA","ZC"}=LEFT(A3,FIND(" ",A3)-3))*1),"CZC",
IF(SUM(({"IF","IH","IC"}=LEFT(A3,FIND(" ",A3)-3))*1),"CFE",""
))))
利用判断的true or false 转化为0,1相加然后判断匹配。
其中 LEFT(A3,FIND(" ",A3)-3)), 是根据简称的特点,空格前,去掉月份的两个数字。
后发现白糖SAX特殊,上面简称的获取需要再截取一次Left( LEFT(A3,FIND(" ",A3)-3)), 2)
套入公式中发现,存在嵌套超过7层,解决方法,用辅助列,或者改为min方法
=IF(SUM(({"AG","AL","AU","BU","CU","FU","HC","NI","PB","RB","RU","SN","WR","ZN"}=LEFT(A3,min(FIND(" ",A3)-3,2)))*1),"SHF"
,IF(SUM(({"A","C","I","J","JD","JM","L","M","P","Y"}=LEFT(A3,min(FIND(" ",A3)-3,2)))*1),"DCE"
,IF(SUM(({"CF","FG","MA","SR","TA","ZC"}=LEFT(A3,min(FIND(" ",A3)-3,2)))*1),"CZC"
,IF(SUM(({"IF","IH","IC"}=LEFT(A3,min(FIND(" ",A3)-3,2)))*1),"CFE",""
))))
- [Excel]按照合约匹配交易所
- mysql like模糊匹配是按照匹配度排序
- 深圳交易所
- 北京石油交易所
- 期货交易所
- Excel 单元格按照条件改变背景颜色
- Excel VBA: 按照条件插入行
- EXCEL按照文字颜色统计数量
- python按照表修改excel中的内容
- POI按照模板导出Excel数据
- 按照excel指定的样式导出数据
- excel按照固定行数拆分多个
- EXCEL实现按照奇偶行填充
- excel 宏 匹配
- EXCEL 自动匹配数据
- Excel 匹配函数
- excel中的条件匹配
- 按照发音来匹配字符串的函数Soundex()_Difference()
- java反射中getDeclaredField和getField的区别
- excel----随机选取一行中的某一个单元格
- git 高级使用
- Android手势密码实现方案
- IMP
- [Excel]按照合约匹配交易所
- IE11 F12工具报错
- bkdr hash
- 关于流程访问拒绝问题
- 虚拟机上安装ArchLinux笔记
- 早期练习正则与字符串的一些记录
- UIImage和UIColor的转换
- python中文乱码问题
- [BZOJ3694]最短路(并查集)