当我们导入excel数据到数据表中时,如果数据表中包含其他维表数据的外键,可以通过此方法实现。
1.模板中的下拉数据源
准备excel模板当点击下载模板的时候,通过后台sql查询出维表结果集通过POI存入模板中,尽量选择靠后的列,并且隐藏。
例如隐藏Z、Y列,如图:
2.设置单元格为下拉列表
数据->数据验证->设置。
如图:
3.自动带出下拉数据的ID(可以考虑将ID列放到靠后的列中并且隐藏)
重点是通过公示进行引用,例如:=INDEX(Y:Y,MATCH(C:C,Z:Z,0))。
(1)INDEX
INDEX函数是返回表或区域中的值或对值的引用。
语法:INDEX(array,row_num,column_num),引用array的数据范围中,的第row_num行、column_num列的数据。
(2)MATCH
MATCH函数含义:返回指定数值在指定数组区域中的位置。
语法:MATCH(lookup_value, lookup_array, match_type),查找lookup_array的数据范围中,lookup_value的数据,match_type数值为0(等于)、1(小于等于)、-1(大于等于)。
(3)=INDEX(Y:Y,MATCH(C:C,Z:Z,0))含义
引用Y列的数据,引用规则,根据C列等于Z列的时候,取Y列的数据。
当选择下拉列表中的数据时,选择之后如果满足条件,会自动赋值ID到引用公式的列。如图: