1.问题描述
有一个用户名与id构成的excel表A,对应关系是一个用户名可以对应一个或多个id。现在想要查询一批用户名B对应的id。因为我不太会用excel,所以选择用MATLAB来整这个。
2.思路
1)读入excel表,包括全部的用户和id、想要查询的用户
2)采用循环,对每一个想要查询的用户名查找相应一个或多个id
3)把结果存入一个数据容器
3.代码
%%想要实现批量搜索
path1 = 'C:\Users\SHU\Desktop\非居民用户\data.xlsx';%全部用户及其对应id
path2 = 'C:\Users\SHU\Desktop\非居民用户\search.xlsx'%想要批量查询的用户
[~,txt] = xlsread(path1);
[~,target] = xlsread(path2);
data = txt(2:end,1);
target = target(2:end,1);
Y=[];
for i=1:length(target) %%采用循环逐个查询
idy= strcmp(target(i),data);%%strcmp的用法是在data中找到所有与目标相同的元素,转换成0,1
[m,n] = find(idy==1);%%查找1的位置
temp = txt(m+1,:);%%因为有表头,所以m+1
Y = [Y;temp];
end
4.示例
全部用户和id: