最近需要处理一个任务,将一个经纬度分开类似25,110,然后对应到别的表,将表对应内容复制到当前表。
详细如以下
1.将25,110这样的经纬度分开,由于业务需要我保留两位小数
25=ROUND(VALUE(LEFT(T3,SEARCH(",",T3)-1)),2),利用了这个
110=ROUND(VALUE(RIGHT(T3,LEN(T3)-SEARCH(",",T3))),2) 稍有不同,要借用len去实现
search函数
SEARCH(find_text,within_text,[start_num])
find_text:必需,要查找的文本字符串
within_text:必需,要在哪一个字符串查找
start_num:可选,从within_text的第几个字符开始查找。当从第一个字符开始查找时可省略。但实际上,不管你输几,它都是从第一个字符开始查找,只是会跳过从开始到你输入数字中间的字符。
left函数
left(text,num_chars),取text左边的num_chars个字符
value其实就是转为数值型
round是保留几位小数(num,小数位数)
2.查找表利用,将对应内容保存到本表来
=VLOOKUP($U36&$V36,IF({1,0},resultsDEM_slope_0427_3x21中加权!$L$2:$L$29335&resultsDEM_slope_0427_3x21中加权!$M$2:$M$29335,resultsDEM_slope_0427_3x21中加权!A$2:A$29335),2,0)
$U36,$V36是本表的经度和维度(就是需要查找的内容)
由于我需要两列都对应,用到了if函数,resultsDEM_slope_0427_3x21中加权!$L$2:$L$29335,resultsDEM_slope_0427_3x21中加权!$M$2:$M$29335这两个是前面经度维度需要查找的范围表,就是要在这里查找前面红色的内容
resultsDEM_slope_0427_3x21中加权!A$2:A$29335是你需要在本列中展示的内容(就是查找到对应行之后你想展示的列)
3.查重,因为希望新增的内容不是重复之前的
COUNTIF(总内容,希望查找的内容)
PS:在最后我遇到了一点小问题,就是将这个函数用十字拉到别的表格时,一些列和行的变动,是我不需要的。
最后查看了一下资料才知道要利用$,$A$1意思是左右上下拉都不变
$A1是指,对应的列不变,行可变
A$1是指,对应的行不可变,列可变