jinwa 发表于 2018-8-29 09:49:57

做工作学函数(11)

一、提取摘要中的最大数值I6=LOOKUP(10^10,--MID(E6,MIN(FIND({0,1,2,3,4,5,6,7,8,9},E6&"0123456789")),ROW(INDIRECT("1:"&LEN(E6)))))函数说明1、lookup函数表达式=lookup(lookup_value,lookup_vector,result_vector)用途:在某列里找近似值,返回结果列对应的值,如要找一个10的10次方(10^10),则是找出文本中第一个出现的连续数值2、mid函数表达式=mid(text,start_num,num_chars)用途:从文本指定位置开始截取具体的字符数,mid得到的是文本结果,在之前加两个符号,是为了把文本格式的数字转为数值。3、min函数表达式=min(number1,number2,...)用途:从多个数或者一个与区域里找出最小值。4、find函数表达式=find(find_text,within_text,start_num)用途:从文本中,找一个或者若干个字符,并从指定位置开始找5、row函数表达式=row(reference)用途:返回单元格所在的行,如果是多行,返回的是多行数值的数组6、len函数表达式=len(text)用途:求文本的长度7、indirect函数表达式=indirect(ref_text,a1)用途:根据参数文本返回单元格或者区域,如果 a1 为 TRUE 或省略,ref_text 被解释为 A1-样式的引用如:=SUM(INDIRECT("f6"&":f14",1))计算得到的就是F6:F14之和8、嵌套公式说明MIN(FIND({0,1,2,3,4,5,6,7,8,9},E6&"0123456789"))7从文本中找0到9,返回第一个找到数值的位置。为了防止文本中无数值,所以在文本后加字符串0到9ROW(INDIRECT("1:"&LEN(E6)))得到的是:【1:14】从第一个出现数字的位置往后截取,依次截取1位到最大位数(文本14位长,最多截取14位)。得到的结果依次是:0;03;030;0304;03048;030485;0304851;03048513由于文本数值转成了数字,则分别是:0;3;30;304;3048;30485;304851;3048513从中得到的最大值是:3048513
二、补足8位发票号J6=LEN(I6)求得到的数值的长度K6=REPT("0",8-J6)1、rept函数表达式=rept(text,number_times)用途:重复文本指定次数。如果得到的数值只有6位则补两个0,如果数值是7位则补一个0I6=K6&I6将补足的0和数值组合起来。
三、组合公式G6=REPT("0",8-LEN(I6))&LOOKUP(10^10,--MID(E6,MIN(FIND({0,1,2,3,4,5,6,7,8,9},E6&"0123456789")),ROW(INDIRECT("1:"&LEN(E6)))))将分步设置的公式组合到一起。
注:I6的公式,适合在文本中找唯一数值。如果有多个数值,得到的是第一个数值,该公式可以单独使用。
页: [1]
查看完整版本: 做工作学函数(11)