热爱工作的纯老师又来了,
本期介绍ID。
爱弟就是纯老师心目中
跟这些大国基石、护国神器一样,
是开发EXCEL小程序的最最最基础,
也是最最最重要的东西。
ID,是英文identity的缩写,
意思是身份标识。
如果有接触过数据库的甲纯可能会有些熟悉,
数据库内每一张数据表的最左侧列,
通常都是ID列。
ID列有点像表格内经常会用到的【序号】列,
但两者最大的不同,
也是ID最大的特点,就是永不重复。
简单类比ID就像每个人的身份证号码一样,
不过听说身份证号码有重复的,汗……
不知道这重复的8个人,是八仙过海还是天龙八部。
一、如何生成ID?
为了确保ID永不重复,
表格内生成ID的最常用的方法,
就是用公式动态生成自然数列。
静图:
[A2]=MAX($A$1:A1)+1,
即让[An]等于前面[A1]到[An-1]区域最大值+1,
这就确保[ID]列像自然数列一样往后不停的增加,
实现永不重复。
【小知识点】
注意MAX($A$1:A1)内的区域写法【$A$1:A1】:
起始单元格是固定住的绝对引用[$A$1],
确保求最大值的区域永远是从第一行开始;
而终止单元格是相对引用[A1],
可以让公式在复制的时候会自动变化,
确保求最大值的区域,
永远是从公式所在单元格[A2]的上一行开始。
二、ID生成后用来做什么?
没错,就是用来做数据匹配的。
ID+VLOOKUP是天生的一对、地造的一双。
三、案例
建立2个表:[原始数据]和[数据输出]。
1、在[原始数据]表内新建[ID]列:
2、在[数据输出]表,也新建[ID]列:
[A2]=IF(MAX($A$1:A1)+1<=MAX(原始数据!A:A),MAX($A$1:A1)+1,0),
意思是本表([数据输出])生成的ID值,
如果没有超过[原始数据]表的ID值,则显示ID值,
如果超过了,则显示提示【0】。
这是起到提醒的作用,
一是防止出现下文要说的VLOOKUP匹配公式错误,
二是治疗强迫症,让甲纯清楚ID值到此最大了,
三是如果没有显示【0】,则表示ID值不够大,
公式应该继续往下复制。
上述是生成[ID]的一些小技巧,
甲纯可以自由发挥,
简单应用时,不用IF函数去判断ID值截止是可以的,
截止提醒换成【截止】、【一剪梅】等其他的也行。
3、利用VLOOKUP函数,匹配特征值[ID]列,
把[原始数据]表内数据,按需搬运到[数据输出]表。
静图:
[B2]=IF($A:$A,VLOOKUP($A:$A,原始数据!$A:$G,3,0),""),
判断条件是[ID]列,
对照前文,因为ID的截止值是【0】,
【0】即代表【FALSE】,
故如果到了ID的截止值,直接显示空【“”】。
而未到截止值时,则开始用VLOOKUP匹配搬运数据。
怎么样?
甲纯看到这里的感觉
应该有甲纯会举手问:
呃……应该会变骚吧。
不是不是,是这么做有啥用?
4、列举2个简单用途:
(1)ID简单应用:行规整
因为[数据输出]表的行是受[ID]列控制并生成的,
所以完全不受[原始数据]表的格式影响,
只有两个表的[ID]可以对应起来,
管你各种添加删除操作。
(2)ID简单应用:按需匹配
修改一下[原始数据]表,
让[ID]列可以按需生成。
静图:
开始操作:
这种应用场景不言而喻了吧?
只要这些表提前设置好,
甲纯随时想输出哪些数据都可以,
根本不需要一行一条的去拷贝粘贴。
最后,
更多真正的干货应用在下期,
或者下下期,
敬请期待。