每逢做奖学金免不了要匹配农行卡号,当然第一次迫于时间不够只得一个个的复制过来.那个ctrl + c 和 ctrl + v的日子还真不好过,后来粗略学习了下SQL语言,便用MS SQL Server来进行匹配,当初使用的代码依稀记得:
SQL代码
- UPDATE jiangxuejin
- SET nhkh = benkeshengkahao.借记卡
- FROM benkeshengkahao, jiangxuejin
- WHERE jiangxuejin.学号 = benkeshengkahao.学号
可惜这次办公室的机器被重装了下,SQL Server当然没安装咯~再装吧又怕麻烦,所以干脆使用最最基本的Excel来完成这项工作.查了下几个重要函数,用法如下:
1.IF函数
- 执行真假值判断,根据逻辑计算的真假值,返回不同结果。
- 可以使用函数 IF 对数值和公式进行条件检测。
- 语法
- IF(logical_test,value_if_true,value_if_false)
- Logical_test 表示计算结果为 TRUE 或 FALSE 的任意值或表达式。例如,A10=100 就是一个逻辑表达式,如果单元格 A10 中的值等于 100,表达式即为 TRUE,否则为 FALSE。本参数可使用任何比较运算符。
- Value_if_true logical_test 为 TRUE 时返回的值。例如,如果本参数为文本字符串“预算内”而且 logical_test 参数值为 TRUE,则 IF 函数将显示文本“预算内”。如果 logical_test 为 TRUE 而 value_if_true 为空,则本参数返回 0(零)。如果要显示 TRUE,则请为本参数使用逻辑值 TRUE。Value_if_true 也可以是其他公式。
- Value_if_false logical_test 为 FALSE 时返回的值。例如,如果本参数为文本字符串“超出预算”而且 logical_test 参数值为 FALSE,则 IF 函数将显示文本“超出预算”。如果 logical_test 为 FALSE 且忽略了 Value_if_false(即 value_if_true 后没有逗号),则会返回逻辑值 FALSE。如果 logical_test 为 FALSE 且 Value_if_false 为空(即 value_if_true 后有逗号,并紧跟着右括号),则本参数返回 0(零)。Value_if_false 也可以是其他公式。
2.IS类函数
- 本部分描述了用来检验数值或引用类型的九个工作表函数。
- 这些函数,概括为 IS 类函数,可以检验数值的类型并根据参数取值返回 TRUE 或 FALSE。例如,如果数值为对空白单元格的引用,函数 ISBLANK 返回逻辑值 TRUE,否则返回 FALSE。
- 语法
- ISBLANK(value)
- ISERR(value)
- ISERROR(value)
- ISLOGICAL(value)
- ISNA(value)
- ISNONTEXT(value)
- ISNUMBER(value)
- ISREF(value)
- ISTEXT(value)
- Value 为需要进行检验的数值。分别为:空白(空白单元格)、错误值、逻辑值、文本、数字、引用值或对于以上任意参数的名称引用。
- 函数 如果为下面的内容,则返回 TRUE
- ISBLANK 值为空白单元格。
- ISERR 值为任意错误值(除去 #N/A)。
- ISERROR 值为任意错误值(#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME? 或 #NULL!)。
- ISLOGICAL 值为逻辑值。
- ISNA 值为错误值 #N/A(值不存在)。
- ISNONTEXT 值为不是文本的任意项(注意此函数在值为空白单元格时返回 TRUE)。
- ISNUMBER 值为数字。
- ISREF 值为引用。
- ISTEXT 值为文本。
3.VLOOKUP函数
- 在表格数组的首列查找值,并由此返回表格数组当前行中其他列的值。
- VLOOKUP 中的 V 表示垂直方向。当比较值位于需要查找的数据左边的一列时,可以使用 VLOOKUP,而不用 HLOOKUP。
- 语法VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
- Lookup_value 为需要在表格数组 (数组:用于建立可生成多个结果或可对在行和列中排列的一组参数进行运算的单个公式。数组区域共用一个公式;数组常量是用作参数的一组常量。)第一列中查找的数值。Lookup_value 可以为数值或引用。若 lookup_value 小于 table_array 第一列中的最小值,VLOOKUP 将返回错误值 #N/A。
- Table_array 为两列或多列数据。请使用对区域的引用或区域名称。table_array 第一列中的值是由 lookup_value 搜索的值。这些值可以是文本、数字或逻辑值。不区分大小写。
- Col_index_num 为 table_array 中待返回的匹配值的列序号。Col_index_num 为 1 时,返回 table_array 第一列中的数值;col_index_num 为 2,返回 table_array 第二列中的数值,以此类推。如果 col_index_num :
- 小于 1,VLOOKUP 返回错误值 #VALUE!。
- 大于 table_array 的列数,VLOOKUP 返回错误值 #REF!。
- Range_lookup 为逻辑值,指定希望 VLOOKUP 查找精确的匹配值还是近似匹配值:
- 如果为 TRUE 或省略,则返回精确匹配值或近似匹配值。也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值。 table_array 第一列中的值必须以升序排序;否则 VLOOKUP 可能无法返回正确的值。可以选择“数据”菜单上的“排序”命令,再选择“递增”,将这些值按升序排序。有关详细信息,请参阅默认排序次序。
- 如果为 FALSE,VLOOKUP 将只寻找精确匹配值。在此情况下,table_array 第一列的值不需要排序。如果 table_array 第一列中有两个或多个值与 lookup_value 匹配,则使用第一个找到的值。如果找不到精确匹配值,则返回错误值 #N/A。
而我要实现的功能为:
1.在表一的第F列寻找返回值
2.遍历查找表二中的第一列,让其中某一行(设为y)符合表一中第一列某一行(设为x)的值
3.如果查找到该值,则把表二第y行的F列的值返回到表一F列中去
4.如果查找不到,则留空.
最后合成的语句为:
在表一F列第2行输入
EXCEL函数合成
- =IF(ISERROR(VLOOKUP(A2,Sheet2!A$2:G$5000,5,0)),"",VLOOKUP(A2,Sheet2!A$2:G$5000,5,0))
然后拖曳到底部即完成对整张表格的遍历更新匹配.
Leave a Reply