一、需求分析
有两个excel,第一个excel有股票,日期,年限
第二个excel有 日期,各个年限利率(x2,X3,X4)
根据日期和年限 匹配国债利率
把匹配结果写回第一个excel
当日对应期限国债利率
数据形式:
matalb源代码:
clc,clear all
%%
% 读取excel数据,data存放数值数据,text存放文本数据
[data1,text1] = xlsread('E://ID//data//工作簿1.xlsx');
[data2,text2] = xlsread('E://ID//data//国债利率.xls');
%%
%处理工作簿1,取证券简称、上市日期、债券期限(年)
X0=text1(2:end,[2,4]);
X1=data1(:,3);
%%
% 处理国债利率这个表格数据
%日期
X2=text2(2:end,1);
%国债利率
X3_2=data2(:,1);
X3_3=data2(:,2);
X3_4=data2(:,3);
X3_5=data2(:,4);
X3_6=data2(:,5);
X3_7=data2(:,6);
X3_8=data2(:,7);
X3_9=data2(:,8);
X3_10=data2(:,9);
X3_15=data2(:,10);
X3_20=data2(:,11);
X3_30=data2(:,12);
%%
%开始匹配国债利率length(X0)
for i=1:length(X0)
%找到债券期限(年)
num=X1(i,1);
%找到上市日期
day=X0(i,2);
%找到国债利率表格的日期的索引
[ind,col]=find(strcmp(X2(:,1),day));
switch num
case 2
rate=X3_2(ind,1);
X1(i,2)=rate;
case 3
rate=X3_3(ind,1);
X1(i,2)=rate;
case 4
rate=X3_4(ind,1);
X1(i,2)=rate;
case 5
rate=X3_5(ind,1);
X1(i,2)=rate;
case 6
rate=X3_6(ind,1);
X1(i,2)=rate;
case 7
rate=X3_7(ind,1);
X1(i,2)=rate;
case 8
rate=X3_8(ind,1);
X1(i,2)=rate;
case 9
rate=X3_9(ind,1);
X1(i,2)=rate;
case 10
rate=X3_10(ind,1);
X1(i,2)=rate;
case 15
rate=X3_15(ind,1);
X1(i,2)=rate;
case 20
rate=X3_20(ind,1);
X1(i,2)=rate;
case 30
rate=X3_20(ind,1);
X1(i,2)=rate;
otherwise
X1(i,2)=0;
end
end
X1
%%
%将匹配结果写回excel
filename = 'E://ID//data//工作簿1.xlsx';
A =X1(:,2);
sheet ='工作表1';
xlRange = 'R2';
xlswrite(filename,A,sheet,xlRange)
%%
最终结果: